| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 339 const Register& rn, | 339 const Register& rn, |
| 340 const Register& rm) { | 340 const Register& rm) { |
| 341 ASSERT(allow_macro_instructions_); | 341 ASSERT(allow_macro_instructions_); |
| 342 ASSERT(!rd.IsZero()); | 342 ASSERT(!rd.IsZero()); |
| 343 asrv(rd, rn, rm); | 343 asrv(rd, rn, rm); |
| 344 } | 344 } |
| 345 | 345 |
| 346 | 346 |
| 347 void MacroAssembler::B(Label* label) { | 347 void MacroAssembler::B(Label* label) { |
| 348 b(label); | 348 b(label); |
| 349 CheckVeneers(false); |
| 349 } | 350 } |
| 350 | 351 |
| 351 | 352 |
| 352 void MacroAssembler::B(Condition cond, Label* label) { | 353 void MacroAssembler::B(Condition cond, Label* label) { |
| 353 ASSERT(allow_macro_instructions_); | 354 ASSERT(allow_macro_instructions_); |
| 354 B(label, cond); | 355 B(label, cond); |
| 355 } | 356 } |
| 356 | 357 |
| 357 | 358 |
| 358 void MacroAssembler::B(Label* label, Condition cond) { | |
| 359 ASSERT(allow_macro_instructions_); | |
| 360 ASSERT((cond != al) && (cond != nv)); | |
| 361 b(label, cond); | |
| 362 } | |
| 363 | |
| 364 | |
| 365 void MacroAssembler::Bfi(const Register& rd, | 359 void MacroAssembler::Bfi(const Register& rd, |
| 366 const Register& rn, | 360 const Register& rn, |
| 367 unsigned lsb, | 361 unsigned lsb, |
| 368 unsigned width) { | 362 unsigned width) { |
| 369 ASSERT(allow_macro_instructions_); | 363 ASSERT(allow_macro_instructions_); |
| 370 ASSERT(!rd.IsZero()); | 364 ASSERT(!rd.IsZero()); |
| 371 bfi(rd, rn, lsb, width); | 365 bfi(rd, rn, lsb, width); |
| 372 } | 366 } |
| 373 | 367 |
| 374 | 368 |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 407 br(xn); | 401 br(xn); |
| 408 } | 402 } |
| 409 | 403 |
| 410 | 404 |
| 411 void MacroAssembler::Brk(int code) { | 405 void MacroAssembler::Brk(int code) { |
| 412 ASSERT(allow_macro_instructions_); | 406 ASSERT(allow_macro_instructions_); |
| 413 brk(code); | 407 brk(code); |
| 414 } | 408 } |
| 415 | 409 |
| 416 | 410 |
| 417 void MacroAssembler::Cbnz(const Register& rt, Label* label) { | |
| 418 ASSERT(allow_macro_instructions_); | |
| 419 cbnz(rt, label); | |
| 420 } | |
| 421 | |
| 422 | |
| 423 void MacroAssembler::Cbz(const Register& rt, Label* label) { | |
| 424 ASSERT(allow_macro_instructions_); | |
| 425 cbz(rt, label); | |
| 426 } | |
| 427 | |
| 428 | |
| 429 void MacroAssembler::Cinc(const Register& rd, | 411 void MacroAssembler::Cinc(const Register& rd, |
| 430 const Register& rn, | 412 const Register& rn, |
| 431 Condition cond) { | 413 Condition cond) { |
| 432 ASSERT(allow_macro_instructions_); | 414 ASSERT(allow_macro_instructions_); |
| 433 ASSERT(!rd.IsZero()); | 415 ASSERT(!rd.IsZero()); |
| 434 ASSERT((cond != al) && (cond != nv)); | 416 ASSERT((cond != al) && (cond != nv)); |
| 435 cinc(rd, rn, cond); | 417 cinc(rd, rn, cond); |
| 436 } | 418 } |
| 437 | 419 |
| 438 | 420 |
| (...skipping 586 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1025 ASSERT(allow_macro_instructions_); | 1007 ASSERT(allow_macro_instructions_); |
| 1026 ASSERT(!rd.IsZero()); | 1008 ASSERT(!rd.IsZero()); |
| 1027 rbit(rd, rn); | 1009 rbit(rd, rn); |
| 1028 } | 1010 } |
| 1029 | 1011 |
| 1030 | 1012 |
| 1031 void MacroAssembler::Ret(const Register& xn) { | 1013 void MacroAssembler::Ret(const Register& xn) { |
| 1032 ASSERT(allow_macro_instructions_); | 1014 ASSERT(allow_macro_instructions_); |
| 1033 ASSERT(!xn.IsZero()); | 1015 ASSERT(!xn.IsZero()); |
| 1034 ret(xn); | 1016 ret(xn); |
| 1017 CheckVeneers(false); |
| 1035 } | 1018 } |
| 1036 | 1019 |
| 1037 | 1020 |
| 1038 void MacroAssembler::Rev(const Register& rd, const Register& rn) { | 1021 void MacroAssembler::Rev(const Register& rd, const Register& rn) { |
| 1039 ASSERT(allow_macro_instructions_); | 1022 ASSERT(allow_macro_instructions_); |
| 1040 ASSERT(!rd.IsZero()); | 1023 ASSERT(!rd.IsZero()); |
| 1041 rev(rd, rn); | 1024 rev(rd, rn); |
| 1042 } | 1025 } |
| 1043 | 1026 |
| 1044 | 1027 |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1179 } | 1162 } |
| 1180 | 1163 |
| 1181 | 1164 |
| 1182 void MacroAssembler::Sxtw(const Register& rd, const Register& rn) { | 1165 void MacroAssembler::Sxtw(const Register& rd, const Register& rn) { |
| 1183 ASSERT(allow_macro_instructions_); | 1166 ASSERT(allow_macro_instructions_); |
| 1184 ASSERT(!rd.IsZero()); | 1167 ASSERT(!rd.IsZero()); |
| 1185 sxtw(rd, rn); | 1168 sxtw(rd, rn); |
| 1186 } | 1169 } |
| 1187 | 1170 |
| 1188 | 1171 |
| 1189 void MacroAssembler::Tbnz(const Register& rt, unsigned bit_pos, Label* label) { | |
| 1190 ASSERT(allow_macro_instructions_); | |
| 1191 tbnz(rt, bit_pos, label); | |
| 1192 } | |
| 1193 | |
| 1194 | |
| 1195 void MacroAssembler::Tbz(const Register& rt, unsigned bit_pos, Label* label) { | |
| 1196 ASSERT(allow_macro_instructions_); | |
| 1197 tbz(rt, bit_pos, label); | |
| 1198 } | |
| 1199 | |
| 1200 | |
| 1201 void MacroAssembler::Ubfiz(const Register& rd, | 1172 void MacroAssembler::Ubfiz(const Register& rd, |
| 1202 const Register& rn, | 1173 const Register& rn, |
| 1203 unsigned lsb, | 1174 unsigned lsb, |
| 1204 unsigned width) { | 1175 unsigned width) { |
| 1205 ASSERT(allow_macro_instructions_); | 1176 ASSERT(allow_macro_instructions_); |
| 1206 ASSERT(!rd.IsZero()); | 1177 ASSERT(!rd.IsZero()); |
| 1207 ubfiz(rd, rn, lsb, width); | 1178 ubfiz(rd, rn, lsb, width); |
| 1208 } | 1179 } |
| 1209 | 1180 |
| 1210 | 1181 |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1248 void MacroAssembler::Umsubl(const Register& rd, | 1219 void MacroAssembler::Umsubl(const Register& rd, |
| 1249 const Register& rn, | 1220 const Register& rn, |
| 1250 const Register& rm, | 1221 const Register& rm, |
| 1251 const Register& ra) { | 1222 const Register& ra) { |
| 1252 ASSERT(allow_macro_instructions_); | 1223 ASSERT(allow_macro_instructions_); |
| 1253 ASSERT(!rd.IsZero()); | 1224 ASSERT(!rd.IsZero()); |
| 1254 umsubl(rd, rn, rm, ra); | 1225 umsubl(rd, rn, rm, ra); |
| 1255 } | 1226 } |
| 1256 | 1227 |
| 1257 | 1228 |
| 1258 void MacroAssembler::Unreachable() { | |
| 1259 ASSERT(allow_macro_instructions_); | |
| 1260 hlt(kImmExceptionIsUnreachable); | |
| 1261 } | |
| 1262 | |
| 1263 | |
| 1264 void MacroAssembler::Uxtb(const Register& rd, const Register& rn) { | 1229 void MacroAssembler::Uxtb(const Register& rd, const Register& rn) { |
| 1265 ASSERT(allow_macro_instructions_); | 1230 ASSERT(allow_macro_instructions_); |
| 1266 ASSERT(!rd.IsZero()); | 1231 ASSERT(!rd.IsZero()); |
| 1267 uxtb(rd, rn); | 1232 uxtb(rd, rn); |
| 1268 } | 1233 } |
| 1269 | 1234 |
| 1270 | 1235 |
| 1271 void MacroAssembler::Uxth(const Register& rd, const Register& rn) { | 1236 void MacroAssembler::Uxth(const Register& rd, const Register& rn) { |
| 1272 ASSERT(allow_macro_instructions_); | 1237 ASSERT(allow_macro_instructions_); |
| 1273 ASSERT(!rd.IsZero()); | 1238 ASSERT(!rd.IsZero()); |
| (...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1673 // characters are reserved for controlling features of the instrumentation. | 1638 // characters are reserved for controlling features of the instrumentation. |
| 1674 ASSERT(isprint(marker_name[0]) && isprint(marker_name[1])); | 1639 ASSERT(isprint(marker_name[0]) && isprint(marker_name[1])); |
| 1675 | 1640 |
| 1676 InstructionAccurateScope scope(this, 1); | 1641 InstructionAccurateScope scope(this, 1); |
| 1677 movn(xzr, (marker_name[1] << 8) | marker_name[0]); | 1642 movn(xzr, (marker_name[1] << 8) | marker_name[0]); |
| 1678 } | 1643 } |
| 1679 | 1644 |
| 1680 } } // namespace v8::internal | 1645 } } // namespace v8::internal |
| 1681 | 1646 |
| 1682 #endif // V8_A64_MACRO_ASSEMBLER_A64_INL_H_ | 1647 #endif // V8_A64_MACRO_ASSEMBLER_A64_INL_H_ |
| OLD | NEW |