| Index: src/ia32/macro-assembler-ia32.cc
|
| diff --git a/src/ia32/macro-assembler-ia32.cc b/src/ia32/macro-assembler-ia32.cc
|
| index cebfb13727d54033e58f8c927aeea3c5f895c2f6..db0055a4580cc6fed7a60dcfd131008ee37691d9 100644
|
| --- a/src/ia32/macro-assembler-ia32.cc
|
| +++ b/src/ia32/macro-assembler-ia32.cc
|
| @@ -3055,18 +3055,19 @@ void MacroAssembler::TestJSArrayForAllocationSiteInfo(
|
| Register scratch_reg,
|
| Label* allocation_info_present) {
|
| Label no_info_available;
|
| +
|
| ExternalReference new_space_start =
|
| ExternalReference::new_space_start(isolate());
|
| ExternalReference new_space_allocation_top =
|
| ExternalReference::new_space_allocation_top_address(isolate());
|
|
|
| lea(scratch_reg, Operand(receiver_reg,
|
| - JSArray::kSize + AllocationSiteInfo::kSize));
|
| + JSArray::kSize + AllocationSiteInfo::kSize - kHeapObjectTag));
|
| cmp(scratch_reg, Immediate(new_space_start));
|
| j(less, &no_info_available);
|
| cmp(scratch_reg, Operand::StaticVariable(new_space_allocation_top));
|
| - j(greater_equal, &no_info_available);
|
| - cmp(MemOperand(scratch_reg, 0),
|
| + j(greater, &no_info_available);
|
| + cmp(MemOperand(scratch_reg, -AllocationSiteInfo::kSize),
|
| Immediate(Handle<Map>(isolate()->heap()->allocation_site_info_map())));
|
| j(equal, allocation_info_present);
|
| bind(&no_info_available);
|
|
|