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
sergei
94d1e0c81c
+ Added KEY_WOW64_64KEY and KEY_WOW64_32KEY to Windows unit and fcl-registry/src/regdef.inc
...
* Fixed TRegistry.OpenKeyReadOnly and TRegistry.KeyExists methods so they preserve KEY_WOW64_xxKEY bits passed into TRegistry constructor. Based on patch from Maciej Kaczkowski, resolves #23695 , #23188
git-svn-id: trunk@24824 -
2013-06-09 00:15:29 +00:00