| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "src/v8.h" | 5 #include "src/v8.h" |
| 6 | 6 |
| 7 #include "src/codegen.h" | 7 #include "src/codegen.h" |
| 8 #include "src/deoptimizer.h" | 8 #include "src/deoptimizer.h" |
| 9 #include "src/full-codegen.h" | 9 #include "src/full-codegen.h" |
| 10 #include "src/safepoint-table.h" | 10 #include "src/safepoint-table.h" |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 125 // Save all allocatable floating point registers. | 125 // Save all allocatable floating point registers. |
| 126 CPURegList saved_fp_registers(CPURegister::kFPRegister, kDRegSizeInBits, | 126 CPURegList saved_fp_registers(CPURegister::kFPRegister, kDRegSizeInBits, |
| 127 FPRegister::kAllocatableFPRegisters); | 127 FPRegister::kAllocatableFPRegisters); |
| 128 __ PushCPURegList(saved_fp_registers); | 128 __ PushCPURegList(saved_fp_registers); |
| 129 | 129 |
| 130 // We save all the registers expcept jssp, sp and lr. | 130 // We save all the registers expcept jssp, sp and lr. |
| 131 CPURegList saved_registers(CPURegister::kRegister, kXRegSizeInBits, 0, 27); | 131 CPURegList saved_registers(CPURegister::kRegister, kXRegSizeInBits, 0, 27); |
| 132 saved_registers.Combine(fp); | 132 saved_registers.Combine(fp); |
| 133 __ PushCPURegList(saved_registers); | 133 __ PushCPURegList(saved_registers); |
| 134 | 134 |
| 135 __ Mov(x3, Operand(ExternalReference(Isolate::kCEntryFPAddress, isolate()))); |
| 136 __ Str(fp, MemOperand(x3)); |
| 137 |
| 135 const int kSavedRegistersAreaSize = | 138 const int kSavedRegistersAreaSize = |
| 136 (saved_registers.Count() * kXRegSize) + | 139 (saved_registers.Count() * kXRegSize) + |
| 137 (saved_fp_registers.Count() * kDRegSize); | 140 (saved_fp_registers.Count() * kDRegSize); |
| 138 | 141 |
| 139 // Floating point registers are saved on the stack above core registers. | 142 // Floating point registers are saved on the stack above core registers. |
| 140 const int kFPRegistersOffset = saved_registers.Count() * kXRegSize; | 143 const int kFPRegistersOffset = saved_registers.Count() * kXRegSize; |
| 141 | 144 |
| 142 // Get the bailout id from the stack. | 145 // Get the bailout id from the stack. |
| 143 Register bailout_id = x2; | 146 Register bailout_id = x2; |
| 144 __ Peek(bailout_id, kSavedRegistersAreaSize); | 147 __ Peek(bailout_id, kSavedRegistersAreaSize); |
| (...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 352 | 355 |
| 353 void FrameDescription::SetCallerConstantPool(unsigned offset, intptr_t value) { | 356 void FrameDescription::SetCallerConstantPool(unsigned offset, intptr_t value) { |
| 354 // No out-of-line constant pool support. | 357 // No out-of-line constant pool support. |
| 355 UNREACHABLE(); | 358 UNREACHABLE(); |
| 356 } | 359 } |
| 357 | 360 |
| 358 | 361 |
| 359 #undef __ | 362 #undef __ |
| 360 | 363 |
| 361 } } // namespace v8::internal | 364 } } // namespace v8::internal |
| OLD | NEW |