Browse Source

* fixed 64 bit bug in a_load_subsetref_regs_noindex

git-svn-id: trunk@6602 -
Jonas Maebe 18 years ago
parent
commit
430351e424
1 changed files with 2 additions and 1 deletions
  1. 2 1
      compiler/ppcgen/cgppc.pas

+ 2 - 1
compiler/ppcgen/cgppc.pas

@@ -314,7 +314,8 @@ unit cgppc;
       restbits := (sref.bitlen - (loadbitsize - sref.startbit));
       a_op_const_reg(list,OP_SHL,OS_INT,restbits,valuereg);
       { mask other bits }
-      a_op_const_reg(list,OP_AND,OS_INT,(1 shl sref.bitlen)-1,valuereg);
+      if (sref.bitlen <> AIntBits) then
+        a_op_const_reg(list,OP_AND,OS_INT,(aword(1) shl sref.bitlen)-1,valuereg);
       { use subsetreg routine, it may have been overridden with an optimized version }
       fromsreg.subsetreg := extra_value_reg;
       fromsreg.subsetregsize := OS_INT;