diff options
Diffstat (limited to 'avx512-0037785/compiler/x86/nx86mat.pas')
-rw-r--r-- | avx512-0037785/compiler/x86/nx86mat.pas | 9 |
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); |