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
nickysn
c1984bdf56
* take into account far code and far data in tprocvardef.size
...
git-svn-id: trunk@24823 -
2013-06-08 23:32:47 +00:00
sergei
86637a9ff9
* MIPS: pi_needs_got is necessary when doing unsigned to float conversions (it uses a global constant) and also if procedure does any calls in PIC mode.
...
git-svn-id: trunk@24822 -
2013-06-08 23:29:50 +00:00
sergei
5fe8b516d4
* Put string with unit name into sec_rodata_norel (other strings are already there since r23017, this one was missed).
...
git-svn-id: trunk@24821 -
2013-06-08 22:59:18 +00:00
nickysn
cd5255c147
+ added startup code for the medium memory model
...
git-svn-id: trunk@24820 -
2013-06-08 22:41:43 +00:00
nickysn
5966cc088d
* got rid of tpointerdef.update_savesize, overrode size instead
...
git-svn-id: trunk@24819 -
2013-06-08 21:23:16 +00:00
nickysn
6fdd48878f
* adjust parameters of far procedures for the extra segment that's pushed on the stack by the far call instruction
...
git-svn-id: trunk@24818 -
2013-06-08 20:42:13 +00:00
nickysn
aa63efc27e
* emit a far ret instruction in the exit code of far procedures
...
git-svn-id: trunk@24817 -
2013-06-08 20:40:50 +00:00
nickysn
a9c949e551
* the memory model const sets introduced in r24812 moved to i8086/cpuinfo.pas
...
git-svn-id: trunk@24816 -
2013-06-08 19:52:28 +00:00
nickysn
381c996e53
+ added po_far to tprocoptions
...
git-svn-id: trunk@24815 -
2013-06-08 16:34:30 +00:00
nickysn
fcc84e5d96
+ added the x86/*.pas files to ppc8086.lpi for easier access from the lazarus project inspector
...
git-svn-id: trunk@24814 -
2013-06-08 16:33:56 +00:00