florian
224da99c63
* regenerated
...
git-svn-id: trunk@6715 -
2007-03-04 19:16:28 +00:00
peter
bf652ab1d2
* fixed att asmmode
...
git-svn-id: trunk@6672 -
2007-02-27 16:31:40 +00:00
peter
e0729f1be1
* fixed typo
...
git-svn-id: trunk@6668 -
2007-02-26 17:16:10 +00:00
peter
70e0846275
* Add ATT as asmmode name to be compatible with i386
...
git-svn-id: trunk@6646 -
2007-02-25 16:47:50 +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
a19ed91cc3
* fix for jcxz, jecxz and jrcxz on 64 bit platforms
...
git-svn-id: trunk@6400 -
2007-02-10 21:05:27 +00:00
Jonas Maebe
9813a8708c
* fixed encoding of jcxz
...
git-svn-id: trunk@6398 -
2007-02-10 20:38:38 +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
Jonas Maebe
c1df4454fe
* cmpxchg8b doesn't have a size suffix
...
git-svn-id: trunk@6164 -
2007-01-24 15:15:04 +00:00
florian
2da51bce72
+ cmpxchg16b
...
git-svn-id: trunk@6095 -
2007-01-21 11:04:19 +00:00
florian
5e2042cff8
* correct assembling of test rm8,reg8
...
git-svn-id: trunk@5972 -
2007-01-14 18:08:37 +00:00
florian
36a500c38c
* don't coalescate with frame/stack pointer
...
git-svn-id: trunk@5880 -
2007-01-11 10:47:07 +00:00
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
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
peter
eb725d4e44
Merged revisions 2908,2911,2913-2917 via svnmerge from
...
http://svn.freepascal.org/svn/fpc/branches/linker/compiler
........
r2908 | peter | 2006-03-13 13:35:48 +0100 (Mon, 13 Mar 2006) | 2 lines
* merge trunk upto r2907
........
r2911 | peter | 2006-03-13 18:08:00 +0100 (Mon, 13 Mar 2006) | 2 lines
* rename values to make room for operand size codes
........
........
........
r2915 | peter | 2006-03-14 13:51:35 +0100 (Tue, 14 Mar 2006) | 2 lines
* check aktcputype
........
r2916 | peter | 2006-03-14 15:06:32 +0100 (Tue, 14 Mar 2006) | 3 lines
* merge 300 opcodes
* more 64bit versions of opcodes
........
r2917 | peter | 2006-03-14 17:34:03 +0100 (Tue, 14 Mar 2006) | 3 lines
* x86_64 tables
* convert movq with normal registers to mov
........
git-svn-id: trunk@2931 -
2006-03-16 08:09:28 +00:00
peter
2888a21593
* list supported optimization options in -i
...
* support $OPTIMIZATION and $O+
git-svn-id: trunk@2904 -
2006-03-13 11:17:56 +00:00
peter
b6e35a200e
* rewrite of optimizer options
...
git-svn-id: trunk@2901 -
2006-03-13 09:05:50 +00:00
Jonas Maebe
01bfed76e3
+ support for passing parameters via pre-allocated stack space on i386
...
(override/adjust cgutils.use_fixed_stack to change conditions where
this is done, currently only activated for darwin-i386)
* make sure the stack is always aligned to 16 bytes on darwin-i386
git-svn-id: trunk@2841 -
2006-03-10 20:01:16 +00:00
florian
5ece7cbc2f
* first part of x86-64 assembler
...
git-svn-id: trunk@2824 -
2006-03-09 22:05:16 +00:00
florian
fdc1419832
* fixed interface wrappers in pic
...
git-svn-id: trunk@1728 -
2005-11-13 14:53:04 +00:00
peter
a3ab2053c9
* support multiple asmlabel types, renamed getlabel to
...
getjumplabel and added type para to getlabel for specific types
* moved lineinfo generation from assemble and aggas to dbgstabs
git-svn-id: trunk@1120 -
2005-09-18 21:16:10 +00:00
peter
fdc4925fcd
* basic framework for debuginfo class added
...
git-svn-id: trunk@1084 -
2005-09-15 08:34:51 +00:00
florian
db68fb68b4
* updated to nasm 0.98.39 and insns.dat Rev. 1.46
...
git-svn-id: trunk@836 -
2005-08-09 20:15:58 +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
florian
804207239d
*c <int64>:=-<longint> fixed (bug 4253)
...
git-svn-id: trunk@796 -
2005-08-05 19:00:30 +00:00
florian
5df84f7222
* cvtxx2yy has now proper modification information
...
git-svn-id: trunk@757 -
2005-07-26 21:06:02 +00:00
daniel
d05f58b604
* Group asmlists into array to be able to add
...
some of them more comfortably.
* x86_64 compilation was broken, fixed.
* Sparc compilation was broken, fixed.
git-svn-id: trunk@731 -
2005-07-23 13:44:32 +00:00
peter
c1b2e1aac5
* check function/procedure type when adding a proc definition
...
git-svn-id: trunk@546 -
2005-06-30 14:56:05 +00:00
florian
21ae782854
* fixed more xmm stuff
...
+ some win64 stuff added
git-svn-id: trunk@330 -
2005-06-09 20:50:17 +00:00
florian
335211c397
* t_win unit name fixed
...
git-svn-id: trunk@285 -
2005-06-08 13:25:49 +00:00
peter
4ace790492
* remove $Log
...
git-svn-id: trunk@231 -
2005-06-07 09:47:55 +00:00
florian
a7446e4a7b
* changed operand information for multimedia xor operations
...
git-svn-id: trunk@204 -
2005-06-05 09:50:38 +00:00
florian
ebcb69478f
* fixed a lot of stuff for fpu/mm register variables
...
git-svn-id: trunk@199 -
2005-06-04 21:23:15 +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
20ad7813c2
* fix empty varargs codegeneration for x86_64
2005-03-14 20:18:46 +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
florian
b1c8bfc478
+ x86_64 pic draft
2005-02-06 00:05:56 +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
e820bc93f2
* interface wrapper generation moved to cgobj
...
* generate interface wrappers after the module is parsed
2005-01-24 22:08:32 +00:00
peter
04c97cc129
* load jmp_buf_size from system unit
2005-01-20 16:38:45 +00:00
peter
ed9f8f54e7
* generic optimizer
2004-12-12 14:07:07 +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
florian
b8eb638978
* cg64f64 isn't used anymore
2004-11-01 17:44:27 +00:00
florian
00a32c2b31
+ added cgutils uses clause
2004-11-01 17:40:29 +00:00
peter
705868e816
* remove saveregister calling convention
2004-10-24 20:01:08 +00:00
peter
2ee2004032
* fixed compilation with removed loadref
2004-10-24 11:53:45 +00:00