Message ID | 1395246197.28929.38.camel@localhost.localdomain |
---|---|
State | New |
Headers | show |
On 03/19/2014 04:23 PM, Edward Nevill wrote:
> I believe the shift removed by the patch below is mistaken. 'byte_offset' is already the offset in bytes so shifting it by scale of the data being loaded is wrong.
Absolutely right. It would be much less confusing if the argument passed
were a size rather than a shift, and form_address used exact_log2 to get
the shift. But your patch is OK.
Andrew.
diff -r b56e2e46bfe1 -r 9393c177ac9b src/cpu/aarch64/vm/macroAssembler_aarch64.cpp --- a/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp Wed Mar 19 10:39:35 2014 +0000 +++ b/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp Wed Mar 19 16:15:50 2014 +0000 @@ -1399,7 +1399,7 @@ } // Do it the hard way - mov(Rd, byte_offset << shift); + mov(Rd, byte_offset); add(Rd, base, Rd); return Address(Rd); } --- CUT HERE ---