MIPS: Incorrect ARM assembly in MacroAssembler::TestJSArrayForAllocationSiteInfo

Port r13462 (74f0ddf6)

Original commit message:
Incorrect ARM assembly in MacroAssembler::TestJSArrayForAllocationSiteInfo Restored test code in allocation-site-info.js that was failing on ARM because of this bug.

BUG=
TEST=

Review URL: https://codereview.chromium.org/11896037
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13465 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
mvstanton@chromium.org 2013-01-22 16:18:59 +00:00
parent 79a0e3b017
commit a3de98b4a7

View File

@ -5454,11 +5454,12 @@ void MacroAssembler::TestJSArrayForAllocationSiteInfo(
ExternalReference::new_space_start(isolate());
ExternalReference new_space_allocation_top =
ExternalReference::new_space_allocation_top_address(isolate());
lw(scratch_reg, FieldMemOperand(receiver_reg,
JSArray::kSize + AllocationSiteInfo::kSize - kHeapObjectTag));
Addu(scratch_reg, receiver_reg,
Operand(JSArray::kSize + AllocationSiteInfo::kSize - kHeapObjectTag));
Branch(&no_info_available, lt, scratch_reg, Operand(new_space_start));
Branch(&no_info_available, gt, scratch_reg,
Operand(new_space_allocation_top));
li(at, Operand(new_space_allocation_top));
lw(at, MemOperand(at));
Branch(&no_info_available, gt, scratch_reg, Operand(at));
lw(scratch_reg, MemOperand(scratch_reg, -AllocationSiteInfo::kSize));
Branch(allocation_info_present, eq, scratch_reg,
Operand(Handle<Map>(isolate()->heap()->allocation_site_info_map())));