florian
af020e8ebc
* fix assembling of ljmp mem, resolves #18556
...
git-svn-id: trunk@16802 -
2011-01-23 12:18:14 +00:00
florian
d6d3791939
* fix compilation of cmpxchg16b
...
git-svn-id: trunk@16283 -
2010-11-01 08:13:27 +00:00
Jonas Maebe
9273856e84
* disallow pusha*/popa* for x86_64 (mantis #14862 )
...
* disallow pushfd/popfd for x86_64 (mantis #14862 )
* fixed assembling popfq with the internal assembler (it needs a rex.w
prefisx, while pushfq doesn't)
* changed the default opcode size of pushf/popf/pusha/popa in
{$asmmode intel} from "native size" to 16 bit (compatible with Intel
manuals and Kylix; in AT&T mode, the default size for those operations
remains the native one)
* changed pushf/popf in rtl/i386/* into pushfd/popfd because of the
previous change
git-svn-id: trunk@15546 -
2010-07-10 16:22:46 +00:00
Jonas Maebe
a3a559cecc
* part of r15538, forgot to commit
...
git-svn-id: trunk@15544 -
2010-07-10 15:05:30 +00:00
Jonas Maebe
f660e7cc6c
* fisttp must get an "fpuint" suffix in the assembler output
...
git-svn-id: trunk@14418 -
2009-12-11 23:20:21 +00:00
florian
694f563079
* fixed assembler tables for sse4 instructions, resolves #13186
...
git-svn-id: trunk@12787 -
2009-02-24 20:07:11 +00:00
florian
49195b0ac0
* fixes assembling of mov ax,<mem16>
...
* fixes assembling of test <mem8>,reg8; resolves #11786
git-svn-id: trunk@12040 -
2008-11-09 10:24:59 +00:00
Jonas Maebe
defe46ef42
* added missing size suffixes for several sse2 opcodes
...
git-svn-id: trunk@9182 -
2007-11-10 19:57:01 +00:00
florian
965bb41288
* fixed more rex placements
...
git-svn-id: trunk@9069 -
2007-11-02 21:30:43 +00:00
florian
82c7896d8d
* more ins. dat issues popped up, did I mention I start to hate it :(?
...
git-svn-id: trunk@8968 -
2007-10-28 14:08:04 +00:00
florian
c1d62172fe
* the saga continues, fixed previously broken assembler table entries
...
git-svn-id: trunk@8967 -
2007-10-28 13:01:58 +00:00
florian
f32831c44a
* fixed assembling of fisttp of sse3 instruction set
...
+ sse3 optimized trunc() using fisttp
+ -Cfsse3 for x86-64
git-svn-id: trunk@8962 -
2007-10-27 20:50:46 +00:00
florian
46e1587395
* another bunch of assembler fixes, win64 builds again
...
git-svn-id: trunk@8957 -
2007-10-27 19:49:53 +00:00
florian
8f5a4cc514
* more, hopefully correct, x86-64 assembler fixes
...
git-svn-id: trunk@8952 -
2007-10-26 20:44:57 +00:00
florian
c5f492ef50
* fixed assembling of movq mem,xmmreg
...
git-svn-id: trunk@8923 -
2007-10-24 20:45:38 +00:00
peter
43c2694d50
* fixed REX placement for xmm opcodes
...
git-svn-id: trunk@8850 -
2007-10-18 23:30:35 +00:00
florian
6eff22d466
* remove disassembler hint \331 from comisd, it causes rex to be
...
generated too early. rex must be generated after the 0x66 prefix.
There might be more problems like this which must be fixed.
git-svn-id: trunk@8787 -
2007-10-14 09:32:01 +00:00
florian
6d53d3b4cd
* fixed assembling of comisd with rex, there are probably more similiar fixes necessary, must be checked first
...
git-svn-id: trunk@8785 -
2007-10-14 09:04:45 +00:00
florian
342ba323cf
* fixed assembling of cvtsi2ss with rex
...
git-svn-id: trunk@8777 -
2007-10-13 14:53:27 +00:00
Jonas Maebe
a8191abd16
* fixed parsing of "rcl/rcr rm,imm" (mantis #9025 )
...
git-svn-id: trunk@8272 -
2007-08-12 13:50:52 +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
florian
0e96eda236
+ some sse4 instructions supported, resolves #9046
...
git-svn-id: trunk@7613 -
2007-06-09 19:45:06 +00:00
florian
d55dbf92d3
* fixed assembling of cvt(t)ss2si
...
git-svn-id: trunk@6918 -
2007-03-18 17:35:22 +00:00
florian
f4840620f0
* location.size of trunc/round must be OS_S64
...
* fixed assembling of cvt*2si
+ optimized trunc/round for x86_64/sse
* only floats need no type cast for trunc/round
git-svn-id: trunk@6859 -
2007-03-14 20:56:14 +00:00
florian
e6e1a3a09b
* fixed assembling of sse instructions on x86-64 with regs > xmm7
...
git-svn-id: trunk@6714 -
2007-03-04 19:16:20 +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
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
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
florian
b22e688ad8
* fixed fstenv instruction dat
...
git-svn-id: trunk@4907 -
2006-10-14 16:53:39 +00:00
florian
66b1932d52
* fixed rex writing for floating point instructions
...
git-svn-id: trunk@4898 -
2006-10-14 11:21:17 +00:00
Jonas Maebe
51259b697b
* more mmx/sse register spilling fixes:
...
* operand read/write info for movaps and movapd
* use "movapd reg,reg" instead of "movaps reg,reg" if appropriate
so the spilling code can spill the correct size to memory
* replace movaps/movapd with movss/movsd when spilling to memory
instead of movq
git-svn-id: trunk@4612 -
2006-09-12 11:07:45 +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
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
e1147755df
* fixed cmp
...
* correct sign extension for 8 byte constants
git-svn-id: trunk@3063 -
2006-03-27 20:24:57 +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
5519158dff
+ no rex.w prefix support
...
git-svn-id: trunk@3037 -
2006-03-25 19:45:09 +00:00
florian
ec768f88ae
+ improved x86-64 assembler
...
git-svn-id: trunk@2983 -
2006-03-19 22:24:01 +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
17bc033747
Merged revisions 2791-2793,2798-2800,2806-2825,2829-2830,2833,2839,2898 via svnmerge from
...
http://svn.freepascal.org/svn/fpc/branches/linker/compiler
........
r2791 | peter | 2006-03-06 14:57:20 +0100 (Mon, 06 Mar 2006) | 3 lines
* disable internal linker if -s is used
* enable section smartlink by default for internal linker
........
r2792 | peter | 2006-03-06 14:58:23 +0100 (Mon, 06 Mar 2006) | 2 lines
* support long sectionnames
........
r2793 | peter | 2006-03-06 15:04:12 +0100 (Mon, 06 Mar 2006) | 2 lines
* register symbols in section also when reading .o files
........
r2798 | peter | 2006-03-07 10:08:07 +0100 (Tue, 07 Mar 2006) | 2 lines
* symbolrefs need to be loaded from relocations when loading a .o
........
r2799 | peter | 2006-03-07 16:17:52 +0100 (Tue, 07 Mar 2006) | 3 lines
* remove unreferenced sections
* set stacksize in peopthaeder
........
r2800 | peter | 2006-03-07 17:02:46 +0100 (Tue, 07 Mar 2006) | 2 lines
* objsection.fullname added
........
........
r2807 | peter | 2006-03-08 08:18:04 +0100 (Wed, 08 Mar 2006) | 2 lines
* powerpc64 fixes
........
r2808 | peter | 2006-03-08 08:35:53 +0100 (Wed, 08 Mar 2006) | 2 lines
* register x86_64_pecoff
........
r2809 | peter | 2006-03-08 11:26:38 +0100 (Wed, 08 Mar 2006) | 2 lines
* optimize and cleanup matches()
........
r2810 | peter | 2006-03-08 12:25:28 +0100 (Wed, 08 Mar 2006) | 2 lines
* small tweak to readdata to copy values direct without calling move()
........
r2811 | peter | 2006-03-08 15:55:21 +0100 (Wed, 08 Mar 2006) | 2 lines
* compile fix
........
........
........
........
........
........
r2817 | peter | 2006-03-09 14:20:52 +0100 (Thu, 09 Mar 2006) | 2 lines
* more readable with long secnames
........
........
........
........
........
........
........
........
r2825 | peter | 2006-03-10 09:52:05 +0100 (Fri, 10 Mar 2006) | 2 lines
* don't initialize/finalize external variables
........
r2829 | peter | 2006-03-10 10:58:08 +0100 (Fri, 10 Mar 2006) | 2 lines
* merge 64bit assembler
........
r2830 | peter | 2006-03-10 12:25:08 +0100 (Fri, 10 Mar 2006) | 2 lines
* TElfAssembler rename
........
r2833 | peter | 2006-03-10 15:22:27 +0100 (Fri, 10 Mar 2006) | 3 lines
* support & prefix to force identifier parsing, used to access fields that
have the names of a register
........
r2839 | peter | 2006-03-10 19:37:11 +0100 (Fri, 10 Mar 2006) | 2 lines
* merge stabs section flags
........
r2898 | peter | 2006-03-12 23:18:18 +0100 (Sun, 12 Mar 2006) | 2 lines
* reorder instructions for better first match
........
git-svn-id: trunk@2902 -
2006-03-13 09:29:57 +00:00
florian
5ece7cbc2f
* first part of x86-64 assembler
...
git-svn-id: trunk@2824 -
2006-03-09 22:05:16 +00:00