| Index: src/arm/macro-assembler-arm.cc
|
| diff --git a/src/arm/macro-assembler-arm.cc b/src/arm/macro-assembler-arm.cc
|
| index 21146234a1725d790437baf0dc08b4dfa3b359c7..1028b0e69f3e8dbba88fee6e7ac635a0c6ff954b 100644
|
| --- a/src/arm/macro-assembler-arm.cc
|
| +++ b/src/arm/macro-assembler-arm.cc
|
| @@ -466,6 +466,25 @@ void MacroAssembler::PopSafepointRegisters() {
|
| }
|
|
|
|
|
| +void MacroAssembler::PushSafepointRegistersAndDoubles() {
|
| + PushSafepointRegisters();
|
| + sub(sp, sp, Operand(DwVfpRegister::kNumAllocatableRegisters *
|
| + kDoubleSize));
|
| + for (int i = 0; i < DwVfpRegister::kNumAllocatableRegisters; i++) {
|
| + vstr(DwVfpRegister::FromAllocationIndex(i), sp, i * kDoubleSize);
|
| + }
|
| +}
|
| +
|
| +
|
| +void MacroAssembler::PopSafepointRegistersAndDoubles() {
|
| + for (int i = 0; i < DwVfpRegister::kNumAllocatableRegisters; i++) {
|
| + vldr(DwVfpRegister::FromAllocationIndex(i), sp, i * kDoubleSize);
|
| + }
|
| + add(sp, sp, Operand(DwVfpRegister::kNumAllocatableRegisters *
|
| + kDoubleSize));
|
| + PopSafepointRegisters();
|
| +}
|
| +
|
| int MacroAssembler::SafepointRegisterStackIndex(int reg_code) {
|
| // The registers are pushed starting with the highest encoding,
|
| // which means that lowest encodings are closest to the stack pointer.
|
|
|