| 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_MACRO_ASSEMBLER_ARM64_INL_H_ | 5 #ifndef V8_ARM64_MACRO_ASSEMBLER_ARM64_INL_H_ |
| 6 #define V8_ARM64_MACRO_ASSEMBLER_ARM64_INL_H_ | 6 #define V8_ARM64_MACRO_ASSEMBLER_ARM64_INL_H_ |
| 7 | 7 |
| 8 #include <ctype.h> | 8 #include <ctype.h> |
| 9 | 9 |
| 10 #include "src/globals.h" | 10 #include "src/globals.h" |
| (...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 292 | 292 |
| 293 #define DEFINE_FUNCTION(FN, REGTYPE, REG, OP) \ | 293 #define DEFINE_FUNCTION(FN, REGTYPE, REG, OP) \ |
| 294 void MacroAssembler::FN(const REGTYPE REG, const MemOperand& addr) { \ | 294 void MacroAssembler::FN(const REGTYPE REG, const MemOperand& addr) { \ |
| 295 DCHECK(allow_macro_instructions_); \ | 295 DCHECK(allow_macro_instructions_); \ |
| 296 LoadStoreMacro(REG, addr, OP); \ | 296 LoadStoreMacro(REG, addr, OP); \ |
| 297 } | 297 } |
| 298 LS_MACRO_LIST(DEFINE_FUNCTION) | 298 LS_MACRO_LIST(DEFINE_FUNCTION) |
| 299 #undef DEFINE_FUNCTION | 299 #undef DEFINE_FUNCTION |
| 300 | 300 |
| 301 | 301 |
| 302 #define DEFINE_FUNCTION(FN, REGTYPE, REG, REG2, OP) \ |
| 303 void MacroAssembler::FN(const REGTYPE REG, const REGTYPE REG2, \ |
| 304 const MemOperand& addr) { \ |
| 305 DCHECK(allow_macro_instructions_); \ |
| 306 LoadStorePairMacro(REG, REG2, addr, OP); \ |
| 307 } |
| 308 LSPAIR_MACRO_LIST(DEFINE_FUNCTION) |
| 309 #undef DEFINE_FUNCTION |
| 310 |
| 311 |
| 302 void MacroAssembler::Asr(const Register& rd, | 312 void MacroAssembler::Asr(const Register& rd, |
| 303 const Register& rn, | 313 const Register& rn, |
| 304 unsigned shift) { | 314 unsigned shift) { |
| 305 DCHECK(allow_macro_instructions_); | 315 DCHECK(allow_macro_instructions_); |
| 306 DCHECK(!rd.IsZero()); | 316 DCHECK(!rd.IsZero()); |
| 307 asr(rd, rn, shift); | 317 asr(rd, rn, shift); |
| 308 } | 318 } |
| 309 | 319 |
| 310 | 320 |
| 311 void MacroAssembler::Asr(const Register& rd, | 321 void MacroAssembler::Asr(const Register& rd, |
| (...skipping 542 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 854 | 864 |
| 855 void MacroAssembler::Ldnp(const CPURegister& rt, | 865 void MacroAssembler::Ldnp(const CPURegister& rt, |
| 856 const CPURegister& rt2, | 866 const CPURegister& rt2, |
| 857 const MemOperand& src) { | 867 const MemOperand& src) { |
| 858 DCHECK(allow_macro_instructions_); | 868 DCHECK(allow_macro_instructions_); |
| 859 DCHECK(!AreAliased(rt, rt2)); | 869 DCHECK(!AreAliased(rt, rt2)); |
| 860 ldnp(rt, rt2, src); | 870 ldnp(rt, rt2, src); |
| 861 } | 871 } |
| 862 | 872 |
| 863 | 873 |
| 864 void MacroAssembler::Ldp(const CPURegister& rt, | |
| 865 const CPURegister& rt2, | |
| 866 const MemOperand& src) { | |
| 867 DCHECK(allow_macro_instructions_); | |
| 868 DCHECK(!AreAliased(rt, rt2)); | |
| 869 ldp(rt, rt2, src); | |
| 870 } | |
| 871 | |
| 872 | |
| 873 void MacroAssembler::Ldpsw(const Register& rt, | |
| 874 const Register& rt2, | |
| 875 const MemOperand& src) { | |
| 876 DCHECK(allow_macro_instructions_); | |
| 877 DCHECK(!rt.IsZero()); | |
| 878 DCHECK(!rt2.IsZero()); | |
| 879 ldpsw(rt, rt2, src); | |
| 880 } | |
| 881 | |
| 882 | |
| 883 void MacroAssembler::Ldr(const CPURegister& rt, const Immediate& imm) { | 874 void MacroAssembler::Ldr(const CPURegister& rt, const Immediate& imm) { |
| 884 DCHECK(allow_macro_instructions_); | 875 DCHECK(allow_macro_instructions_); |
| 885 ldr(rt, imm); | 876 ldr(rt, imm); |
| 886 } | 877 } |
| 887 | 878 |
| 888 | 879 |
| 889 void MacroAssembler::Ldr(const CPURegister& rt, double imm) { | 880 void MacroAssembler::Ldr(const CPURegister& rt, double imm) { |
| 890 DCHECK(allow_macro_instructions_); | 881 DCHECK(allow_macro_instructions_); |
| 891 DCHECK(rt.Is64Bits()); | 882 DCHECK(rt.Is64Bits()); |
| 892 ldr(rt, Immediate(double_to_rawbits(imm))); | 883 ldr(rt, Immediate(double_to_rawbits(imm))); |
| (...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1129 | 1120 |
| 1130 | 1121 |
| 1131 void MacroAssembler::Stnp(const CPURegister& rt, | 1122 void MacroAssembler::Stnp(const CPURegister& rt, |
| 1132 const CPURegister& rt2, | 1123 const CPURegister& rt2, |
| 1133 const MemOperand& dst) { | 1124 const MemOperand& dst) { |
| 1134 DCHECK(allow_macro_instructions_); | 1125 DCHECK(allow_macro_instructions_); |
| 1135 stnp(rt, rt2, dst); | 1126 stnp(rt, rt2, dst); |
| 1136 } | 1127 } |
| 1137 | 1128 |
| 1138 | 1129 |
| 1139 void MacroAssembler::Stp(const CPURegister& rt, | |
| 1140 const CPURegister& rt2, | |
| 1141 const MemOperand& dst) { | |
| 1142 DCHECK(allow_macro_instructions_); | |
| 1143 stp(rt, rt2, dst); | |
| 1144 } | |
| 1145 | |
| 1146 | |
| 1147 void MacroAssembler::Sxtb(const Register& rd, const Register& rn) { | 1130 void MacroAssembler::Sxtb(const Register& rd, const Register& rn) { |
| 1148 DCHECK(allow_macro_instructions_); | 1131 DCHECK(allow_macro_instructions_); |
| 1149 DCHECK(!rd.IsZero()); | 1132 DCHECK(!rd.IsZero()); |
| 1150 sxtb(rd, rn); | 1133 sxtb(rd, rn); |
| 1151 } | 1134 } |
| 1152 | 1135 |
| 1153 | 1136 |
| 1154 void MacroAssembler::Sxth(const Register& rd, const Register& rn) { | 1137 void MacroAssembler::Sxth(const Register& rd, const Register& rn) { |
| 1155 DCHECK(allow_macro_instructions_); | 1138 DCHECK(allow_macro_instructions_); |
| 1156 DCHECK(!rd.IsZero()); | 1139 DCHECK(!rd.IsZero()); |
| (...skipping 552 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1709 // characters are reserved for controlling features of the instrumentation. | 1692 // characters are reserved for controlling features of the instrumentation. |
| 1710 DCHECK(isprint(marker_name[0]) && isprint(marker_name[1])); | 1693 DCHECK(isprint(marker_name[0]) && isprint(marker_name[1])); |
| 1711 | 1694 |
| 1712 InstructionAccurateScope scope(this, 1); | 1695 InstructionAccurateScope scope(this, 1); |
| 1713 movn(xzr, (marker_name[1] << 8) | marker_name[0]); | 1696 movn(xzr, (marker_name[1] << 8) | marker_name[0]); |
| 1714 } | 1697 } |
| 1715 | 1698 |
| 1716 } } // namespace v8::internal | 1699 } } // namespace v8::internal |
| 1717 | 1700 |
| 1718 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_INL_H_ | 1701 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_INL_H_ |
| OLD | NEW |