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 |