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 #if V8_TARGET_ARCH_ARM64 | 7 #if V8_TARGET_ARCH_ARM64 |
8 | 8 |
9 #include "src/codegen.h" | 9 #include "src/codegen.h" |
10 #include "src/debug.h" | 10 #include "src/debug.h" |
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
236 | 236 |
237 void DebugCodegen::GenerateLoadICDebugBreak(MacroAssembler* masm) { | 237 void DebugCodegen::GenerateLoadICDebugBreak(MacroAssembler* masm) { |
238 // Calling convention for IC load (from ic-arm.cc). | 238 // Calling convention for IC load (from ic-arm.cc). |
239 Register receiver = LoadIC::ReceiverRegister(); | 239 Register receiver = LoadIC::ReceiverRegister(); |
240 Register name = LoadIC::NameRegister(); | 240 Register name = LoadIC::NameRegister(); |
241 Generate_DebugBreakCallHelper(masm, receiver.Bit() | name.Bit(), 0, x10); | 241 Generate_DebugBreakCallHelper(masm, receiver.Bit() | name.Bit(), 0, x10); |
242 } | 242 } |
243 | 243 |
244 | 244 |
245 void DebugCodegen::GenerateStoreICDebugBreak(MacroAssembler* masm) { | 245 void DebugCodegen::GenerateStoreICDebugBreak(MacroAssembler* masm) { |
246 // Calling convention for IC store (from ic-arm.cc). | 246 // Calling convention for IC store (from ic-arm64.cc). |
247 // ----------- S t a t e ------------- | 247 Register receiver = StoreIC::ReceiverRegister(); |
248 // -- x0 : value | 248 Register name = StoreIC::NameRegister(); |
249 // -- x1 : receiver | 249 Register value = StoreIC::ValueRegister(); |
250 // -- x2 : name | 250 Generate_DebugBreakCallHelper( |
251 // -- lr : return address | 251 masm, receiver.Bit() | name.Bit() | value.Bit(), 0, x10); |
252 // ----------------------------------- | |
253 // Registers x0, x1, and x2 contain objects that need to be pushed on the | |
254 // expression stack of the fake JS frame. | |
255 Generate_DebugBreakCallHelper(masm, x0.Bit() | x1.Bit() | x2.Bit(), 0, x10); | |
256 } | 252 } |
257 | 253 |
258 | 254 |
259 void DebugCodegen::GenerateKeyedLoadICDebugBreak(MacroAssembler* masm) { | 255 void DebugCodegen::GenerateKeyedLoadICDebugBreak(MacroAssembler* masm) { |
260 // Calling convention for keyed IC load (from ic-arm.cc). | 256 // Calling convention for keyed IC load (from ic-arm.cc). |
261 GenerateLoadICDebugBreak(masm); | 257 GenerateLoadICDebugBreak(masm); |
262 } | 258 } |
263 | 259 |
264 | 260 |
265 void DebugCodegen::GenerateKeyedStoreICDebugBreak(MacroAssembler* masm) { | 261 void DebugCodegen::GenerateKeyedStoreICDebugBreak(MacroAssembler* masm) { |
266 // ---------- S t a t e -------------- | 262 // Calling convention for IC keyed store call (from ic-arm64.cc). |
267 // -- x0 : value | 263 Register receiver = KeyedStoreIC::ReceiverRegister(); |
268 // -- x1 : key | 264 Register name = KeyedStoreIC::NameRegister(); |
269 // -- x2 : receiver | 265 Register value = KeyedStoreIC::ValueRegister(); |
270 // -- lr : return address | 266 Generate_DebugBreakCallHelper( |
271 Generate_DebugBreakCallHelper(masm, x0.Bit() | x1.Bit() | x2.Bit(), 0, x10); | 267 masm, receiver.Bit() | name.Bit() | value.Bit(), 0, x10); |
272 } | 268 } |
273 | 269 |
274 | 270 |
275 void DebugCodegen::GenerateCompareNilICDebugBreak(MacroAssembler* masm) { | 271 void DebugCodegen::GenerateCompareNilICDebugBreak(MacroAssembler* masm) { |
276 // Register state for CompareNil IC | 272 // Register state for CompareNil IC |
277 // ----------- S t a t e ------------- | 273 // ----------- S t a t e ------------- |
278 // -- r0 : value | 274 // -- r0 : value |
279 // ----------------------------------- | 275 // ----------------------------------- |
280 Generate_DebugBreakCallHelper(masm, x0.Bit(), 0, x10); | 276 Generate_DebugBreakCallHelper(masm, x0.Bit(), 0, x10); |
281 } | 277 } |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
373 // Re-run JSFunction, x1 is function, cp is context. | 369 // Re-run JSFunction, x1 is function, cp is context. |
374 __ Br(scratch); | 370 __ Br(scratch); |
375 } | 371 } |
376 | 372 |
377 | 373 |
378 const bool LiveEdit::kFrameDropperSupported = true; | 374 const bool LiveEdit::kFrameDropperSupported = true; |
379 | 375 |
380 } } // namespace v8::internal | 376 } } // namespace v8::internal |
381 | 377 |
382 #endif // V8_TARGET_ARCH_ARM64 | 378 #endif // V8_TARGET_ARCH_ARM64 |
OLD | NEW |