Commit Graph

144 Commits

Author SHA1 Message Date
florian
98d6014c73 * register saving on win64 fixed
git-svn-id: trunk@5785 -
2007-01-02 14:34:03 +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
florian
85d63d9fa9 * settings refactored
git-svn-id: trunk@5094 -
2006-10-30 18:02:58 +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
de0bf34a10 * recreated
git-svn-id: trunk@4908 -
2006-10-14 16:54:21 +00:00
florian
1dd80243e5 * tables recreated
git-svn-id: trunk@4899 -
2006-10-14 11:21:41 +00:00
florian
2a54d957b2 * fixed two small errors
* supported_optimizerswitches now takes generic flags also into account

git-svn-id: trunk@4865 -
2006-10-11 21:14:47 +00:00
florian
a61abb25cb * reorganized optimizer switch sets
git-svn-id: trunk@4862 -
2006-10-11 18:16:10 +00:00
florian
e8d5dc4ab2 * tailrecursion optimization enabled for for sparc, i386, x86-64 and arm
git-svn-id: trunk@4860 -
2006-10-11 16:34:28 +00:00
florian
fb5e396881 + experimental -Sv option to support vector arithmetics
git-svn-id: trunk@4825 -
2006-10-07 21:39:48 +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
Jonas Maebe
91d9b1f77b * operand read/write info for movaps and movapd (from r4612)
git-svn-id: trunk@4616 -
2006-09-12 15:01:34 +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
930086df3f * fixed cvtsi2sd for 64 bit ints
git-svn-id: trunk@4575 -
2006-09-08 21:34:12 +00:00
peter
d79df4c74a * 64bit support for shrd
git-svn-id: trunk@4541 -
2006-09-03 08:56:10 +00:00
peter
55053a586b * fix comisd
git-svn-id: trunk@3927 -
2006-06-23 21:41:19 +00:00
peter
2f147715f4 * more rex fixes
git-svn-id: trunk@3917 -
2006-06-21 19:51:09 +00:00
peter
b672df519a * flexible position of REX, required for SSE2 commands
git-svn-id: trunk@3906 -
2006-06-20 22:38:30 +00:00
florian
55962cef95 * don't do mul->shl optimizations when compiling with overflow checking
* keep operand size sign information in shl/shr

git-svn-id: trunk@3566 -
2006-05-18 19:30:44 +00:00
florian
f378d688d4 * fixed reading of registers in intel assembler mode on x86-64
git-svn-id: trunk@3488 -
2006-05-13 09:24:42 +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
23e67ee289 + intel assembler reader for x86-64
git-svn-id: trunk@3411 -
2006-05-01 19:56:00 +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
61d86150aa * interface wrappers for win64 abi fixed
git-svn-id: trunk@3240 -
2006-04-17 08:25:44 +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
d904a04d3b * fixed stackframe generation for win x64
git-svn-id: trunk@3124 -
2006-04-02 19:05:00 +00:00
florian
d0c327b14b * basic winx64 calling convention support
git-svn-id: trunk@3108 -
2006-04-01 14:42:52 +00:00
florian
1c9da313d9 * 64 bit movnti
git-svn-id: trunk@3091 -
2006-03-30 18:12:33 +00:00
florian
b215196734 * fixed cto
git-svn-id: trunk@3074 -
2006-03-29 18:25:48 +00:00
florian
085fa03853 * fix for cmp
git-svn-id: trunk@3062 -
2006-03-27 19:42:59 +00:00
peter
0ec2921bbe * split newasmsymbol to refasmsymbol and defineasmsymbol
git-svn-id: trunk@3057 -
2006-03-27 11:45:18 +00:00
florian
8a71767125 * movsql fixed in x86_64 assembler writer
git-svn-id: trunk@3048 -
2006-03-26 20:48:05 +00:00
florian
73e22f1919 * one byte inc/dec aren't allowed for x86_64
git-svn-id: trunk@3047 -
2006-03-26 20:27:02 +00:00
florian
87da67129c * rtl compilation with x86_64 binary writer fixed
git-svn-id: trunk@3042 -
2006-03-26 18:32:15 +00:00
florian
5d243f665a * fixed <instr> reg,reg with regs>=r8
* fixed section naming
* fixed relocations

git-svn-id: trunk@3041 -
2006-03-26 17:54:02 +00:00
florian
5519158dff + no rex.w prefix support
git-svn-id: trunk@3037 -
2006-03-25 19:45:09 +00:00
peter
35c4d43699 * disable regvars until it is fixed
git-svn-id: trunk@3008 -
2006-03-21 17:31:02 +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
florian
ec768f88ae + improved x86-64 assembler
git-svn-id: trunk@2983 -
2006-03-19 22:24:01 +00:00
Jonas Maebe
8a6ebdf274 - disabled loop unrolling for level 3 optimizations since it only causes
crashes (and even if it didn't, on its own it mainly causes code
    bloat)

git-svn-id: trunk@2941 -
2006-03-17 17:42:39 +00:00
florian
2a48eacea7 + standard assembler for x86-64
git-svn-id: trunk@2934 -
2006-03-16 19:54:18 +00:00
florian
38c132e8cb + added pass_left_right in second_mul, fixes the ie 200109092
git-svn-id: trunk@2933 -
2006-03-16 19:44:59 +00:00