From 430351e424c1a5e7a511f3d3f54d8e1f87df3beb Mon Sep 17 00:00:00 2001 From: Jonas Maebe Date: Thu, 22 Feb 2007 13:52:01 +0000 Subject: [PATCH] * fixed 64 bit bug in a_load_subsetref_regs_noindex git-svn-id: trunk@6602 - --- compiler/ppcgen/cgppc.pas | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/compiler/ppcgen/cgppc.pas b/compiler/ppcgen/cgppc.pas index 9de0ed2151..9d03409a96 100644 --- a/compiler/ppcgen/cgppc.pas +++ b/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;