summaryrefslogtreecommitdiff
path: root/avx512-0037785/compiler/x86/nx86mat.pas
diff options
context:
space:
mode:
Diffstat (limited to 'avx512-0037785/compiler/x86/nx86mat.pas')
-rw-r--r--avx512-0037785/compiler/x86/nx86mat.pas9
1 files changed, 4 insertions, 5 deletions
diff --git a/avx512-0037785/compiler/x86/nx86mat.pas b/avx512-0037785/compiler/x86/nx86mat.pas
index 036fb2dc67..19359e2e0a 100644
--- a/avx512-0037785/compiler/x86/nx86mat.pas
+++ b/avx512-0037785/compiler/x86/nx86mat.pas
@@ -164,10 +164,6 @@ interface
procedure tx86unaryminusnode.second_float;
- var
- reg : tregister;
- href : treference;
- l1 : tasmlabel;
begin
secondpass(left);
@@ -387,7 +383,10 @@ interface
cgsize:=def_cgsize(resultdef);
opsize:=TCGSize2OpSize[cgsize];
rega:=newreg(R_INTREGISTER,RS_EAX,cgsize2subreg(R_INTREGISTER,cgsize));
- regd:=newreg(R_INTREGISTER,RS_EDX,cgsize2subreg(R_INTREGISTER,cgsize));
+ if cgsize in [OS_8,OS_S8] then
+ regd:=NR_AH
+ else
+ regd:=newreg(R_INTREGISTER,RS_EDX,cgsize2subreg(R_INTREGISTER,cgsize));
location_reset(location,LOC_REGISTER,cgsize);
hlcg.location_force_reg(current_asmdata.CurrAsmList,left.location,left.resultdef,resultdef,false);