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 #ifndef V8_ARM64_ASSEMBLER_ARM64_INL_H_ | 5 #ifndef V8_ARM64_ASSEMBLER_ARM64_INL_H_ |
6 #define V8_ARM64_ASSEMBLER_ARM64_INL_H_ | 6 #define V8_ARM64_ASSEMBLER_ARM64_INL_H_ |
7 | 7 |
8 #include "src/arm64/assembler-arm64.h" | 8 #include "src/arm64/assembler-arm64.h" |
9 #include "src/assembler.h" | 9 #include "src/assembler.h" |
10 #include "src/debug.h" | 10 #include "src/debug.h" |
(...skipping 589 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
600 // ldr ip0, #... @ load from literal pool | 600 // ldr ip0, #... @ load from literal pool |
601 // blr ip0 | 601 // blr ip0 |
602 Address candidate = pc - 2 * kInstructionSize; | 602 Address candidate = pc - 2 * kInstructionSize; |
603 Instruction* instr = reinterpret_cast<Instruction*>(candidate); | 603 Instruction* instr = reinterpret_cast<Instruction*>(candidate); |
604 USE(instr); | 604 USE(instr); |
605 ASSERT(instr->IsLdrLiteralX()); | 605 ASSERT(instr->IsLdrLiteralX()); |
606 return candidate; | 606 return candidate; |
607 } | 607 } |
608 | 608 |
609 | 609 |
| 610 Address Assembler::break_address_from_return_address(Address pc) { |
| 611 return pc - Assembler::kPatchDebugBreakSlotReturnOffset; |
| 612 } |
| 613 |
| 614 |
610 Address Assembler::return_address_from_call_start(Address pc) { | 615 Address Assembler::return_address_from_call_start(Address pc) { |
611 // The call, generated by MacroAssembler::Call, is one of two possible | 616 // The call, generated by MacroAssembler::Call, is one of two possible |
612 // sequences: | 617 // sequences: |
613 // | 618 // |
614 // Without relocation: | 619 // Without relocation: |
615 // movz temp, #(target & 0x000000000000ffff) | 620 // movz temp, #(target & 0x000000000000ffff) |
616 // movk temp, #(target & 0x00000000ffff0000) | 621 // movk temp, #(target & 0x00000000ffff0000) |
617 // movk temp, #(target & 0x0000ffff00000000) | 622 // movk temp, #(target & 0x0000ffff00000000) |
618 // blr temp | 623 // blr temp |
619 // | 624 // |
(...skipping 638 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1258 | 1263 |
1259 | 1264 |
1260 void Assembler::ClearRecordedAstId() { | 1265 void Assembler::ClearRecordedAstId() { |
1261 recorded_ast_id_ = TypeFeedbackId::None(); | 1266 recorded_ast_id_ = TypeFeedbackId::None(); |
1262 } | 1267 } |
1263 | 1268 |
1264 | 1269 |
1265 } } // namespace v8::internal | 1270 } } // namespace v8::internal |
1266 | 1271 |
1267 #endif // V8_ARM64_ASSEMBLER_ARM64_INL_H_ | 1272 #endif // V8_ARM64_ASSEMBLER_ARM64_INL_H_ |
OLD | NEW |