DescriptionARM: Fix register misuse bug in Allocate().
The bug is triggered if flags contains DOUBLE_ALIGNMENT and the
object_size is not an ARM immediate value. In this case, the code
for DOUBLE_ALIGNMENT uses the scratch2 register, which is aliased
to obj_size_reg containing the object_size.
Instead of pre-loading the object_size, which is difficult since
we are out of registers here, we simply generate a non-empty
sequence of add instructions for the addition of the constant
object_size (carefully handling possible overflow in each step).
Also turn static ASSERT into STATIC_ASSERT in Allocate().
BUG=v8:2851
R=svenpanne@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=16221
Patch Set 1 #
Messages
Total messages: 3 (0 generated)
|