| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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/codegen.h" | 5 #include "src/codegen.h" |
| 6 #include "src/deoptimizer.h" | 6 #include "src/deoptimizer.h" |
| 7 #include "src/full-codegen/full-codegen.h" | 7 #include "src/full-codegen/full-codegen.h" |
| 8 #include "src/register-configuration.h" | 8 #include "src/register-configuration.h" |
| 9 #include "src/safepoint-table.h" | 9 #include "src/safepoint-table.h" |
| 10 | 10 |
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 204 DCHECK(Register::kNumRegisters == kNumberOfRegisters); | 204 DCHECK(Register::kNumRegisters == kNumberOfRegisters); |
| 205 for (int i = 0; i < kNumberOfRegisters; i++) { | 205 for (int i = 0; i < kNumberOfRegisters; i++) { |
| 206 int offset = (i * kPointerSize) + FrameDescription::registers_offset(); | 206 int offset = (i * kPointerSize) + FrameDescription::registers_offset(); |
| 207 __ ldr(r2, MemOperand(sp, i * kPointerSize)); | 207 __ ldr(r2, MemOperand(sp, i * kPointerSize)); |
| 208 __ str(r2, MemOperand(r1, offset)); | 208 __ str(r2, MemOperand(r1, offset)); |
| 209 } | 209 } |
| 210 | 210 |
| 211 // Copy VFP registers to | 211 // Copy VFP registers to |
| 212 // double_registers_[DoubleRegister::kMaxNumAllocatableRegisters] | 212 // double_registers_[DoubleRegister::kMaxNumAllocatableRegisters] |
| 213 int double_regs_offset = FrameDescription::double_registers_offset(); | 213 int double_regs_offset = FrameDescription::double_registers_offset(); |
| 214 const RegisterConfiguration* config = RegisterConfiguration::ArchDefault(); | 214 const RegisterConfiguration* config = |
| 215 RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT); |
| 215 for (int i = 0; i < config->num_allocatable_double_registers(); ++i) { | 216 for (int i = 0; i < config->num_allocatable_double_registers(); ++i) { |
| 216 int code = config->GetAllocatableDoubleCode(i); | 217 int code = config->GetAllocatableDoubleCode(i); |
| 217 int dst_offset = code * kDoubleSize + double_regs_offset; | 218 int dst_offset = code * kDoubleSize + double_regs_offset; |
| 218 int src_offset = code * kDoubleSize + kNumberOfRegisters * kPointerSize; | 219 int src_offset = code * kDoubleSize + kNumberOfRegisters * kPointerSize; |
| 219 __ vldr(d0, sp, src_offset); | 220 __ vldr(d0, sp, src_offset); |
| 220 __ vstr(d0, r1, dst_offset); | 221 __ vstr(d0, r1, dst_offset); |
| 221 } | 222 } |
| 222 | 223 |
| 223 // Remove the bailout id and the saved registers from the stack. | 224 // Remove the bailout id and the saved registers from the stack. |
| 224 __ add(sp, sp, Operand(kSavedRegistersAreaSize + (1 * kPointerSize))); | 225 __ add(sp, sp, Operand(kSavedRegistersAreaSize + (1 * kPointerSize))); |
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 355 void FrameDescription::SetCallerConstantPool(unsigned offset, intptr_t value) { | 356 void FrameDescription::SetCallerConstantPool(unsigned offset, intptr_t value) { |
| 356 DCHECK(FLAG_enable_embedded_constant_pool); | 357 DCHECK(FLAG_enable_embedded_constant_pool); |
| 357 SetFrameSlot(offset, value); | 358 SetFrameSlot(offset, value); |
| 358 } | 359 } |
| 359 | 360 |
| 360 | 361 |
| 361 #undef __ | 362 #undef __ |
| 362 | 363 |
| 363 } // namespace internal | 364 } // namespace internal |
| 364 } // namespace v8 | 365 } // namespace v8 |
| OLD | NEW |