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/arm64/frames-arm64.h" | 5 #include "src/arm64/frames-arm64.h" |
6 #include "src/codegen.h" | 6 #include "src/codegen.h" |
7 #include "src/deoptimizer.h" | 7 #include "src/deoptimizer.h" |
8 #include "src/full-codegen/full-codegen.h" | 8 #include "src/full-codegen/full-codegen.h" |
9 #include "src/register-configuration.h" | 9 #include "src/register-configuration.h" |
10 #include "src/safepoint-table.h" | 10 #include "src/safepoint-table.h" |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
90 void Deoptimizer::TableEntryGenerator::Generate() { | 90 void Deoptimizer::TableEntryGenerator::Generate() { |
91 GeneratePrologue(); | 91 GeneratePrologue(); |
92 | 92 |
93 // TODO(all): This code needs to be revisited. We probably only need to save | 93 // TODO(all): This code needs to be revisited. We probably only need to save |
94 // caller-saved registers here. Callee-saved registers can be stored directly | 94 // caller-saved registers here. Callee-saved registers can be stored directly |
95 // in the input frame. | 95 // in the input frame. |
96 | 96 |
97 // Save all allocatable floating point registers. | 97 // Save all allocatable floating point registers. |
98 CPURegList saved_fp_registers( | 98 CPURegList saved_fp_registers( |
99 CPURegister::kFPRegister, kDRegSizeInBits, | 99 CPURegister::kFPRegister, kDRegSizeInBits, |
100 RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT) | 100 RegisterConfiguration::Crankshaft()->allocatable_double_codes_mask()); |
101 ->allocatable_double_codes_mask()); | |
102 __ PushCPURegList(saved_fp_registers); | 101 __ PushCPURegList(saved_fp_registers); |
103 | 102 |
104 // We save all the registers expcept jssp, sp and lr. | 103 // We save all the registers expcept jssp, sp and lr. |
105 CPURegList saved_registers(CPURegister::kRegister, kXRegSizeInBits, 0, 27); | 104 CPURegList saved_registers(CPURegister::kRegister, kXRegSizeInBits, 0, 27); |
106 saved_registers.Combine(fp); | 105 saved_registers.Combine(fp); |
107 __ PushCPURegList(saved_registers); | 106 __ PushCPURegList(saved_registers); |
108 | 107 |
109 __ Mov(x3, Operand(ExternalReference(Isolate::kCEntryFPAddress, isolate()))); | 108 __ Mov(x3, Operand(ExternalReference(Isolate::kCEntryFPAddress, isolate()))); |
110 __ Str(fp, MemOperand(x3)); | 109 __ Str(fp, MemOperand(x3)); |
111 | 110 |
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
340 void FrameDescription::SetCallerConstantPool(unsigned offset, intptr_t value) { | 339 void FrameDescription::SetCallerConstantPool(unsigned offset, intptr_t value) { |
341 // No embedded constant pool support. | 340 // No embedded constant pool support. |
342 UNREACHABLE(); | 341 UNREACHABLE(); |
343 } | 342 } |
344 | 343 |
345 | 344 |
346 #undef __ | 345 #undef __ |
347 | 346 |
348 } // namespace internal | 347 } // namespace internal |
349 } // namespace v8 | 348 } // namespace v8 |
OLD | NEW |