mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-18 12:39:36 +02:00
* fixed 64 bit check for "movd xmmreg, mem" and "movd mem, xmmreg" (patch by
Jasper Neumann, mantis #13294) * moved "reg64, xmmreg" and "xmmreg, reg64" combo's from movd to movq (movd is always 32 bit) git-svn-id: trunk@15538 -
This commit is contained in:
parent
36e4f3d38b
commit
d3976c858b
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -10338,6 +10338,7 @@ tests/webtbs/tw13210.pp svneol=native#text/plain
|
||||
tests/webtbs/tw1323.pp svneol=native#text/plain
|
||||
tests/webtbs/tw1327.pp svneol=native#text/plain
|
||||
tests/webtbs/tw13281.pp svneol=native#text/plain
|
||||
tests/webtbs/tw13294.pp svneol=native#text/plain
|
||||
tests/webtbs/tw13307.pp svneol=native#text/plain
|
||||
tests/webtbs/tw1331.pp svneol=native#text/plain
|
||||
tests/webtbs/tw13313.pp svneol=native#text/plain
|
||||
|
@ -3157,32 +3157,18 @@
|
||||
code : #1#102#211#2#15#126#65;
|
||||
flags : if_willamette or if_sse2
|
||||
),
|
||||
(
|
||||
opcode : A_MOVD;
|
||||
ops : 2;
|
||||
optypes : (ot_xmmreg,ot_reg64,ot_none);
|
||||
code : #1#102#214#2#15#110#72;
|
||||
flags : if_willamette or if_sse2
|
||||
),
|
||||
(
|
||||
opcode : A_MOVD;
|
||||
ops : 2;
|
||||
optypes : (ot_reg64,ot_xmmreg,ot_none);
|
||||
code : #1#102#214#2#15#126#65;
|
||||
flags : if_willamette or if_sse2
|
||||
),
|
||||
(
|
||||
opcode : A_MOVD;
|
||||
ops : 2;
|
||||
optypes : (ot_memory,ot_xmmreg,ot_none);
|
||||
code : #1#102#214#2#15#126#65;
|
||||
code : #1#102#213#2#15#126#65;
|
||||
flags : if_willamette or if_sse2
|
||||
),
|
||||
(
|
||||
opcode : A_MOVD;
|
||||
ops : 2;
|
||||
optypes : (ot_xmmreg,ot_memory,ot_none);
|
||||
code : #1#102#214#2#15#110#72;
|
||||
code : #1#102#213#2#15#110#72;
|
||||
flags : if_willamette or if_sse2
|
||||
),
|
||||
(
|
||||
@ -3241,6 +3227,20 @@
|
||||
code : #219#193#2#15#126#72;
|
||||
flags : if_willamette or if_sse2
|
||||
),
|
||||
(
|
||||
opcode : A_MOVQ;
|
||||
ops : 2;
|
||||
optypes : (ot_xmmreg,ot_reg64,ot_none);
|
||||
code : #1#102#214#2#15#110#72;
|
||||
flags : if_willamette or if_sse2
|
||||
),
|
||||
(
|
||||
opcode : A_MOVQ;
|
||||
ops : 2;
|
||||
optypes : (ot_reg64,ot_xmmreg,ot_none);
|
||||
code : #1#102#214#2#15#126#65;
|
||||
flags : if_willamette or if_sse2
|
||||
),
|
||||
(
|
||||
opcode : A_MOVSB;
|
||||
ops : 0;
|
||||
|
@ -3108,32 +3108,18 @@
|
||||
code : #1#102#211#2#15#126#65;
|
||||
flags : if_willamette or if_sse2
|
||||
),
|
||||
(
|
||||
opcode : A_MOVD;
|
||||
ops : 2;
|
||||
optypes : (ot_xmmreg,ot_reg64,ot_none);
|
||||
code : #1#102#214#2#15#110#72;
|
||||
flags : if_willamette or if_sse2
|
||||
),
|
||||
(
|
||||
opcode : A_MOVD;
|
||||
ops : 2;
|
||||
optypes : (ot_reg64,ot_xmmreg,ot_none);
|
||||
code : #1#102#214#2#15#126#65;
|
||||
flags : if_willamette or if_sse2
|
||||
),
|
||||
(
|
||||
opcode : A_MOVD;
|
||||
ops : 2;
|
||||
optypes : (ot_memory,ot_xmmreg,ot_none);
|
||||
code : #1#102#214#2#15#126#65;
|
||||
code : #1#102#213#2#15#126#65;
|
||||
flags : if_willamette or if_sse2
|
||||
),
|
||||
(
|
||||
opcode : A_MOVD;
|
||||
ops : 2;
|
||||
optypes : (ot_xmmreg,ot_memory,ot_none);
|
||||
code : #1#102#214#2#15#110#72;
|
||||
code : #1#102#213#2#15#110#72;
|
||||
flags : if_willamette or if_sse2
|
||||
),
|
||||
(
|
||||
@ -3192,6 +3178,20 @@
|
||||
code : #219#193#2#15#126#72;
|
||||
flags : if_willamette or if_sse2
|
||||
),
|
||||
(
|
||||
opcode : A_MOVQ;
|
||||
ops : 2;
|
||||
optypes : (ot_xmmreg,ot_reg64,ot_none);
|
||||
code : #1#102#214#2#15#110#72;
|
||||
flags : if_willamette or if_sse2
|
||||
),
|
||||
(
|
||||
opcode : A_MOVQ;
|
||||
ops : 2;
|
||||
optypes : (ot_reg64,ot_xmmreg,ot_none);
|
||||
code : #1#102#214#2#15#126#65;
|
||||
flags : if_willamette or if_sse2
|
||||
),
|
||||
(
|
||||
opcode : A_MOVSB;
|
||||
ops : 0;
|
||||
|
20
tests/webtbs/tw13294.pp
Normal file
20
tests/webtbs/tw13294.pp
Normal file
@ -0,0 +1,20 @@
|
||||
{ %cpu=i386,x86_64 }
|
||||
{ %opt=-Cg- }
|
||||
|
||||
program movdtest;
|
||||
var
|
||||
a: int64 = 128133443 or (int64(123455) shl 32);
|
||||
b: int64;
|
||||
begin
|
||||
asm
|
||||
{$ifdef i386}
|
||||
movd a, %xmm0
|
||||
movd %xmm0, b
|
||||
{$else}
|
||||
movd a(%rip), %xmm0
|
||||
movd %xmm0, b(%rip)
|
||||
{$endif}
|
||||
end;
|
||||
if b<>128133443 then
|
||||
halt(1);
|
||||
end.
|
Loading…
Reference in New Issue
Block a user