MIPS: Store doubles before calling into the elements transition stub
Port r16172 (cc2b6204) BUG= Review URL: https://codereview.chromium.org/23110002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16182 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
6f800f90ee
commit
e12b6ff35d
@ -4405,12 +4405,13 @@ void LCodeGen::DoTransitionElementsKind(LTransitionElementsKind* instr) {
|
|||||||
__ RecordWriteField(object_reg, HeapObject::kMapOffset, new_map_reg,
|
__ RecordWriteField(object_reg, HeapObject::kMapOffset, new_map_reg,
|
||||||
scratch, GetRAState(), kDontSaveFPRegs);
|
scratch, GetRAState(), kDontSaveFPRegs);
|
||||||
} else {
|
} else {
|
||||||
PushSafepointRegistersScope scope(this, Safepoint::kWithRegisters);
|
PushSafepointRegistersScope scope(
|
||||||
|
this, Safepoint::kWithRegistersAndDoubles);
|
||||||
__ mov(a0, object_reg);
|
__ mov(a0, object_reg);
|
||||||
__ li(a1, Operand(to_map));
|
__ li(a1, Operand(to_map));
|
||||||
TransitionElementsKindStub stub(from_kind, to_kind);
|
TransitionElementsKindStub stub(from_kind, to_kind);
|
||||||
__ CallStub(&stub);
|
__ CallStub(&stub);
|
||||||
RecordSafepointWithRegisters(
|
RecordSafepointWithRegistersAndDoubles(
|
||||||
instr->pointer_map(), 0, Safepoint::kNoLazyDeopt);
|
instr->pointer_map(), 0, Safepoint::kNoLazyDeopt);
|
||||||
}
|
}
|
||||||
__ bind(¬_applicable);
|
__ bind(¬_applicable);
|
||||||
|
Loading…
Reference in New Issue
Block a user