| Index: src/arm/code-stubs-arm.cc
|
| diff --git a/src/arm/code-stubs-arm.cc b/src/arm/code-stubs-arm.cc
|
| index 1236e31784c917d87fa612db324303298b191773..3aa76e7c82c72d832f9edb798a168c7b01831129 100644
|
| --- a/src/arm/code-stubs-arm.cc
|
| +++ b/src/arm/code-stubs-arm.cc
|
| @@ -49,6 +49,18 @@ void KeyedLoadFastElementStub::InitializeInterfaceDescriptor(
|
| }
|
|
|
|
|
| +void TransitionElementsKindStub::InitializeInterfaceDescriptor(
|
| + Isolate* isolate,
|
| + CodeStubInterfaceDescriptor* descriptor) {
|
| + static Register registers[] = { r0, r1 };
|
| + descriptor->register_param_count_ = 2;
|
| + descriptor->register_params_ = registers;
|
| + Address entry =
|
| + Runtime::FunctionForId(Runtime::kTransitionElementsKind)->entry;
|
| + descriptor->deoptimization_handler_ = FUNCTION_ADDR(entry);
|
| +}
|
| +
|
| +
|
| #define __ ACCESS_MASM(masm)
|
|
|
| static void EmitIdenticalObjectComparison(MacroAssembler* masm,
|
| @@ -2075,8 +2087,8 @@ void StoreBufferOverflowStub::Generate(MacroAssembler* masm) {
|
| // Check CPU flags for number of registers, setting the Z condition flag.
|
| __ CheckFor32DRegs(scratch);
|
|
|
| - __ sub(sp, sp, Operand(kDoubleSize * DwVfpRegister::kNumRegisters));
|
| - for (int i = 0; i < DwVfpRegister::kNumRegisters; i++) {
|
| + __ sub(sp, sp, Operand(kDoubleSize * DwVfpRegister::kMaxNumRegisters));
|
| + for (int i = 0; i < DwVfpRegister::kMaxNumRegisters; i++) {
|
| DwVfpRegister reg = DwVfpRegister::from_code(i);
|
| __ vstr(reg, MemOperand(sp, i * kDoubleSize), i < 16 ? al : ne);
|
| }
|
| @@ -2096,11 +2108,11 @@ void StoreBufferOverflowStub::Generate(MacroAssembler* masm) {
|
| // Check CPU flags for number of registers, setting the Z condition flag.
|
| __ CheckFor32DRegs(scratch);
|
|
|
| - for (int i = 0; i < DwVfpRegister::kNumRegisters; i++) {
|
| + for (int i = 0; i < DwVfpRegister::kMaxNumRegisters; i++) {
|
| DwVfpRegister reg = DwVfpRegister::from_code(i);
|
| __ vldr(reg, MemOperand(sp, i * kDoubleSize), i < 16 ? al : ne);
|
| }
|
| - __ add(sp, sp, Operand(kDoubleSize * DwVfpRegister::kNumRegisters));
|
| + __ add(sp, sp, Operand(kDoubleSize * DwVfpRegister::kMaxNumRegisters));
|
| }
|
| __ ldm(ia_w, sp, kCallerSaved | pc.bit()); // Also pop pc to get Ret(0).
|
| }
|
|
|