peter
2e9968d46c
* arrays always by addr
...
git-svn-id: trunk@8232 -
2007-08-06 19:44:25 +00:00
peter
f5d5e377d2
* fix linux x86_64 for records and arrays
...
git-svn-id: trunk@8224 -
2007-08-05 19:38:21 +00:00
peter
4e6c57b9ee
* cleanup x86_64 structures in registers
...
git-svn-id: trunk@8214 -
2007-08-02 20:46:48 +00:00
florian
be6d2dd0f9
* reverted wrong commit in r8133
...
git-svn-id: trunk@8135 -
2007-07-22 17:00:51 +00:00
florian
447276c5bb
* Jcc reads the flags, this was not in the dat yet, resolves #9278
...
* disabled 4 ops variant of insertq for now
git-svn-id: trunk@8133 -
2007-07-22 16:40:44 +00:00
daniel
4a3870eb12
* Fix bug #9261 .
...
git-svn-id: trunk@8056 -
2007-07-14 20:57:56 +00:00
daniel
f31889df57
* Pass const params by pointer if calling convention<>register. This is
...
needed for the windows unit as Delphi compatibility requires const
parameters for some procedures and Delphi assumes parameters > 4 to be
passed as pointer.
git-svn-id: trunk@7982 -
2007-07-08 17:26:08 +00:00
daniel
44e07cd098
* Fix bug #9141 and pass const params <=16 in by value.
...
git-svn-id: trunk@7979 -
2007-07-07 21:01:46 +00:00
daniel
56880a75f9
* When adding the start offset of the parameters, process chained
...
paralocs too.
git-svn-id: trunk@7834 -
2007-06-27 20:28:45 +00:00
yury
3b7e458f02
* Properly set location of float return value if it is passed as var parameter (it is always happens for safecall functions). It fixes bugs #8523 and #8977 .
...
+ test.
git-svn-id: trunk@7728 -
2007-06-18 23:23:46 +00:00
florian
2566e38eae
* handle shortstrings like arrays and records when returning them from functions
...
git-svn-id: trunk@6563 -
2007-02-19 18:55:44 +00:00
florian
77b155ea79
* def.size in [1,2,4,8] goes wrong if def.size>255, fixed, resolves #8232
...
git-svn-id: trunk@6245 -
2007-01-28 18:06:51 +00:00
florian
a95c2220cc
* fixed volatile registers for x86_64-win64
...
git-svn-id: trunk@5781 -
2007-01-01 23:26:21 +00:00
florian
4c2b412613
* x86_64-win64 returns structured types up to 8 bytes in rax
...
git-svn-id: trunk@5528 -
2006-12-02 15:36:32 +00:00
florian
6118c3e477
* fixed assembling of movd with 64 bit registers
...
* fixed passing of floats to c varargs
git-svn-id: trunk@5477 -
2006-11-25 20:32:32 +00:00
peter
658c46b903
* remove tdictionary and tindexarray
...
* symtables based on TFPHashObjectList and TFPObjectList
* rename torddef.typ to torddef.ordtype
* rename tfloatdef.typ to tfloatdef.floattype
* rename tdef.deftype to tdef.typ
* remove obsolete browser code, browcol is kept so the ide
can still be compiled
git-svn-id: trunk@5192 -
2006-11-03 00:30:30 +00:00
peter
23596358a7
* fix arraydef copybyvalue check
...
git-svn-id: trunk@5088 -
2006-10-30 10:27:49 +00:00
peter
3078a1927f
* remove ttype
...
* rename old ttype variables *type to *def
* rename resulttypepass to pass_typecheck
* rename pass_2 to pass_generate_code
git-svn-id: trunk@5077 -
2006-10-29 22:19:39 +00:00
florian
5eef73c1ab
* fixed passing of registers on x86-64_linux, should fix #7613
...
git-svn-id: trunk@4951 -
2006-10-17 20:58:16 +00:00
florian
360cbe1de1
* fixed passing of structs on x86_64-linux
...
git-svn-id: trunk@4688 -
2006-09-23 09:05:21 +00:00
florian
97ce278e14
* fixed another calling convention problem on win64
...
git-svn-id: trunk@4593 -
2006-09-09 20:11:47 +00:00
florian
819dec1411
* pass only non specialized arrays in registers on win x64
...
git-svn-id: trunk@4585 -
2006-09-09 17:33:41 +00:00
florian
24ae32c855
* fixed passing of record parameters on win64
...
git-svn-id: trunk@4583 -
2006-09-09 16:33:15 +00:00
florian
79b8d66212
* fixed safecall calling convention on x86_64
...
git-svn-id: trunk@3442 -
2006-05-06 22:56:34 +00:00
florian
5a888656ca
* pass records of all sizes by reference if they are const
...
git-svn-id: trunk@3251 -
2006-04-17 18:12:14 +00:00
florian
2d3d4a66f6
* keep stack aligned to 16 byte borders on winx64
...
git-svn-id: trunk@3212 -
2006-04-15 16:48:28 +00:00
florian
9da293678e
* fixed mm register parameters which were messed up by a previous commit
...
* fixed duplicate ie number
git-svn-id: trunk@3125 -
2006-04-02 19:15:38 +00:00
florian
d0c327b14b
* basic winx64 calling convention support
...
git-svn-id: trunk@3108 -
2006-04-01 14:42:52 +00:00
peter
f87b04c034
Merged revisions 2994 via svnmerge from
...
http://svn.freepascal.org/svn/fpc/branches/linker/compiler
........
r2994 | peter | 2006-03-21 07:58:12 +0100 (Tue, 21 Mar 2006) | 2 lines
* use float size for parameters on the stack
........
git-svn-id: trunk@2995 -
2006-03-21 06:59:04 +00:00
peter
b7fe6797bf
Merged revisions 2921-2922,2925 via svnmerge from
...
http://svn.freepascal.org/svn/fpc/branches/linker/compiler
........
r2921 | peter | 2006-03-15 08:35:00 +0100 (Wed, 15 Mar 2006) | 2 lines
* pass ObjectWriter to ObjectOuput
........
r2922 | peter | 2006-03-15 12:40:30 +0100 (Wed, 15 Mar 2006) | 2 lines
* refactor asmdata
........
r2925 | peter | 2006-03-15 16:09:39 +0100 (Wed, 15 Mar 2006) | 3 lines
* add cfi to asmdata
* move asmlist, asmcfi, asmdata to own unit
........
git-svn-id: trunk@2932 -
2006-03-16 08:52:22 +00:00
florian
9be5247db5
* dyn. arrays are always passed by value, fixes 4240
...
git-svn-id: trunk@800 -
2005-08-05 21:52:58 +00:00
fpc
790a4fe2d3
* log and id tags removed
...
git-svn-id: trunk@42 -
2005-05-21 09:42:41 +00:00
fpc
50778076c3
initial import
...
git-svn-id: trunk@1 -
2005-05-16 18:37:41 +00:00
peter
e417e34496
* truncate log
2005-02-14 17:13:06 +00:00
peter
adc66eaf55
* arrays are always passed by addr
...
* cdecl array of const is passed by value so it doesn't allocate
anything
2005-02-06 18:59:15 +00:00
peter
18ebd28692
* push_addr_param must be defined per target
2005-02-03 20:04:49 +00:00
peter
75f0b9eb40
* fix extended paraloc
2005-02-03 18:32:25 +00:00
peter
cd01e600b9
* update x86_64 with new cpupara
2005-01-29 11:36:52 +00:00
peter
1c458abb0b
* compile fixes for x86_64
2004-12-12 12:56:18 +00:00
peter
89b1b583c9
* ttempcreatenode.create_reg merged into .create with parameter
...
whether a register is allowed
* funcret_paraloc renamed to funcretloc
2004-11-21 17:54:59 +00:00
peter
f2a75dd91f
* fixed location size for s64comp
2004-10-05 20:55:49 +00:00
peter
33a834821f
* paraloc branch merged
2004-09-21 17:25:12 +00:00
florian
8a9758c5e2
* logs truncated
2004-06-20 08:55:28 +00:00
florian
588e2c38bf
* dwarf branch merged
2004-06-16 20:07:06 +00:00
peter
8c5b0f7d82
* first try to get cpupara working for x86_64
2004-02-04 22:01:13 +00:00
florian
85bed883ce
* another bunch of x86-64 fixes mainly calling convention and
...
assembler reader related
2004-01-14 23:39:05 +00:00
florian
9c476ba5f1
- delete parameter in cg64 methods removed
2003-12-24 00:10:02 +00:00
florian
91bbc7bea3
* error when address of an abstract method is taken
...
* fixed some x86-64 problems
* merged some more x86-64 and i386 code
2003-04-30 20:53:32 +00:00
florian
b59b436130
* x86-64 compiles
...
+ very basic support for float128 type (x86-64 only)
2003-01-05 13:36:53 +00:00
florian
52dbda43c3
+ initial release of x86-64 target code
2002-07-24 22:38:15 +00:00