diff options
author | tg74 <tg74@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2020-11-11 05:07:56 +0000 |
---|---|---|
committer | tg74 <tg74@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2020-11-11 05:07:56 +0000 |
commit | 1e957364ad47dfb4f7f305bcde0aa9179cd52c76 (patch) | |
tree | 58c34aa65543cdc72d2ed6e87e58a1e580caffa4 | |
parent | d6fb28a37107f113834fa31451aa38b958feace6 (diff) | |
download | fpc-1e957364ad47dfb4f7f305bcde0aa9179cd52c76.tar.gz |
bugfix internal assembler compiling vpmov*
git-svn-id: https://svn.freepascal.org/svn/fpc/branches/tg74@47386 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r-- | avx512-0037785/compiler/x86/rax86.pas | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/avx512-0037785/compiler/x86/rax86.pas b/avx512-0037785/compiler/x86/rax86.pas index 2b727f28ac..6c52bc3af3 100644 --- a/avx512-0037785/compiler/x86/rax86.pas +++ b/avx512-0037785/compiler/x86/rax86.pas @@ -544,6 +544,21 @@ begin end; end; end; + msiMemRegx16y32z64: + begin + for j := 1 to ops do + begin + if operands[j].Opr.Typ = OPR_REGISTER then + begin + case getsubreg(operands[j].opr.reg) of + R_SUBMMX: memrefsize := 16; + R_SUBMMY: memrefsize := 32; + R_SUBMMZ: memrefsize := 64; + else Message(asmr_e_unable_to_determine_reference_size); + end; + end; + end; + end; msiMemRegx32y64: begin for j := 1 to ops do @@ -558,6 +573,21 @@ begin end; end; end; + msiMemRegx32y64z128: + begin + for j := 1 to ops do + begin + if operands[j].Opr.Typ = OPR_REGISTER then + begin + case getsubreg(operands[j].opr.reg) of + R_SUBMMX: memrefsize := 32; + R_SUBMMY: memrefsize := 64; + R_SUBMMZ: memrefsize := 128; + else Message(asmr_e_unable_to_determine_reference_size); + end; + end; + end; + end; msiMemRegx64y128: begin for j := 1 to ops do @@ -712,7 +742,7 @@ begin msiMultiple: ; else - Internalerror(2019081005); + Internalerror(2020111001); end; if memrefsize > -1 then |