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 264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
275 | 275 |
276 COMPARE(add(w1, wcsp, Operand(8)), "add w1, wcsp, #0x8 (8)"); | 276 COMPARE(add(w1, wcsp, Operand(8)), "add w1, wcsp, #0x8 (8)"); |
277 COMPARE(add(x2, csp, Operand(16)), "add x2, csp, #0x10 (16)"); | 277 COMPARE(add(x2, csp, Operand(16)), "add x2, csp, #0x10 (16)"); |
278 COMPARE(add(wcsp, wcsp, Operand(42)), "add wcsp, wcsp, #0x2a (42)"); | 278 COMPARE(add(wcsp, wcsp, Operand(42)), "add wcsp, wcsp, #0x2a (42)"); |
279 COMPARE(cmn(csp, Operand(24)), "cmn csp, #0x18 (24)"); | 279 COMPARE(cmn(csp, Operand(24)), "cmn csp, #0x18 (24)"); |
280 COMPARE(adds(wzr, wcsp, Operand(9)), "cmn wcsp, #0x9 (9)"); | 280 COMPARE(adds(wzr, wcsp, Operand(9)), "cmn wcsp, #0x9 (9)"); |
281 | 281 |
282 CLEANUP(); | 282 CLEANUP(); |
283 } | 283 } |
284 | 284 |
| 285 |
285 TEST_(sub_immediate) { | 286 TEST_(sub_immediate) { |
286 SET_UP(); | 287 SET_UP(); |
287 | 288 |
288 COMPARE(sub(w0, w1, Operand(0xff)), "sub w0, w1, #0xff (255)"); | 289 COMPARE(sub(w0, w1, Operand(0xff)), "sub w0, w1, #0xff (255)"); |
289 COMPARE(sub(x2, x3, Operand(0x3ff)), "sub x2, x3, #0x3ff (1023)"); | 290 COMPARE(sub(x2, x3, Operand(0x3ff)), "sub x2, x3, #0x3ff (1023)"); |
290 COMPARE(sub(w4, w5, Operand(0xfff)), "sub w4, w5, #0xfff (4095)"); | 291 COMPARE(sub(w4, w5, Operand(0xfff)), "sub w4, w5, #0xfff (4095)"); |
291 COMPARE(sub(x6, x7, Operand(0x1000)), "sub x6, x7, #0x1000 (4096)"); | 292 COMPARE(sub(x6, x7, Operand(0x1000)), "sub x6, x7, #0x1000 (4096)"); |
292 COMPARE(sub(w8, w9, Operand(0xff000)), "sub w8, w9, #0xff000 (1044480)"); | 293 COMPARE(sub(w8, w9, Operand(0xff000)), "sub w8, w9, #0xff000 (1044480)"); |
293 COMPARE(sub(x10, x11, Operand(0x3ff000)), | 294 COMPARE(sub(x10, x11, Operand(0x3ff000)), |
294 "sub x10, x11, #0x3ff000 (4190208)"); | 295 "sub x10, x11, #0x3ff000 (4190208)"); |
(...skipping 472 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
767 COMPARE(lsrv(w6, w7, w8), "lsr w6, w7, w8"); | 768 COMPARE(lsrv(w6, w7, w8), "lsr w6, w7, w8"); |
768 COMPARE(lsrv(x9, x10, x11), "lsr x9, x10, x11"); | 769 COMPARE(lsrv(x9, x10, x11), "lsr x9, x10, x11"); |
769 COMPARE(asrv(w12, w13, w14), "asr w12, w13, w14"); | 770 COMPARE(asrv(w12, w13, w14), "asr w12, w13, w14"); |
770 COMPARE(asrv(x15, x16, x17), "asr x15, x16, x17"); | 771 COMPARE(asrv(x15, x16, x17), "asr x15, x16, x17"); |
771 COMPARE(rorv(w18, w19, w20), "ror w18, w19, w20"); | 772 COMPARE(rorv(w18, w19, w20), "ror w18, w19, w20"); |
772 COMPARE(rorv(x21, x22, x23), "ror x21, x22, x23"); | 773 COMPARE(rorv(x21, x22, x23), "ror x21, x22, x23"); |
773 | 774 |
774 CLEANUP(); | 775 CLEANUP(); |
775 } | 776 } |
776 | 777 |
| 778 |
777 TEST_(adr) { | 779 TEST_(adr) { |
778 SET_UP(); | 780 SET_UP(); |
779 | 781 |
780 COMPARE(adr(x0, 0), "adr x0, #+0x0"); | 782 COMPARE(adr(x0, 0), "adr x0, #+0x0"); |
781 COMPARE(adr(x1, 1), "adr x1, #+0x1"); | 783 COMPARE(adr(x1, 1), "adr x1, #+0x1"); |
782 COMPARE(adr(x2, -1), "adr x2, #-0x1"); | 784 COMPARE(adr(x2, -1), "adr x2, #-0x1"); |
783 COMPARE(adr(x3, 4), "adr x3, #+0x4"); | 785 COMPARE(adr(x3, 4), "adr x3, #+0x4"); |
784 COMPARE(adr(x4, -4), "adr x4, #-0x4"); | 786 COMPARE(adr(x4, -4), "adr x4, #-0x4"); |
785 COMPARE(adr(x5, 0x000fffff), "adr x5, #+0xfffff"); | 787 COMPARE(adr(x5, 0x000fffff), "adr x5, #+0xfffff"); |
786 COMPARE(adr(x6, -0x00100000), "adr x6, #-0x100000"); | 788 COMPARE(adr(x6, -0x00100000), "adr x6, #-0x100000"); |
787 COMPARE(adr(xzr, 0), "adr xzr, #+0x0"); | 789 COMPARE(adr(xzr, 0), "adr xzr, #+0x0"); |
788 | 790 |
789 CLEANUP(); | 791 CLEANUP(); |
790 } | 792 } |
791 | 793 |
| 794 |
792 TEST_(branch) { | 795 TEST_(branch) { |
793 SET_UP(); | 796 SET_UP(); |
794 | 797 |
795 #define INST_OFF(x) ((x) >> kInstructionSizeLog2) | 798 #define INST_OFF(x) ((x) >> kInstructionSizeLog2) |
796 COMPARE(b(INST_OFF(0x4)), "b #+0x4"); | 799 COMPARE(b(INST_OFF(0x4)), "b #+0x4"); |
797 COMPARE(b(INST_OFF(-0x4)), "b #-0x4"); | 800 COMPARE(b(INST_OFF(-0x4)), "b #-0x4"); |
798 COMPARE(b(INST_OFF(0x7fffffc)), "b #+0x7fffffc"); | 801 COMPARE(b(INST_OFF(0x7fffffc)), "b #+0x7fffffc"); |
799 COMPARE(b(INST_OFF(-0x8000000)), "b #-0x8000000"); | 802 COMPARE(b(INST_OFF(-0x8000000)), "b #-0x8000000"); |
800 COMPARE(b(INST_OFF(0xffffc), eq), "b.eq #+0xffffc"); | 803 COMPARE(b(INST_OFF(0xffffc), eq), "b.eq #+0xffffc"); |
801 COMPARE(b(INST_OFF(-0x100000), mi), "b.mi #-0x100000"); | 804 COMPARE(b(INST_OFF(-0x100000), mi), "b.mi #-0x100000"); |
(...skipping 16 matching lines...) Expand all Loading... |
818 COMPARE(tbnz(x11, 31, INST_OFF(0x4)), "tbnz w11, #31, #+0x4"); | 821 COMPARE(tbnz(x11, 31, INST_OFF(0x4)), "tbnz w11, #31, #+0x4"); |
819 COMPARE(tbnz(x12, 32, INST_OFF(0x8)), "tbnz x12, #32, #+0x8"); | 822 COMPARE(tbnz(x12, 32, INST_OFF(0x8)), "tbnz x12, #32, #+0x8"); |
820 COMPARE(br(x0), "br x0"); | 823 COMPARE(br(x0), "br x0"); |
821 COMPARE(blr(x1), "blr x1"); | 824 COMPARE(blr(x1), "blr x1"); |
822 COMPARE(ret(x2), "ret x2"); | 825 COMPARE(ret(x2), "ret x2"); |
823 COMPARE(ret(lr), "ret") | 826 COMPARE(ret(lr), "ret") |
824 | 827 |
825 CLEANUP(); | 828 CLEANUP(); |
826 } | 829 } |
827 | 830 |
| 831 |
828 TEST_(load_store) { | 832 TEST_(load_store) { |
829 SET_UP(); | 833 SET_UP(); |
830 | 834 |
831 COMPARE(ldr(w0, MemOperand(x1)), "ldr w0, [x1]"); | 835 COMPARE(ldr(w0, MemOperand(x1)), "ldr w0, [x1]"); |
832 COMPARE(ldr(w2, MemOperand(x3, 4)), "ldr w2, [x3, #4]"); | 836 COMPARE(ldr(w2, MemOperand(x3, 4)), "ldr w2, [x3, #4]"); |
833 COMPARE(ldr(w4, MemOperand(x5, 16380)), "ldr w4, [x5, #16380]"); | 837 COMPARE(ldr(w4, MemOperand(x5, 16380)), "ldr w4, [x5, #16380]"); |
834 COMPARE(ldr(x6, MemOperand(x7)), "ldr x6, [x7]"); | 838 COMPARE(ldr(x6, MemOperand(x7)), "ldr x6, [x7]"); |
835 COMPARE(ldr(x8, MemOperand(x9, 8)), "ldr x8, [x9, #8]"); | 839 COMPARE(ldr(x8, MemOperand(x9, 8)), "ldr x8, [x9, #8]"); |
836 COMPARE(ldr(x10, MemOperand(x11, 32760)), "ldr x10, [x11, #32760]"); | 840 COMPARE(ldr(x10, MemOperand(x11, 32760)), "ldr x10, [x11, #32760]"); |
837 COMPARE(str(w12, MemOperand(x13)), "str w12, [x13]"); | 841 COMPARE(str(w12, MemOperand(x13)), "str w12, [x13]"); |
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1112 COMPARE(ldrsb(w4, MemOperand(x5, -3)), "ldursb w4, [x5, #-3]"); | 1116 COMPARE(ldrsb(w4, MemOperand(x5, -3)), "ldursb w4, [x5, #-3]"); |
1113 COMPARE(ldrsb(x6, MemOperand(x7, -4)), "ldursb x6, [x7, #-4]"); | 1117 COMPARE(ldrsb(x6, MemOperand(x7, -4)), "ldursb x6, [x7, #-4]"); |
1114 COMPARE(ldrh(w8, MemOperand(x9, -5)), "ldurh w8, [x9, #-5]"); | 1118 COMPARE(ldrh(w8, MemOperand(x9, -5)), "ldurh w8, [x9, #-5]"); |
1115 COMPARE(ldrsh(w10, MemOperand(x11, -6)), "ldursh w10, [x11, #-6]"); | 1119 COMPARE(ldrsh(w10, MemOperand(x11, -6)), "ldursh w10, [x11, #-6]"); |
1116 COMPARE(ldrsh(x12, MemOperand(x13, -7)), "ldursh x12, [x13, #-7]"); | 1120 COMPARE(ldrsh(x12, MemOperand(x13, -7)), "ldursh x12, [x13, #-7]"); |
1117 COMPARE(ldrsw(x14, MemOperand(x15, -8)), "ldursw x14, [x15, #-8]"); | 1121 COMPARE(ldrsw(x14, MemOperand(x15, -8)), "ldursw x14, [x15, #-8]"); |
1118 | 1122 |
1119 CLEANUP(); | 1123 CLEANUP(); |
1120 } | 1124 } |
1121 | 1125 |
| 1126 |
1122 TEST_(load_store_pair) { | 1127 TEST_(load_store_pair) { |
1123 SET_UP(); | 1128 SET_UP(); |
1124 | 1129 |
1125 COMPARE(ldp(w0, w1, MemOperand(x2)), "ldp w0, w1, [x2]"); | 1130 COMPARE(ldp(w0, w1, MemOperand(x2)), "ldp w0, w1, [x2]"); |
1126 COMPARE(ldp(x3, x4, MemOperand(x5)), "ldp x3, x4, [x5]"); | 1131 COMPARE(ldp(x3, x4, MemOperand(x5)), "ldp x3, x4, [x5]"); |
1127 COMPARE(ldp(w6, w7, MemOperand(x8, 4)), "ldp w6, w7, [x8, #4]"); | 1132 COMPARE(ldp(w6, w7, MemOperand(x8, 4)), "ldp w6, w7, [x8, #4]"); |
1128 COMPARE(ldp(x9, x10, MemOperand(x11, 8)), "ldp x9, x10, [x11, #8]"); | 1133 COMPARE(ldp(x9, x10, MemOperand(x11, 8)), "ldp x9, x10, [x11, #8]"); |
1129 COMPARE(ldp(w12, w13, MemOperand(x14, 252)), "ldp w12, w13, [x14, #252]"); | 1134 COMPARE(ldp(w12, w13, MemOperand(x14, 252)), "ldp w12, w13, [x14, #252]"); |
1130 COMPARE(ldp(x15, x16, MemOperand(x17, 504)), "ldp x15, x16, [x17, #504]"); | 1135 COMPARE(ldp(x15, x16, MemOperand(x17, 504)), "ldp x15, x16, [x17, #504]"); |
1131 COMPARE(ldp(w18, w19, MemOperand(x20, -256)), "ldp w18, w19, [x20, #-256]"); | 1136 COMPARE(ldp(w18, w19, MemOperand(x20, -256)), "ldp w18, w19, [x20, #-256]"); |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1231 COMPARE(ldpsw(x0, x1, MemOperand(x2)), "ldpsw x0, x1, [x2]"); | 1236 COMPARE(ldpsw(x0, x1, MemOperand(x2)), "ldpsw x0, x1, [x2]"); |
1232 COMPARE(ldpsw(x3, x4, MemOperand(x5, 16)), "ldpsw x3, x4, [x5, #16]"); | 1237 COMPARE(ldpsw(x3, x4, MemOperand(x5, 16)), "ldpsw x3, x4, [x5, #16]"); |
1233 COMPARE(ldpsw(x6, x7, MemOperand(x8, -32, PreIndex)), | 1238 COMPARE(ldpsw(x6, x7, MemOperand(x8, -32, PreIndex)), |
1234 "ldpsw x6, x7, [x8, #-32]!"); | 1239 "ldpsw x6, x7, [x8, #-32]!"); |
1235 COMPARE(ldpsw(x9, x10, MemOperand(x11, 128, PostIndex)), | 1240 COMPARE(ldpsw(x9, x10, MemOperand(x11, 128, PostIndex)), |
1236 "ldpsw x9, x10, [x11], #128"); | 1241 "ldpsw x9, x10, [x11], #128"); |
1237 | 1242 |
1238 CLEANUP(); | 1243 CLEANUP(); |
1239 } | 1244 } |
1240 | 1245 |
| 1246 |
1241 TEST_(load_store_pair_nontemp) { | 1247 TEST_(load_store_pair_nontemp) { |
1242 SET_UP(); | 1248 SET_UP(); |
1243 | 1249 |
1244 COMPARE(ldnp(w0, w1, MemOperand(x2)), "ldnp w0, w1, [x2]"); | 1250 COMPARE(ldnp(w0, w1, MemOperand(x2)), "ldnp w0, w1, [x2]"); |
1245 COMPARE(stnp(w3, w4, MemOperand(x5, 252)), "stnp w3, w4, [x5, #252]"); | 1251 COMPARE(stnp(w3, w4, MemOperand(x5, 252)), "stnp w3, w4, [x5, #252]"); |
1246 COMPARE(ldnp(w6, w7, MemOperand(x8, -256)), "ldnp w6, w7, [x8, #-256]"); | 1252 COMPARE(ldnp(w6, w7, MemOperand(x8, -256)), "ldnp w6, w7, [x8, #-256]"); |
1247 COMPARE(stnp(x9, x10, MemOperand(x11)), "stnp x9, x10, [x11]"); | 1253 COMPARE(stnp(x9, x10, MemOperand(x11)), "stnp x9, x10, [x11]"); |
1248 COMPARE(ldnp(x12, x13, MemOperand(x14, 504)), "ldnp x12, x13, [x14, #504]"); | 1254 COMPARE(ldnp(x12, x13, MemOperand(x14, 504)), "ldnp x12, x13, [x14, #504]"); |
1249 COMPARE(stnp(x15, x16, MemOperand(x17, -512)), "stnp x15, x16, [x17, #-512]"); | 1255 COMPARE(stnp(x15, x16, MemOperand(x17, -512)), "stnp x15, x16, [x17, #-512]"); |
1250 COMPARE(ldnp(s18, s19, MemOperand(x20)), "ldnp s18, s19, [x20]"); | 1256 COMPARE(ldnp(s18, s19, MemOperand(x20)), "ldnp s18, s19, [x20]"); |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1297 COMPARE(csinc(x2, x3, x4, al), "csinc x2, x3, x4, al"); | 1303 COMPARE(csinc(x2, x3, x4, al), "csinc x2, x3, x4, al"); |
1298 COMPARE(csinc(x3, x4, x5, nv), "csinc x3, x4, x5, nv"); | 1304 COMPARE(csinc(x3, x4, x5, nv), "csinc x3, x4, x5, nv"); |
1299 COMPARE(csinv(x4, x5, x6, al), "csinv x4, x5, x6, al"); | 1305 COMPARE(csinv(x4, x5, x6, al), "csinv x4, x5, x6, al"); |
1300 COMPARE(csinv(x5, x6, x7, nv), "csinv x5, x6, x7, nv"); | 1306 COMPARE(csinv(x5, x6, x7, nv), "csinv x5, x6, x7, nv"); |
1301 COMPARE(csneg(x6, x7, x8, al), "csneg x6, x7, x8, al"); | 1307 COMPARE(csneg(x6, x7, x8, al), "csneg x6, x7, x8, al"); |
1302 COMPARE(csneg(x7, x8, x9, nv), "csneg x7, x8, x9, nv"); | 1308 COMPARE(csneg(x7, x8, x9, nv), "csneg x7, x8, x9, nv"); |
1303 | 1309 |
1304 CLEANUP(); | 1310 CLEANUP(); |
1305 } | 1311 } |
1306 | 1312 |
| 1313 |
1307 TEST(cond_select_macro) { | 1314 TEST(cond_select_macro) { |
1308 SET_UP_CLASS(MacroAssembler); | 1315 SET_UP_CLASS(MacroAssembler); |
1309 | 1316 |
1310 COMPARE(Csel(w0, w1, -1, eq), "csinv w0, w1, wzr, eq"); | 1317 COMPARE(Csel(w0, w1, -1, eq), "csinv w0, w1, wzr, eq"); |
1311 COMPARE(Csel(w2, w3, 0, ne), "csel w2, w3, wzr, ne"); | 1318 COMPARE(Csel(w2, w3, 0, ne), "csel w2, w3, wzr, ne"); |
1312 COMPARE(Csel(w4, w5, 1, hs), "csinc w4, w5, wzr, hs"); | 1319 COMPARE(Csel(w4, w5, 1, hs), "csinc w4, w5, wzr, hs"); |
1313 COMPARE(Csel(x6, x7, -1, lo), "csinv x6, x7, xzr, lo"); | 1320 COMPARE(Csel(x6, x7, -1, lo), "csinv x6, x7, xzr, lo"); |
1314 COMPARE(Csel(x8, x9, 0, mi), "csel x8, x9, xzr, mi"); | 1321 COMPARE(Csel(x8, x9, 0, mi), "csel x8, x9, xzr, mi"); |
1315 COMPARE(Csel(x10, x11, 1, pl), "csinc x10, x11, xzr, pl"); | 1322 COMPARE(Csel(x10, x11, 1, pl), "csinc x10, x11, xzr, pl"); |
1316 | 1323 |
1317 CLEANUP(); | 1324 CLEANUP(); |
1318 } | 1325 } |
1319 | 1326 |
| 1327 |
1320 TEST_(cond_cmp) { | 1328 TEST_(cond_cmp) { |
1321 SET_UP(); | 1329 SET_UP(); |
1322 | 1330 |
1323 COMPARE(ccmn(w0, w1, NZCVFlag, eq), "ccmn w0, w1, #NZCV, eq"); | 1331 COMPARE(ccmn(w0, w1, NZCVFlag, eq), "ccmn w0, w1, #NZCV, eq"); |
1324 COMPARE(ccmn(x2, x3, NZCFlag, ne), "ccmn x2, x3, #NZCv, ne"); | 1332 COMPARE(ccmn(x2, x3, NZCFlag, ne), "ccmn x2, x3, #NZCv, ne"); |
1325 COMPARE(ccmp(w4, w5, NZVFlag, hs), "ccmp w4, w5, #NZcV, hs"); | 1333 COMPARE(ccmp(w4, w5, NZVFlag, hs), "ccmp w4, w5, #NZcV, hs"); |
1326 COMPARE(ccmp(x6, x7, NZFlag, lo), "ccmp x6, x7, #NZcv, lo"); | 1334 COMPARE(ccmp(x6, x7, NZFlag, lo), "ccmp x6, x7, #NZcv, lo"); |
1327 COMPARE(ccmn(w8, 31, NFlag, mi), "ccmn w8, #31, #Nzcv, mi"); | 1335 COMPARE(ccmn(w8, 31, NFlag, mi), "ccmn w8, #31, #Nzcv, mi"); |
1328 COMPARE(ccmn(x9, 30, NCFlag, pl), "ccmn x9, #30, #NzCv, pl"); | 1336 COMPARE(ccmn(x9, 30, NCFlag, pl), "ccmn x9, #30, #NzCv, pl"); |
1329 COMPARE(ccmp(w10, 29, NVFlag, vs), "ccmp w10, #29, #NzcV, vs"); | 1337 COMPARE(ccmp(w10, 29, NVFlag, vs), "ccmp w10, #29, #NzcV, vs"); |
1330 COMPARE(ccmp(x11, 28, NFlag, vc), "ccmp x11, #28, #Nzcv, vc"); | 1338 COMPARE(ccmp(x11, 28, NFlag, vc), "ccmp x11, #28, #Nzcv, vc"); |
1331 COMPARE(ccmn(w12, w13, NoFlag, al), "ccmn w12, w13, #nzcv, al"); | 1339 COMPARE(ccmn(w12, w13, NoFlag, al), "ccmn w12, w13, #nzcv, al"); |
1332 COMPARE(ccmp(x14, 27, ZVFlag, nv), "ccmp x14, #27, #nZcV, nv"); | 1340 COMPARE(ccmp(x14, 27, ZVFlag, nv), "ccmp x14, #27, #nZcV, nv"); |
1333 | 1341 |
1334 CLEANUP(); | 1342 CLEANUP(); |
1335 } | 1343 } |
1336 | 1344 |
| 1345 |
1337 TEST_(cond_cmp_macro) { | 1346 TEST_(cond_cmp_macro) { |
1338 SET_UP_CLASS(MacroAssembler); | 1347 SET_UP_CLASS(MacroAssembler); |
1339 | 1348 |
1340 COMPARE(Ccmp(w0, -1, VFlag, hi), "ccmn w0, #1, #nzcV, hi"); | 1349 COMPARE(Ccmp(w0, -1, VFlag, hi), "ccmn w0, #1, #nzcV, hi"); |
1341 COMPARE(Ccmp(x1, -31, CFlag, ge), "ccmn x1, #31, #nzCv, ge"); | 1350 COMPARE(Ccmp(x1, -31, CFlag, ge), "ccmn x1, #31, #nzCv, ge"); |
1342 COMPARE(Ccmn(w2, -1, CVFlag, gt), "ccmp w2, #1, #nzCV, gt"); | 1351 COMPARE(Ccmn(w2, -1, CVFlag, gt), "ccmp w2, #1, #nzCV, gt"); |
1343 COMPARE(Ccmn(x3, -31, ZCVFlag, ls), "ccmp x3, #31, #nZCV, ls"); | 1352 COMPARE(Ccmn(x3, -31, ZCVFlag, ls), "ccmp x3, #31, #nZCV, ls"); |
1344 | 1353 |
1345 CLEANUP(); | 1354 CLEANUP(); |
1346 } | 1355 } |
1347 | 1356 |
| 1357 |
1348 TEST_(fmov_imm) { | 1358 TEST_(fmov_imm) { |
1349 SET_UP(); | 1359 SET_UP(); |
1350 | 1360 |
1351 COMPARE(fmov(s0, 1.0), "fmov s0, #0x70 (1.0000)"); | 1361 COMPARE(fmov(s0, 1.0), "fmov s0, #0x70 (1.0000)"); |
1352 COMPARE(fmov(s31, -13.0), "fmov s31, #0xaa (-13.0000)"); | 1362 COMPARE(fmov(s31, -13.0), "fmov s31, #0xaa (-13.0000)"); |
1353 COMPARE(fmov(d1, 1.0), "fmov d1, #0x70 (1.0000)"); | 1363 COMPARE(fmov(d1, 1.0), "fmov d1, #0x70 (1.0000)"); |
1354 COMPARE(fmov(d29, -13.0), "fmov d29, #0xaa (-13.0000)"); | 1364 COMPARE(fmov(d29, -13.0), "fmov d29, #0xaa (-13.0000)"); |
1355 | 1365 |
1356 CLEANUP(); | 1366 CLEANUP(); |
1357 } | 1367 } |
1358 | 1368 |
| 1369 |
1359 TEST_(fmov_reg) { | 1370 TEST_(fmov_reg) { |
1360 SET_UP(); | 1371 SET_UP(); |
1361 | 1372 |
1362 COMPARE(fmov(w3, s13), "fmov w3, s13"); | 1373 COMPARE(fmov(w3, s13), "fmov w3, s13"); |
1363 COMPARE(fmov(x6, d26), "fmov x6, d26"); | 1374 COMPARE(fmov(x6, d26), "fmov x6, d26"); |
1364 COMPARE(fmov(s11, w30), "fmov s11, w30"); | 1375 COMPARE(fmov(s11, w30), "fmov s11, w30"); |
1365 COMPARE(fmov(d31, x2), "fmov d31, x2"); | 1376 COMPARE(fmov(d31, x2), "fmov d31, x2"); |
1366 COMPARE(fmov(s12, s13), "fmov s12, s13"); | 1377 COMPARE(fmov(s12, s13), "fmov s12, s13"); |
1367 COMPARE(fmov(d22, d23), "fmov d22, d23"); | 1378 COMPARE(fmov(d22, d23), "fmov d22, d23"); |
1368 | 1379 |
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1617 TEST_(brk) { | 1628 TEST_(brk) { |
1618 SET_UP(); | 1629 SET_UP(); |
1619 | 1630 |
1620 COMPARE(brk(0), "brk #0x0"); | 1631 COMPARE(brk(0), "brk #0x0"); |
1621 COMPARE(brk(1), "brk #0x1"); | 1632 COMPARE(brk(1), "brk #0x1"); |
1622 COMPARE(brk(65535), "brk #0xffff"); | 1633 COMPARE(brk(65535), "brk #0xffff"); |
1623 | 1634 |
1624 CLEANUP(); | 1635 CLEANUP(); |
1625 } | 1636 } |
1626 | 1637 |
| 1638 |
1627 TEST_(add_sub_negative) { | 1639 TEST_(add_sub_negative) { |
1628 SET_UP_CLASS(MacroAssembler); | 1640 SET_UP_CLASS(MacroAssembler); |
1629 | 1641 |
1630 COMPARE(Add(x10, x0, -42), "sub x10, x0, #0x2a (42)"); | 1642 COMPARE(Add(x10, x0, -42), "sub x10, x0, #0x2a (42)"); |
1631 COMPARE(Add(x11, x1, -687), "sub x11, x1, #0x2af (687)"); | 1643 COMPARE(Add(x11, x1, -687), "sub x11, x1, #0x2af (687)"); |
1632 COMPARE(Add(x12, x2, -0x88), "sub x12, x2, #0x88 (136)"); | 1644 COMPARE(Add(x12, x2, -0x88), "sub x12, x2, #0x88 (136)"); |
1633 | 1645 |
1634 COMPARE(Sub(x13, x0, -600), "add x13, x0, #0x258 (600)"); | 1646 COMPARE(Sub(x13, x0, -600), "add x13, x0, #0x258 (600)"); |
1635 COMPARE(Sub(x14, x1, -313), "add x14, x1, #0x139 (313)"); | 1647 COMPARE(Sub(x14, x1, -313), "add x14, x1, #0x139 (313)"); |
1636 COMPARE(Sub(x15, x2, -0x555), "add x15, x2, #0x555 (1365)"); | 1648 COMPARE(Sub(x15, x2, -0x555), "add x15, x2, #0x555 (1365)"); |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1740 COMPARE(Dsb(InnerShareable, BarrierOther), "dsb sy (0b1000)"); | 1752 COMPARE(Dsb(InnerShareable, BarrierOther), "dsb sy (0b1000)"); |
1741 COMPARE(Dsb(NonShareable, BarrierOther), "dsb sy (0b0100)"); | 1753 COMPARE(Dsb(NonShareable, BarrierOther), "dsb sy (0b0100)"); |
1742 COMPARE(Dsb(OuterShareable, BarrierOther), "dsb sy (0b0000)"); | 1754 COMPARE(Dsb(OuterShareable, BarrierOther), "dsb sy (0b0000)"); |
1743 | 1755 |
1744 // ISB | 1756 // ISB |
1745 COMPARE(Isb(), "isb"); | 1757 COMPARE(Isb(), "isb"); |
1746 | 1758 |
1747 CLEANUP(); | 1759 CLEANUP(); |
1748 } | 1760 } |
1749 | 1761 |
OLD | NEW |