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/api.h" | 5 #include "src/api.h" |
6 #include "src/arm64/assembler-arm64-inl.h" | 6 #include "src/arm64/assembler-arm64-inl.h" |
7 #include "src/arm64/frames-arm64.h" | 7 #include "src/arm64/frames-arm64.h" |
8 #include "src/arm64/macro-assembler-arm64-inl.h" | 8 #include "src/arm64/macro-assembler-arm64-inl.h" |
9 #include "src/codegen.h" | 9 #include "src/codegen.h" |
10 #include "src/deoptimizer.h" | 10 #include "src/deoptimizer.h" |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
92 | 92 |
93 void Deoptimizer::TableEntryGenerator::Generate() { | 93 void Deoptimizer::TableEntryGenerator::Generate() { |
94 GeneratePrologue(); | 94 GeneratePrologue(); |
95 | 95 |
96 // TODO(all): This code needs to be revisited. We probably only need to save | 96 // TODO(all): This code needs to be revisited. We probably only need to save |
97 // caller-saved registers here. Callee-saved registers can be stored directly | 97 // caller-saved registers here. Callee-saved registers can be stored directly |
98 // in the input frame. | 98 // in the input frame. |
99 | 99 |
100 // Save all allocatable double registers. | 100 // Save all allocatable double registers. |
101 CPURegList saved_double_registers( | 101 CPURegList saved_double_registers( |
102 CPURegister::kFPRegister, kDRegSizeInBits, | 102 CPURegister::kVRegister, kDRegSizeInBits, |
103 RegisterConfiguration::Crankshaft()->allocatable_double_codes_mask()); | 103 RegisterConfiguration::Crankshaft()->allocatable_double_codes_mask()); |
104 __ PushCPURegList(saved_double_registers); | 104 __ PushCPURegList(saved_double_registers); |
105 | 105 |
106 // Save all allocatable float registers. | 106 // Save all allocatable float registers. |
107 CPURegList saved_float_registers( | 107 CPURegList saved_float_registers( |
108 CPURegister::kFPRegister, kSRegSizeInBits, | 108 CPURegister::kVRegister, kSRegSizeInBits, |
109 RegisterConfiguration::Crankshaft()->allocatable_float_codes_mask()); | 109 RegisterConfiguration::Crankshaft()->allocatable_float_codes_mask()); |
110 __ PushCPURegList(saved_float_registers); | 110 __ PushCPURegList(saved_float_registers); |
111 | 111 |
112 // We save all the registers expcept jssp, sp and lr. | 112 // We save all the registers expcept jssp, sp and lr. |
113 CPURegList saved_registers(CPURegister::kRegister, kXRegSizeInBits, 0, 27); | 113 CPURegList saved_registers(CPURegister::kRegister, kXRegSizeInBits, 0, 27); |
114 saved_registers.Combine(fp); | 114 saved_registers.Combine(fp); |
115 __ PushCPURegList(saved_registers); | 115 __ PushCPURegList(saved_registers); |
116 | 116 |
117 __ Mov(x3, Operand(ExternalReference(Isolate::kCEntryFPAddress, isolate()))); | 117 __ Mov(x3, Operand(ExternalReference(Isolate::kCEntryFPAddress, isolate()))); |
118 __ Str(fp, MemOperand(x3)); | 118 __ Str(fp, MemOperand(x3)); |
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
362 void FrameDescription::SetCallerConstantPool(unsigned offset, intptr_t value) { | 362 void FrameDescription::SetCallerConstantPool(unsigned offset, intptr_t value) { |
363 // No embedded constant pool support. | 363 // No embedded constant pool support. |
364 UNREACHABLE(); | 364 UNREACHABLE(); |
365 } | 365 } |
366 | 366 |
367 | 367 |
368 #undef __ | 368 #undef __ |
369 | 369 |
370 } // namespace internal | 370 } // namespace internal |
371 } // namespace v8 | 371 } // namespace v8 |
OLD | NEW |