Fix stub cache on ARM, broken in 10864.

Review URL: https://chromiumcodereview.appspot.com/9539010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10872 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
erik.corry@gmail.com 2012-02-29 14:38:54 +00:00
parent 84eea3e531
commit 448d80db64

View File

@ -237,7 +237,7 @@ void StubCache::GenerateProbe(MacroAssembler* masm,
__ mov(scratch, Operand(scratch, LSR, kHeapObjectTagSize)); __ mov(scratch, Operand(scratch, LSR, kHeapObjectTagSize));
// Mask down the eor argument to the minimum to keep the immediate // Mask down the eor argument to the minimum to keep the immediate
// ARM-encodable. // ARM-encodable.
__ eor(scratch, scratch, Operand(flags & mask)); __ eor(scratch, scratch, Operand((flags >> kHeapObjectTagSize) & mask));
// Prefer and_ to ubfx here because ubfx takes 2 cycles. // Prefer and_ to ubfx here because ubfx takes 2 cycles.
__ and_(scratch, scratch, Operand(mask)); __ and_(scratch, scratch, Operand(mask));
@ -255,7 +255,7 @@ void StubCache::GenerateProbe(MacroAssembler* masm,
// Primary miss: Compute hash for secondary probe. // Primary miss: Compute hash for secondary probe.
__ sub(scratch, scratch, Operand(name, LSR, kHeapObjectTagSize)); __ sub(scratch, scratch, Operand(name, LSR, kHeapObjectTagSize));
uint32_t mask2 = (kSecondaryTableSize - 1); uint32_t mask2 = kSecondaryTableSize - 1;
__ add(scratch, scratch, Operand((flags >> kHeapObjectTagSize) & mask2)); __ add(scratch, scratch, Operand((flags >> kHeapObjectTagSize) & mask2));
__ and_(scratch, scratch, Operand(mask2)); __ and_(scratch, scratch, Operand(mask2));