Browse Source

Merged revisions 6602 via svnmerge from
svn+ssh://[email protected]/FPC/svn/fpc/trunk

........
r6602 | jonas | 2007-02-22 14:52:01 +0100 (Thu, 22 Feb 2007) | 2 lines

* fixed 64 bit bug in a_load_subsetref_regs_noindex

........

git-svn-id: branches/fpc_2_3@6603 -

Jonas Maebe 18 years ago
parent
commit
e5976c63a0
1 changed files with 2 additions and 1 deletions
  1. 2 1
      compiler/ppcgen/cgppc.pas

+ 2 - 1
compiler/ppcgen/cgppc.pas

@@ -414,7 +414,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;