Commit Graph

40667 Commits

Author SHA1 Message Date
nickysn
baa4d39ea3 + apply extra_param_offset to all i8086 asm routines that use nostackframe
git-svn-id: trunk@24874 -
2013-06-11 21:10:47 +00:00
nickysn
5d4ebf0dca + added extra_param_offset constant for accessing parameters in asm routines with nostackframe
git-svn-id: trunk@24873 -
2013-06-11 21:08:43 +00:00
florian
980563d576 * several small errors fixed, float128<->float64 conversion works now
git-svn-id: trunk@24872 -
2013-06-11 21:00:26 +00:00
florian
92477a14b8 o patch by Max Nazholov:
* more C code ported
 * missing exits fixed
 * var-modifier of shortShift128Left fixed
 * some range warnings fixed

git-svn-id: trunk@24871 -
2013-06-11 21:00:23 +00:00
florian
ff3295d8fd * nostackframe is not allowed by newer FPCs for pascal functions/procedure (and was never recommended)
git-svn-id: trunk@24870 -
2013-06-11 20:04:33 +00:00
Károly Balogh
cdf3f3266b implemented FileSetDate, improved FileCreate
git-svn-id: trunk@24869 -
2013-06-11 06:02:28 +00:00
nickysn
bb06899ec7 * clarified the comment for aitconst_farptr
git-svn-id: trunk@24868 -
2013-06-10 21:35:29 +00:00
nickysn
fa9c26f76f + medium memory model added to the compiler help messages
git-svn-id: trunk@24867 -
2013-06-10 21:04:54 +00:00
nickysn
d387182bd6 * when doing a pointer comparison on i8086, don't cast a far pointer to a near one (pchar), but use a far one instead
git-svn-id: trunk@24866 -
2013-06-10 20:53:11 +00:00
nickysn
894d400a7b + added is_farpointer(tdef) and is_hugepointer(tdef) helper functions to defutil
git-svn-id: trunk@24865 -
2013-06-10 20:50:05 +00:00
pierre
aae318403d Fix a int64<->single conversion failure exposed in test/units/softfpu/sfttst.pp
git-svn-id: trunk@24864 -
2013-06-10 13:51:02 +00:00
nickysn
70dbd7f667 * far pointer aware conversion of method pointer to plain procvar
git-svn-id: trunk@24863 -
2013-06-10 09:56:45 +00:00
sergei
562714129f * MIPS: get completely rid of LI macro, generate equivalent CPU instructions instead.
git-svn-id: trunk@24862 -
2013-06-10 02:07:21 +00:00
nickysn
6046edd8f9 + i8086/n8086cnv.pas added to lazarus project
git-svn-id: trunk@24861 -
2013-06-10 01:19:22 +00:00
nickysn
b342588af1 + i8086 specific far proc aware implementation of ttypeconvnode.second_proc_to_procvar
git-svn-id: trunk@24860 -
2013-06-10 01:19:01 +00:00
nickysn
9dbbffba61 + added trefaddr.addr_seg for referencing the segment of a symbol
git-svn-id: trunk@24859 -
2013-06-10 01:16:37 +00:00
nickysn
57e84dc0b4 * set the proper size for far procsyms in tcgloadnode.pass_generate_code
git-svn-id: trunk@24858 -
2013-06-10 01:06:02 +00:00
nickysn
c9096ef806 * far pointer fix in taddrnode.pass_typecheck
git-svn-id: trunk@24857 -
2013-06-09 23:07:30 +00:00
nickysn
b81f0ab50d + implemented tcg8086.a_call_reg_far; very hacky, but still better than doing a near call, when it should be far
git-svn-id: trunk@24856 -
2013-06-09 22:16:40 +00:00
nickysn
62316da236 * a_call_reg moved to a_call_reg_near
git-svn-id: trunk@24855 -
2013-06-09 22:09:39 +00:00
nickysn
e4a1230356 + added support for far pointer constants in the assembly output
git-svn-id: trunk@24854 -
2013-06-09 22:01:04 +00:00
nickysn
604b7c9deb + added cg.a_call_ref_near and a_call_ref_far
git-svn-id: trunk@24853 -
2013-06-09 20:22:47 +00:00
nickysn
10f7f0231e * TExitProcInfo.SaveExit changed to CodePointer
git-svn-id: trunk@24852 -
2013-06-09 20:19:28 +00:00
nickysn
6431ebe7f3 * treat the nil node as equal to near, far and all the special x86 pointer types
git-svn-id: trunk@24851 -
2013-06-09 19:04:03 +00:00
nickysn
2809ed6fb9 * updated tfiledef.setsize to support the size of textrec in the medium memory model
git-svn-id: trunk@24850 -
2013-06-09 18:22:47 +00:00
nickysn
01f8989ebc * textrec updated to use codepointer
git-svn-id: trunk@24849 -
2013-06-09 18:21:21 +00:00
nickysn
0d51ecdd00 * System.ExitProc type changed to CodePointer
git-svn-id: trunk@24848 -
2013-06-09 18:10:45 +00:00
nickysn
435a97059d + enabled the command line option for the medium memory model
git-svn-id: trunk@24847 -
2013-06-09 17:57:42 +00:00
nickysn
b5c032874f * set the po_far flag by default in far code memory models
git-svn-id: trunk@24846 -
2013-06-09 17:54:29 +00:00
nickysn
093b87f50d * far code support for the internal type
git-svn-id: trunk@24845 -
2013-06-09 17:53:54 +00:00
nickysn
bfd65ea550 * use tprocvardef(def).size (which takes into account far code/data) to determine cgsize for procvars in def_cgsize
git-svn-id: trunk@24844 -
2013-06-09 17:51:56 +00:00
nickysn
4a423ecc44 * System.InitProc changed to CodePointer
git-svn-id: trunk@24843 -
2013-06-09 17:49:38 +00:00
nickysn
ad29cab0aa * DispCallByIDProc changed to CodePointer
git-svn-id: trunk@24842 -
2013-06-09 17:32:18 +00:00
nickysn
54c4c8155b + also added PCodePointer and PPCodePointer
git-svn-id: trunk@24841 -
2013-06-09 17:30:03 +00:00
nickysn
9b59809ac3 * TMethod.Code changed to CodePointer
git-svn-id: trunk@24840 -
2013-06-09 17:24:38 +00:00
nickysn
3e1e5cb7e8 + added System.CodePointer - a pointer that is able to hold a procedure address in the current memory model
git-svn-id: trunk@24839 -
2013-06-09 17:23:31 +00:00
nickysn
0e4e329228 + added defines for the i8086 code and data model; ptrint/ptruint made to follow the data pointer size
git-svn-id: trunk@24838 -
2013-06-09 16:06:14 +00:00
nickysn
1029636dfe * far proc fixes in tcgcallnode.pass_generate_code
git-svn-id: trunk@24837 -
2013-06-09 14:21:03 +00:00
sergei
b9bbe8ba67 * tai_const.getcopy: Check that 'sym' is assigned before trying to call its method. Mantis #24574.
git-svn-id: trunk@24836 -
2013-06-09 14:19:09 +00:00
nickysn
b6c979e55f + added tabstractprocdef.address_size which returns the actual address size of the proc, taking into account far procs
git-svn-id: trunk@24835 -
2013-06-09 13:39:13 +00:00
nickysn
3631198b34 + declare the text segment with class=code in the nasm header for far code memory models also
git-svn-id: trunk@24834 -
2013-06-09 13:01:40 +00:00
nickysn
9a6c242f97 + emit proper far calls/jmps for addr_far in the nasm assembly output
git-svn-id: trunk@24833 -
2013-06-09 12:59:44 +00:00
nickysn
f5a9442910 + added the appropriate startup code names for each memory model
git-svn-id: trunk@24832 -
2013-06-09 12:44:03 +00:00
nickysn
3280514d2b * in i8086 far code models, put the code in a section called module_name+'_TEXT', so each unit gets a separate code segment
git-svn-id: trunk@24831 -
2013-06-09 12:26:33 +00:00
nickysn
b74af9fda0 * declare the text segment with class=code on i8086-msdos
git-svn-id: trunk@24830 -
2013-06-09 12:13:52 +00:00
marco
5de259e487 * added pointer types for int8..int32 types after request on community site.
git-svn-id: trunk@24829 -
2013-06-09 11:21:51 +00:00
nickysn
af54de6d56 + added tcg8086.a_call_name_far and .a_call_name_static_far; a_call_name and a_call_name_static overriden and call near or far depending on the memory model
git-svn-id: trunk@24828 -
2013-06-09 10:54:30 +00:00
nickysn
ec497ae11e + the regular tcgx86.a_call_name and .a_call_name_static moved to .a_call_name_near and .a_call_name_static_near, because a_call_name and a_call_name_static are going to be overriden in tcg8086
git-svn-id: trunk@24827 -
2013-06-09 10:42:39 +00:00
nickysn
2279e51a95 + added trefaddr.addr_far for emitting far calls
git-svn-id: trunk@24826 -
2013-06-09 10:24:06 +00:00
pierre
415444a3a5 Fix compilation failure if DEBUG conditional is set, which needs regexpr package
git-svn-id: trunk@24825 -
2013-06-09 08:31:58 +00:00