summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortg74 <tg74@3ad0048d-3df7-0310-abae-a5850022a9f2>2021-02-08 11:04:21 +0000
committertg74 <tg74@3ad0048d-3df7-0310-abae-a5850022a9f2>2021-02-08 11:04:21 +0000
commitcb905217b4e336c07547378d6d81bbe324fdcc4e (patch)
tree8a6318f88fdaba05b0ecdeeb291bdcf52be53944
parent605e85d8ae30f0027f1fc8df0de5de18ab210c89 (diff)
downloadfpc-cb905217b4e336c07547378d6d81bbe324fdcc4e.tar.gz
bugfix 0037785 cvtsi2sd,cvtsi2ss for platform i386
git-svn-id: https://svn.freepascal.org/svn/fpc/branches/tg74@48526 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r--avx512-0037785/compiler/i386/i386atts.inc4
-rw-r--r--avx512-0037785/compiler/i8086/i8086atts.inc4
-rw-r--r--avx512-0037785/compiler/x86/aasmcpu.pas18
-rw-r--r--avx512-0037785/compiler/x86/rax86.pas3
-rw-r--r--avx512-0037785/compiler/x86/x86ins.dat4
-rw-r--r--avx512-0037785/compiler/x86_64/x8664ats.inc4
6 files changed, 21 insertions, 16 deletions
diff --git a/avx512-0037785/compiler/i386/i386atts.inc b/avx512-0037785/compiler/i386/i386atts.inc
index 63fca4b4e3..ea6ae89703 100644
--- a/avx512-0037785/compiler/i386/i386atts.inc
+++ b/avx512-0037785/compiler/i386/i386atts.inc
@@ -424,7 +424,7 @@ attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
-attsufINT,
+attsufMMS,
attsufNONE,
attsufNONE,
attsufNONE,
@@ -541,7 +541,7 @@ attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
-attsufINT,
+attsufMMS,
attsufNONE,
attsufNONE,
attsufNONE,
diff --git a/avx512-0037785/compiler/i8086/i8086atts.inc b/avx512-0037785/compiler/i8086/i8086atts.inc
index e7bef56dda..c016aa167a 100644
--- a/avx512-0037785/compiler/i8086/i8086atts.inc
+++ b/avx512-0037785/compiler/i8086/i8086atts.inc
@@ -424,7 +424,7 @@ attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
-attsufINT,
+attsufMMS,
attsufNONE,
attsufNONE,
attsufNONE,
@@ -541,7 +541,7 @@ attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
-attsufINT,
+attsufMMS,
attsufNONE,
attsufNONE,
attsufNONE,
diff --git a/avx512-0037785/compiler/x86/aasmcpu.pas b/avx512-0037785/compiler/x86/aasmcpu.pas
index eeb6044d77..e1ddf50dff 100644
--- a/avx512-0037785/compiler/x86/aasmcpu.pas
+++ b/avx512-0037785/compiler/x86/aasmcpu.pas
@@ -5518,13 +5518,17 @@ implementation
(gas_needsuffix[AsmOp] <> AttSufNONE) and
(not(InsTabMemRefSizeInfoCache^[AsmOp].MemRefSize in MemRefMultiples)) then
begin
- // combination (attsuffix <> "AttSufNONE") and (MemRefSize is not in MemRefMultiples) is not supported =>> check opcode-definition in x86ins.dat');
-
- inc(iCntOpcodeValError);
- Str(gas_needsuffix[AsmOp],hs1);
- Str(InsTabMemRefSizeInfoCache^[AsmOp].MemRefSize,hs2);
- Message3(asmr_e_not_supported_combination_attsuffix_memrefsize_type,
- std_op2str[AsmOp],hs1,hs2);
+ // combination (attsuffix <> "AttSufNONE") and (MemRefSize is not in MemRefMultiples) is not supported =>> check opcode-definition in x86ins.dat
+
+ if (AsmOp <> A_CVTSI2SD) and
+ (AsmOp <> A_CVTSI2SS) then
+ begin
+ inc(iCntOpcodeValError);
+ Str(gas_needsuffix[AsmOp],hs1);
+ Str(InsTabMemRefSizeInfoCache^[AsmOp].MemRefSize,hs2);
+ Message3(asmr_e_not_supported_combination_attsuffix_memrefsize_type,
+ std_op2str[AsmOp],hs1,hs2);
+ end;
end;
end;
end;
diff --git a/avx512-0037785/compiler/x86/rax86.pas b/avx512-0037785/compiler/x86/rax86.pas
index a0cfa731a0..7fbc06704c 100644
--- a/avx512-0037785/compiler/x86/rax86.pas
+++ b/avx512-0037785/compiler/x86/rax86.pas
@@ -2075,7 +2075,8 @@ begin
end;
if asize<>0 then
- ai.oper[i-1]^.ot:=(ai.oper[i-1]^.ot and not OT_SIZE_MASK) or asize;
+ //ai.oper[i-1]^.ot:=(ai.oper[i-1]^.ot and not OT_SIZE_MASK) or asize;
+ ai.oper[i-1]^.ot:=(ai.oper[i-1]^.ot and OT_NON_SIZE) or asize;
end;
end;
OPR_REFERENCE:
diff --git a/avx512-0037785/compiler/x86/x86ins.dat b/avx512-0037785/compiler/x86/x86ins.dat
index bfa4ed2299..e30a93c7ff 100644
--- a/avx512-0037785/compiler/x86/x86ins.dat
+++ b/avx512-0037785/compiler/x86/x86ins.dat
@@ -2339,7 +2339,7 @@ xmmreg,mmxrm \331\2\x0F\x2A\110 KATMAI,SSE,MMX
mmxreg,mem64 \331\2\x0F\x2D\110 KATMAI,SSE,MMX
mmxreg,xmmreg \331\2\x0F\x2D\110 KATMAI,SSE,MMX
-[CVTSI2SS,cvtsi2ssX]
+[CVTSI2SS,cvtsi2ssS]
(Ch_Wop2, Ch_Rop1)
xmmreg,rm32 \333\321\2\x0F\x2A\110 KATMAI,SSE
xmmreg,rm64 \333\321\2\x0F\x2A\110 KATMAI,SSE,X86_64
@@ -2878,7 +2878,7 @@ reg64,mem64 \334\320\2\x0F\x2D\110 WILLAMETTE,SSE2,X86_64
xmmreg,xmmreg \334\2\x0F\x5A\110 WILLAMETTE,SSE2 ;,SQ
xmmreg,mem64 \334\2\x0F\x5A\110 WILLAMETTE,SSE2 ;,SQ
-[CVTSI2SD,cvtsi2sdX]
+[CVTSI2SD,cvtsi2sdS]
(Ch_Wop2, Ch_Rop1)
xmmreg,rm32 \334\2\x0F\x2A\110 WILLAMETTE,SSE2
xmmreg,rm64 \326\334\321\2\x0F\x2A\110 WILLAMETTE,SSE2,X86_64
diff --git a/avx512-0037785/compiler/x86_64/x8664ats.inc b/avx512-0037785/compiler/x86_64/x8664ats.inc
index d68e5930ce..ac2ce4819f 100644
--- a/avx512-0037785/compiler/x86_64/x8664ats.inc
+++ b/avx512-0037785/compiler/x86_64/x8664ats.inc
@@ -410,7 +410,7 @@ attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
-attsufINT,
+attsufMMS,
attsufNONE,
attsufNONE,
attsufNONE,
@@ -527,7 +527,7 @@ attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
-attsufINT,
+attsufMMS,
attsufNONE,
attsufNONE,
attsufNONE,