Browse Source

* set operand size properly for STX*

florian 1 year ago
parent
commit
47d2395110
1 changed files with 3 additions and 3 deletions
  1. 3 3
      compiler/aarch64/cgcpu.pas

+ 3 - 3
compiler/aarch64/cgcpu.pas

@@ -1061,15 +1061,15 @@ implementation
                   OS_8:
                     list.concat(taicpu.op_reg_reg(A_UXTB,reg2,makeregsize(reg1,OS_64)));
                   OS_S8:
-                    list.concat(taicpu.op_reg_reg(A_SXTB,reg2,makeregsize(reg1,OS_64)));
+                    list.concat(taicpu.op_reg_reg(A_SXTB,reg2,makeregsize(reg1,OS_32)));
                   OS_16:
                     list.concat(taicpu.op_reg_reg(A_UXTH,reg2,makeregsize(reg1,OS_64)));
                   OS_S16:
-                    list.concat(taicpu.op_reg_reg(A_SXTH,reg2,makeregsize(reg1,OS_64)));
+                    list.concat(taicpu.op_reg_reg(A_SXTH,reg2,makeregsize(reg1,OS_32)));
                   OS_32:
                     list.concat(taicpu.op_reg_reg_const_const(A_UBFIZ,makeregsize(reg2,OS_64),makeregsize(reg1,OS_64),0,32));
                   OS_S32:
-                    list.concat(taicpu.op_reg_reg(A_SXTW,reg2,makeregsize(reg1,OS_64)));
+                    list.concat(taicpu.op_reg_reg(A_SXTW,reg2,makeregsize(reg1,OS_32)));
                   else
                     internalerror(2024070701);
                 end;