1# RUN: llvm-mc -triple=aarch64 -mattr=+fp-armv8 -disassemble < %s | FileCheck %s 2# RUN: llvm-mc -triple=arm64 -mattr=+fp-armv8 -disassemble < %s | FileCheck %s 3 4#------------------------------------------------------------------------------ 5# Add/sub (immediate) 6#------------------------------------------------------------------------------ 7# CHECK: add w4, w5, #0 8# CHECK: add w2, w3, #4095 9# CHECK: add w30, w29, #1, lsl #12 10# CHECK: add w13, w5, #4095, lsl #12 11# CHECK: add x5, x7, #1638 120xa4 0x0 0x0 0x11 130x62 0xfc 0x3f 0x11 140xbe 0x7 0x40 0x11 150xad 0xfc 0x7f 0x11 160xe5 0x98 0x19 0x91 17 18# CHECK: add w20, wsp, #801 19# CHECK: add wsp, wsp, #1104 20# CHECK: add wsp, w30, #4084 210xf4 0x87 0xc 0x11 220xff 0x43 0x11 0x11 230xdf 0xd3 0x3f 0x11 24 25# CHECK: add x0, x24, #291 26# CHECK: add x3, x24, #4095, lsl #12 27# CHECK: add x8, sp, #1074 28# CHECK: add sp, x29, #3816 290x0 0x8f 0x4 0x91 300x3 0xff 0x7f 0x91 310xe8 0xcb 0x10 0x91 320xbf 0xa3 0x3b 0x91 33 34# CHECK: sub w0, wsp, #4077 35# CHECK: sub w4, w20, #546, lsl #12 36# CHECK: sub sp, sp, #288 37# CHECK: sub wsp, w19, #16 380xe0 0xb7 0x3f 0x51 390x84 0x8a 0x48 0x51 400xff 0x83 0x4 0xd1 410x7f 0x42 0x0 0x51 42 43 44# CHECK: adds w13, w23, #291, lsl #12 45# CHECK: cmn w2, #4095 46# CHECK: adds w20, wsp, #0 47# CHECK: cmn x3, #1, lsl #12 480xed 0x8e 0x44 0x31 490x5f 0xfc 0x3f 0x31 500xf4 0x3 0x0 0x31 510x7f 0x4 0x40 0xb1 52 53# CHECK: cmp sp, #20, lsl #12 54# CHECK: cmp x30, #4095 55# CHECK: subs x4, sp, #3822 560xff 0x53 0x40 0xf1 570xdf 0xff 0x3f 0xf1 580xe4 0xbb 0x3b 0xf1 59 60# These should really be CMN 61# CHECK: cmn w3, #291, lsl #12 62# CHECK: cmn wsp, #1365 63# CHECK: cmn sp, #1092, lsl #12 640x7f 0x8c 0x44 0x31 650xff 0x57 0x15 0x31 660xff 0x13 0x51 0xb1 67 68# CHECK: mov sp, x30 69# CHECK: mov wsp, w20 70# CHECK: mov x11, sp 71# CHECK: mov w24, wsp 720xdf 0x3 0x0 0x91 730x9f 0x2 0x0 0x11 740xeb 0x3 0x0 0x91 750xf8 0x3 0x0 0x11 76 77#------------------------------------------------------------------------------ 78# Add-subtract (shifted register) 79#------------------------------------------------------------------------------ 80 81# CHECK: add w3, w5, w7 82# CHECK: add wzr, w3, w5 83# CHECK: add w20, wzr, w4 84# CHECK: add w4, w6, wzr 85# CHECK: add w11, w13, w15 86# CHECK: add w9, w3, wzr, lsl #10 87# CHECK: add w17, w29, w20, lsl #31 88# CHECK: add w21, w22, w23, lsr #0 89# CHECK: add w24, w25, w26, lsr #18 90# CHECK: add w27, w28, w29, lsr #31 91# CHECK: add w2, w3, w4, asr #0 92# CHECK: add w5, w6, w7, asr #21 93# CHECK: add w8, w9, w10, asr #31 940xa3 0x0 0x7 0xb 950x7f 0x0 0x5 0xb 960xf4 0x3 0x4 0xb 970xc4 0x0 0x1f 0xb 980xab 0x1 0xf 0xb 990x69 0x28 0x1f 0xb 1000xb1 0x7f 0x14 0xb 1010xd5 0x2 0x57 0xb 1020x38 0x4b 0x5a 0xb 1030x9b 0x7f 0x5d 0xb 1040x62 0x0 0x84 0xb 1050xc5 0x54 0x87 0xb 1060x28 0x7d 0x8a 0xb 107 108# CHECK: add x3, x5, x7 109# CHECK: add xzr, x3, x5 110# CHECK: add x20, xzr, x4 111# CHECK: add x4, x6, xzr 112# CHECK: add x11, x13, x15 113# CHECK: add x9, x3, xzr, lsl #10 114# CHECK: add x17, x29, x20, lsl #63 115# CHECK: add x21, x22, x23, lsr #0 116# CHECK: add x24, x25, x26, lsr #18 117# CHECK: add x27, x28, x29, lsr #63 118# CHECK: add x2, x3, x4, asr #0 119# CHECK: add x5, x6, x7, asr #21 120# CHECK: add x8, x9, x10, asr #63 1210xa3 0x0 0x7 0x8b 1220x7f 0x0 0x5 0x8b 1230xf4 0x3 0x4 0x8b 1240xc4 0x0 0x1f 0x8b 1250xab 0x1 0xf 0x8b 1260x69 0x28 0x1f 0x8b 1270xb1 0xff 0x14 0x8b 1280xd5 0x2 0x57 0x8b 1290x38 0x4b 0x5a 0x8b 1300x9b 0xff 0x5d 0x8b 1310x62 0x0 0x84 0x8b 1320xc5 0x54 0x87 0x8b 1330x28 0xfd 0x8a 0x8b 134 135# CHECK: adds w3, w5, w7 136# CHECK: cmn w3, w5 137# CHECK: adds w20, wzr, w4 138# CHECK: adds w4, w6, wzr 139# CHECK: adds w11, w13, w15 140# CHECK: adds w9, w3, wzr, lsl #10 141# CHECK: adds w17, w29, w20, lsl #31 142# CHECK: adds w21, w22, w23, lsr #0 143# CHECK: adds w24, w25, w26, lsr #18 144# CHECK: adds w27, w28, w29, lsr #31 145# CHECK: adds w2, w3, w4, asr #0 146# CHECK: adds w5, w6, w7, asr #21 147# CHECK: adds w8, w9, w10, asr #31 1480xa3 0x0 0x7 0x2b 1490x7f 0x0 0x5 0x2b 1500xf4 0x3 0x4 0x2b 1510xc4 0x0 0x1f 0x2b 1520xab 0x1 0xf 0x2b 1530x69 0x28 0x1f 0x2b 1540xb1 0x7f 0x14 0x2b 1550xd5 0x2 0x57 0x2b 1560x38 0x4b 0x5a 0x2b 1570x9b 0x7f 0x5d 0x2b 1580x62 0x0 0x84 0x2b 1590xc5 0x54 0x87 0x2b 1600x28 0x7d 0x8a 0x2b 161 162# CHECK: adds x3, x5, x7 163# CHECK: cmn x3, x5 164# CHECK: adds x20, xzr, x4 165# CHECK: adds x4, x6, xzr 166# CHECK: adds x11, x13, x15 167# CHECK: adds x9, x3, xzr, lsl #10 168# CHECK: adds x17, x29, x20, lsl #63 169# CHECK: adds x21, x22, x23, lsr #0 170# CHECK: adds x24, x25, x26, lsr #18 171# CHECK: adds x27, x28, x29, lsr #63 172# CHECK: adds x2, x3, x4, asr #0 173# CHECK: adds x5, x6, x7, asr #21 174# CHECK: adds x8, x9, x10, asr #63 1750xa3 0x0 0x7 0xab 1760x7f 0x0 0x5 0xab 1770xf4 0x3 0x4 0xab 1780xc4 0x0 0x1f 0xab 1790xab 0x1 0xf 0xab 1800x69 0x28 0x1f 0xab 1810xb1 0xff 0x14 0xab 1820xd5 0x2 0x57 0xab 1830x38 0x4b 0x5a 0xab 1840x9b 0xff 0x5d 0xab 1850x62 0x0 0x84 0xab 1860xc5 0x54 0x87 0xab 1870x28 0xfd 0x8a 0xab 188 189# CHECK: sub w3, w5, w7 190# CHECK: sub wzr, w3, w5 191# CHECK: {{sub w20, wzr, w4|neg w20, w4}} 192# CHECK: sub w4, w6, wzr 193# CHECK: sub w11, w13, w15 194# CHECK: sub w9, w3, wzr, lsl #10 195# CHECK: sub w17, w29, w20, lsl #31 196# CHECK: sub w21, w22, w23, lsr #0 197# CHECK: sub w24, w25, w26, lsr #18 198# CHECK: sub w27, w28, w29, lsr #31 199# CHECK: sub w2, w3, w4, asr #0 200# CHECK: sub w5, w6, w7, asr #21 201# CHECK: sub w8, w9, w10, asr #31 2020xa3 0x0 0x7 0x4b 2030x7f 0x0 0x5 0x4b 2040xf4 0x3 0x4 0x4b 2050xc4 0x0 0x1f 0x4b 2060xab 0x1 0xf 0x4b 2070x69 0x28 0x1f 0x4b 2080xb1 0x7f 0x14 0x4b 2090xd5 0x2 0x57 0x4b 2100x38 0x4b 0x5a 0x4b 2110x9b 0x7f 0x5d 0x4b 2120x62 0x0 0x84 0x4b 2130xc5 0x54 0x87 0x4b 2140x28 0x7d 0x8a 0x4b 215 216# CHECK: sub x3, x5, x7 217# CHECK: sub xzr, x3, x5 218# CHECK: {{sub x20, xzr, x4|neg x20, x4}} 219# CHECK: sub x4, x6, xzr 220# CHECK: sub x11, x13, x15 221# CHECK: sub x9, x3, xzr, lsl #10 222# CHECK: sub x17, x29, x20, lsl #63 223# CHECK: sub x21, x22, x23, lsr #0 224# CHECK: sub x24, x25, x26, lsr #18 225# CHECK: sub x27, x28, x29, lsr #63 226# CHECK: sub x2, x3, x4, asr #0 227# CHECK: sub x5, x6, x7, asr #21 228# CHECK: sub x8, x9, x10, asr #63 2290xa3 0x0 0x7 0xcb 2300x7f 0x0 0x5 0xcb 2310xf4 0x3 0x4 0xcb 2320xc4 0x0 0x1f 0xcb 2330xab 0x1 0xf 0xcb 2340x69 0x28 0x1f 0xcb 2350xb1 0xff 0x14 0xcb 2360xd5 0x2 0x57 0xcb 2370x38 0x4b 0x5a 0xcb 2380x9b 0xff 0x5d 0xcb 2390x62 0x0 0x84 0xcb 2400xc5 0x54 0x87 0xcb 2410x28 0xfd 0x8a 0xcb 242 243# CHECK: subs w3, w5, w7 244# CHECK: cmp w3, w5 245# CHECK: {{subs w20, wzr, w4|negs w20, w4}} 246# CHECK: subs w4, w6, wzr 247# CHECK: subs w11, w13, w15 248# CHECK: subs w9, w3, wzr, lsl #10 249# CHECK: subs w17, w29, w20, lsl #31 250# CHECK: subs w21, w22, w23, lsr #0 251# CHECK: subs w24, w25, w26, lsr #18 252# CHECK: subs w27, w28, w29, lsr #31 253# CHECK: subs w2, w3, w4, asr #0 254# CHECK: subs w5, w6, w7, asr #21 255# CHECK: subs w8, w9, w10, asr #31 2560xa3 0x0 0x7 0x6b 2570x7f 0x0 0x5 0x6b 2580xf4 0x3 0x4 0x6b 2590xc4 0x0 0x1f 0x6b 2600xab 0x1 0xf 0x6b 2610x69 0x28 0x1f 0x6b 2620xb1 0x7f 0x14 0x6b 2630xd5 0x2 0x57 0x6b 2640x38 0x4b 0x5a 0x6b 2650x9b 0x7f 0x5d 0x6b 2660x62 0x0 0x84 0x6b 2670xc5 0x54 0x87 0x6b 2680x28 0x7d 0x8a 0x6b 269 270# CHECK: subs x3, x5, x7 271# CHECK: cmp x3, x5 272# CHECK: {{subs x20, xzr, x4|negs x20, x4}} 273# CHECK: subs x4, x6, xzr 274# CHECK: subs x11, x13, x15 275# CHECK: subs x9, x3, xzr, lsl #10 276# CHECK: subs x17, x29, x20, lsl #63 277# CHECK: subs x21, x22, x23, lsr #0 278# CHECK: subs x24, x25, x26, lsr #18 279# CHECK: subs x27, x28, x29, lsr #63 280# CHECK: subs x2, x3, x4, asr #0 281# CHECK: subs x5, x6, x7, asr #21 282# CHECK: subs x8, x9, x10, asr #63 2830xa3 0x0 0x7 0xeb 2840x7f 0x0 0x5 0xeb 2850xf4 0x3 0x4 0xeb 2860xc4 0x0 0x1f 0xeb 2870xab 0x1 0xf 0xeb 2880x69 0x28 0x1f 0xeb 2890xb1 0xff 0x14 0xeb 2900xd5 0x2 0x57 0xeb 2910x38 0x4b 0x5a 0xeb 2920x9b 0xff 0x5d 0xeb 2930x62 0x0 0x84 0xeb 2940xc5 0x54 0x87 0xeb 2950x28 0xfd 0x8a 0xeb 296 297# CHECK: cmn w0, w3 298# CHECK: cmn wzr, w4 299# CHECK: cmn w5, wzr 300# CHECK: cmn w6, w7 301# CHECK: cmn w8, w9, lsl #15 302# CHECK: cmn w10, w11, lsl #31 303# CHECK: cmn w12, w13, lsr #0 304# CHECK: cmn w14, w15, lsr #21 305# CHECK: cmn w16, w17, lsr #31 306# CHECK: cmn w18, w19, asr #0 307# CHECK: cmn w20, w21, asr #22 308# CHECK: cmn w22, w23, asr #31 3090x1f 0x0 0x3 0x2b 3100xff 0x3 0x4 0x2b 3110xbf 0x0 0x1f 0x2b 3120xdf 0x0 0x7 0x2b 3130x1f 0x3d 0x9 0x2b 3140x5f 0x7d 0xb 0x2b 3150x9f 0x1 0x4d 0x2b 3160xdf 0x55 0x4f 0x2b 3170x1f 0x7e 0x51 0x2b 3180x5f 0x2 0x93 0x2b 3190x9f 0x5a 0x95 0x2b 3200xdf 0x7e 0x97 0x2b 321 322# CHECK: cmn x0, x3 323# CHECK: cmn xzr, x4 324# CHECK: cmn x5, xzr 325# CHECK: cmn x6, x7 326# CHECK: cmn x8, x9, lsl #15 327# CHECK: cmn x10, x11, lsl #63 328# CHECK: cmn x12, x13, lsr #0 329# CHECK: cmn x14, x15, lsr #41 330# CHECK: cmn x16, x17, lsr #63 331# CHECK: cmn x18, x19, asr #0 332# CHECK: cmn x20, x21, asr #55 333# CHECK: cmn x22, x23, asr #63 3340x1f 0x0 0x3 0xab 3350xff 0x3 0x4 0xab 3360xbf 0x0 0x1f 0xab 3370xdf 0x0 0x7 0xab 3380x1f 0x3d 0x9 0xab 3390x5f 0xfd 0xb 0xab 3400x9f 0x1 0x4d 0xab 3410xdf 0xa5 0x4f 0xab 3420x1f 0xfe 0x51 0xab 3430x5f 0x2 0x93 0xab 3440x9f 0xde 0x95 0xab 3450xdf 0xfe 0x97 0xab 346 347# CHECK: cmp w0, w3 348# CHECK: cmp wzr, w4 349# CHECK: cmp w5, wzr 350# CHECK: cmp w6, w7 351# CHECK: cmp w8, w9, lsl #15 352# CHECK: cmp w10, w11, lsl #31 353# CHECK: cmp w12, w13, lsr #0 354# CHECK: cmp w14, w15, lsr #21 355# CHECK: cmp w16, w17, lsr #31 356# CHECK: cmp w18, w19, asr #0 357# CHECK: cmp w20, w21, asr #22 358# CHECK: cmp w22, w23, asr #31 3590x1f 0x0 0x3 0x6b 3600xff 0x3 0x4 0x6b 3610xbf 0x0 0x1f 0x6b 3620xdf 0x0 0x7 0x6b 3630x1f 0x3d 0x9 0x6b 3640x5f 0x7d 0xb 0x6b 3650x9f 0x1 0x4d 0x6b 3660xdf 0x55 0x4f 0x6b 3670x1f 0x7e 0x51 0x6b 3680x5f 0x2 0x93 0x6b 3690x9f 0x5a 0x95 0x6b 3700xdf 0x7e 0x97 0x6b 371 372# CHECK: cmp x0, x3 373# CHECK: cmp xzr, x4 374# CHECK: cmp x5, xzr 375# CHECK: cmp x6, x7 376# CHECK: cmp x8, x9, lsl #15 377# CHECK: cmp x10, x11, lsl #63 378# CHECK: cmp x12, x13, lsr #0 379# CHECK: cmp x14, x15, lsr #41 380# CHECK: cmp x16, x17, lsr #63 381# CHECK: cmp x18, x19, asr #0 382# CHECK: cmp x20, x21, asr #55 383# CHECK: cmp x22, x23, asr #63 3840x1f 0x0 0x3 0xeb 3850xff 0x3 0x4 0xeb 3860xbf 0x0 0x1f 0xeb 3870xdf 0x0 0x7 0xeb 3880x1f 0x3d 0x9 0xeb 3890x5f 0xfd 0xb 0xeb 3900x9f 0x1 0x4d 0xeb 3910xdf 0xa5 0x4f 0xeb 3920x1f 0xfe 0x51 0xeb 3930x5f 0x2 0x93 0xeb 3940x9f 0xde 0x95 0xeb 3950xdf 0xfe 0x97 0xeb 396 397# CHECK: {{sub w29, wzr|neg w29}}, w30 398# CHECK: {{sub w30, wzr|neg w30}}, wzr 399# CHECK: {{sub wzr, wzr|neg wzr}}, w0 400# CHECK: {{sub w28, wzr|neg w28}}, w27 401# CHECK: {{sub w26, wzr|neg w26}}, w25, lsl #29 402# CHECK: {{sub w24, wzr|neg w24}}, w23, lsl #31 403# CHECK: {{sub w22, wzr|neg w22}}, w21, lsr #0 404# CHECK: {{sub w20, wzr|neg w20}}, w19, lsr #1 405# CHECK: {{sub w18, wzr|neg w18}}, w17, lsr #31 406# CHECK: {{sub w16, wzr|neg w16}}, w15, asr #0 407# CHECK: {{sub w14, wzr|neg w14}}, w13, asr #12 408# CHECK: {{sub w12, wzr|neg w12}}, w11, asr #31 4090xfd 0x3 0x1e 0x4b 4100xfe 0x3 0x1f 0x4b 4110xff 0x3 0x0 0x4b 4120xfc 0x3 0x1b 0x4b 4130xfa 0x77 0x19 0x4b 4140xf8 0x7f 0x17 0x4b 4150xf6 0x3 0x55 0x4b 4160xf4 0x7 0x53 0x4b 4170xf2 0x7f 0x51 0x4b 4180xf0 0x3 0x8f 0x4b 4190xee 0x33 0x8d 0x4b 4200xec 0x7f 0x8b 0x4b 421 422# CHECK: {{sub x29, xzr|neg x29}}, x30 423# CHECK: {{sub x30, xzr|neg x30}}, xzr 424# CHECK: {{sub xzr, xzr|neg xzr}}, x0 425# CHECK: {{sub x28, xzr|neg x28}}, x27 426# CHECK: {{sub x26, xzr|neg x26}}, x25, lsl #29 427# CHECK: {{sub x24, xzr|neg x24}}, x23, lsl #31 428# CHECK: {{sub x22, xzr|neg x22}}, x21, lsr #0 429# CHECK: {{sub x20, xzr|neg x20}}, x19, lsr #1 430# CHECK: {{sub x18, xzr|neg x18}}, x17, lsr #31 431# CHECK: {{sub x16, xzr|neg x16}}, x15, asr #0 432# CHECK: {{sub x14, xzr|neg x14}}, x13, asr #12 433# CHECK: {{sub x12, xzr|neg x12}}, x11, asr #31 4340xfd 0x3 0x1e 0xcb 4350xfe 0x3 0x1f 0xcb 4360xff 0x3 0x0 0xcb 4370xfc 0x3 0x1b 0xcb 4380xfa 0x77 0x19 0xcb 4390xf8 0x7f 0x17 0xcb 4400xf6 0x3 0x55 0xcb 4410xf4 0x7 0x53 0xcb 4420xf2 0x7f 0x51 0xcb 4430xf0 0x3 0x8f 0xcb 4440xee 0x33 0x8d 0xcb 4450xec 0x7f 0x8b 0xcb 446 447# CHECK: {{subs w29, wzr|negs w29}}, w30 448# CHECK: {{subs w30, wzr|negs w30}}, wzr 449# CHECK: cmp wzr, w0 450# CHECK: {{subs w28, wzr|negs w28}}, w27 451# CHECK: {{subs w26, wzr|negs w26}}, w25, lsl #29 452# CHECK: {{subs w24, wzr|negs w24}}, w23, lsl #31 453# CHECK: {{subs w22, wzr|negs w22}}, w21, lsr #0 454# CHECK: {{subs w20, wzr|negs w20}}, w19, lsr #1 455# CHECK: {{subs w18, wzr|negs w18}}, w17, lsr #31 456# CHECK: {{subs w16, wzr|negs w16}}, w15, asr #0 457# CHECK: {{subs w14, wzr|negs w14}}, w13, asr #12 458# CHECK: {{subs w12, wzr|negs w12}}, w11, asr #31 4590xfd 0x3 0x1e 0x6b 4600xfe 0x3 0x1f 0x6b 4610xff 0x3 0x0 0x6b 4620xfc 0x3 0x1b 0x6b 4630xfa 0x77 0x19 0x6b 4640xf8 0x7f 0x17 0x6b 4650xf6 0x3 0x55 0x6b 4660xf4 0x7 0x53 0x6b 4670xf2 0x7f 0x51 0x6b 4680xf0 0x3 0x8f 0x6b 4690xee 0x33 0x8d 0x6b 4700xec 0x7f 0x8b 0x6b 471 472# CHECK: {{subs x29, xzr|negs x29}}, x30 473# CHECK: {{subs x30, xzr|negs x30}}, xzr 474# CHECK: cmp xzr, x0 475# CHECK: {{subs x28, xzr|negs x28}}, x27 476# CHECK: {{subs x26, xzr|negs x26}}, x25, lsl #29 477# CHECK: {{subs x24, xzr|negs x24}}, x23, lsl #31 478# CHECK: {{subs x22, xzr|negs x22}}, x21, lsr #0 479# CHECK: {{subs x20, xzr|negs x20}}, x19, lsr #1 480# CHECK: {{subs x18, xzr|negs x18}}, x17, lsr #31 481# CHECK: {{subs x16, xzr|negs x16}}, x15, asr #0 482# CHECK: {{subs x14, xzr|negs x14}}, x13, asr #12 483# CHECK: {{subs x12, xzr|negs x12}}, x11, asr #31 4840xfd 0x3 0x1e 0xeb 4850xfe 0x3 0x1f 0xeb 4860xff 0x3 0x0 0xeb 4870xfc 0x3 0x1b 0xeb 4880xfa 0x77 0x19 0xeb 4890xf8 0x7f 0x17 0xeb 4900xf6 0x3 0x55 0xeb 4910xf4 0x7 0x53 0xeb 4920xf2 0x7f 0x51 0xeb 4930xf0 0x3 0x8f 0xeb 4940xee 0x33 0x8d 0xeb 4950xec 0x7f 0x8b 0xeb 496 497#------------------------------------------------------------------------------ 498# Add-subtract (shifted register) 499#------------------------------------------------------------------------------ 500 501# CHECK: adc w29, w27, w25 502# CHECK: adc wzr, w3, w4 503# CHECK: adc w9, wzr, w10 504# CHECK: adc w20, w0, wzr 5050x7d 0x3 0x19 0x1a 5060x7f 0x0 0x4 0x1a 5070xe9 0x3 0xa 0x1a 5080x14 0x0 0x1f 0x1a 509 510# CHECK: adc x29, x27, x25 511# CHECK: adc xzr, x3, x4 512# CHECK: adc x9, xzr, x10 513# CHECK: adc x20, x0, xzr 5140x7d 0x3 0x19 0x9a 5150x7f 0x0 0x4 0x9a 5160xe9 0x3 0xa 0x9a 5170x14 0x0 0x1f 0x9a 518 519# CHECK: adcs w29, w27, w25 520# CHECK: adcs wzr, w3, w4 521# CHECK: adcs w9, wzr, w10 522# CHECK: adcs w20, w0, wzr 5230x7d 0x3 0x19 0x3a 5240x7f 0x0 0x4 0x3a 5250xe9 0x3 0xa 0x3a 5260x14 0x0 0x1f 0x3a 527 528# CHECK: adcs x29, x27, x25 529# CHECK: adcs xzr, x3, x4 530# CHECK: adcs x9, xzr, x10 531# CHECK: adcs x20, x0, xzr 5320x7d 0x3 0x19 0xba 5330x7f 0x0 0x4 0xba 5340xe9 0x3 0xa 0xba 5350x14 0x0 0x1f 0xba 536 537# CHECK: sbc w29, w27, w25 538# CHECK: sbc wzr, w3, w4 539# CHECK: ngc w9, w10 540# CHECK: sbc w20, w0, wzr 5410x7d 0x3 0x19 0x5a 5420x7f 0x0 0x4 0x5a 5430xe9 0x3 0xa 0x5a 5440x14 0x0 0x1f 0x5a 545 546# CHECK: sbc x29, x27, x25 547# CHECK: sbc xzr, x3, x4 548# CHECK: ngc x9, x10 549# CHECK: sbc x20, x0, xzr 5500x7d 0x3 0x19 0xda 5510x7f 0x0 0x4 0xda 5520xe9 0x3 0xa 0xda 5530x14 0x0 0x1f 0xda 554 555# CHECK: sbcs w29, w27, w25 556# CHECK: sbcs wzr, w3, w4 557# CHECK: ngcs w9, w10 558# CHECK: sbcs w20, w0, wzr 5590x7d 0x3 0x19 0x7a 5600x7f 0x0 0x4 0x7a 5610xe9 0x3 0xa 0x7a 5620x14 0x0 0x1f 0x7a 563 564# CHECK: sbcs x29, x27, x25 565# CHECK: sbcs xzr, x3, x4 566# CHECK: ngcs x9, x10 567# CHECK: sbcs x20, x0, xzr 5680x7d 0x3 0x19 0xfa 5690x7f 0x0 0x4 0xfa 5700xe9 0x3 0xa 0xfa 5710x14 0x0 0x1f 0xfa 572 573# CHECK: ngc w3, w12 574# CHECK: ngc wzr, w9 575# CHECK: ngc w23, wzr 5760xe3 0x3 0xc 0x5a 5770xff 0x3 0x9 0x5a 5780xf7 0x3 0x1f 0x5a 579 580# CHECK: ngc x29, x30 581# CHECK: ngc xzr, x0 582# CHECK: ngc x0, xzr 5830xfd 0x3 0x1e 0xda 5840xff 0x3 0x0 0xda 5850xe0 0x3 0x1f 0xda 586 587# CHECK: ngcs w3, w12 588# CHECK: ngcs wzr, w9 589# CHECK: ngcs w23, wzr 5900xe3 0x3 0xc 0x7a 5910xff 0x3 0x9 0x7a 5920xf7 0x3 0x1f 0x7a 593 594# CHECK: ngcs x29, x30 595# CHECK: ngcs xzr, x0 596# CHECK: ngcs x0, xzr 5970xfd 0x3 0x1e 0xfa 5980xff 0x3 0x0 0xfa 5990xe0 0x3 0x1f 0xfa 600 601#------------------------------------------------------------------------------ 602# Compare and branch (immediate) 603#------------------------------------------------------------------------------ 604 605# CHECK: sbfx x1, x2, #3, #2 606# CHECK: asr x3, x4, #63 607# CHECK: asr wzr, wzr, #31 608# CHECK: sbfx w12, w9, #0, #1 6090x41 0x10 0x43 0x93 6100x83 0xfc 0x7f 0x93 6110xff 0x7f 0x1f 0x13 6120x2c 0x1 0x0 0x13 613 614# CHECK: ubfiz x4, x5, #52, #11 615# CHECK: ubfx xzr, x4, #0, #1 616# CHECK: ubfiz x4, xzr, #1, #6 617# CHECK: lsr x5, x6, #12 6180xa4 0x28 0x4c 0xd3 6190x9f 0x0 0x40 0xd3 6200xe4 0x17 0x7f 0xd3 6210xc5 0xfc 0x4c 0xd3 622 623# CHECK: bfi x4, x5, #52, #11 624# CHECK: bfxil xzr, x4, #0, #1 625# CHECK: bfi x4, xzr, #1, #6 626# CHECK: bfxil x5, x6, #12, #52 6270xa4 0x28 0x4c 0xb3 6280x9f 0x0 0x40 0xb3 6290xe4 0x17 0x7f 0xb3 6300xc5 0xfc 0x4c 0xb3 631 632# CHECK: sxtb w1, w2 633# CHECK: sxtb xzr, w3 634# CHECK: sxth w9, w10 635# CHECK: sxth x0, w1 636# CHECK: sxtw x3, w30 6370x41 0x1c 0x0 0x13 6380x7f 0x1c 0x40 0x93 6390x49 0x3d 0x0 0x13 6400x20 0x3c 0x40 0x93 6410xc3 0x7f 0x40 0x93 642 643# CHECK: uxtb w1, w2 644# CHECK: uxth w9, w10 645# CHECK: ubfx x3, x30, #0, #32 6460x41 0x1c 0x0 0x53 6470x49 0x3d 0x0 0x53 6480xc3 0x7f 0x40 0xd3 649 650# CHECK: asr w3, w2, #0 651# CHECK: asr w9, w10, #31 652# CHECK: asr x20, x21, #63 653# CHECK: asr w1, wzr, #3 6540x43 0x7c 0x0 0x13 6550x49 0x7d 0x1f 0x13 6560xb4 0xfe 0x7f 0x93 6570xe1 0x7f 0x3 0x13 658 659# CHECK: lsr w3, w2, #0 660# CHECK: lsr w9, w10, #31 661# CHECK: lsr x20, x21, #63 662# CHECK: lsr wzr, wzr, #3 6630x43 0x7c 0x0 0x53 6640x49 0x7d 0x1f 0x53 6650xb4 0xfe 0x7f 0xd3 6660xff 0x7f 0x3 0x53 667 668# CHECK: lsr w3, w2, #0 669# CHECK: lsl w9, w10, #31 670# CHECK: lsl x20, x21, #63 671# CHECK: lsl w1, wzr, #3 6720x43 0x7c 0x0 0x53 6730x49 0x1 0x1 0x53 6740xb4 0x2 0x41 0xd3 6750xe1 0x73 0x1d 0x53 676 677# CHECK: sbfx w9, w10, #0, #1 678# CHECK: sbfiz x2, x3, #63, #1 679# CHECK: asr x19, x20, #0 680# CHECK: sbfiz x9, x10, #5, #59 681# CHECK: asr w9, w10, #0 682# CHECK: sbfiz w11, w12, #31, #1 683# CHECK: sbfiz w13, w14, #29, #3 684# CHECK: sbfiz xzr, xzr, #10, #11 6850x49 0x1 0x0 0x13 6860x62 0x0 0x41 0x93 6870x93 0xfe 0x40 0x93 6880x49 0xe9 0x7b 0x93 6890x49 0x7d 0x0 0x13 6900x8b 0x1 0x1 0x13 6910xcd 0x9 0x3 0x13 6920xff 0x2b 0x76 0x93 693 694# CHECK: sbfx w9, w10, #0, #1 695# CHECK: asr x2, x3, #63 696# CHECK: asr x19, x20, #0 697# CHECK: asr x9, x10, #5 698# CHECK: asr w9, w10, #0 699# CHECK: asr w11, w12, #31 700# CHECK: asr w13, w14, #29 701# CHECK: sbfx xzr, xzr, #10, #11 7020x49 0x1 0x0 0x13 7030x62 0xfc 0x7f 0x93 7040x93 0xfe 0x40 0x93 7050x49 0xfd 0x45 0x93 7060x49 0x7d 0x0 0x13 7070x8b 0x7d 0x1f 0x13 7080xcd 0x7d 0x1d 0x13 7090xff 0x53 0x4a 0x93 710 711# CHECK: bfxil w9, w10, #0, #1 712# CHECK: bfi x2, x3, #63, #1 713# CHECK: bfxil x19, x20, #0, #64 714# CHECK: bfi x9, x10, #5, #59 715# CHECK: bfxil w9, w10, #0, #32 716# CHECK: bfi w11, w12, #31, #1 717# CHECK: bfi w13, w14, #29, #3 718# CHECK: bfi xzr, xzr, #10, #11 7190x49 0x1 0x0 0x33 7200x62 0x0 0x41 0xb3 7210x93 0xfe 0x40 0xb3 7220x49 0xe9 0x7b 0xb3 7230x49 0x7d 0x0 0x33 7240x8b 0x1 0x1 0x33 7250xcd 0x9 0x3 0x33 7260xff 0x2b 0x76 0xb3 727 728# CHECK: bfxil w9, w10, #0, #1 729# CHECK: bfxil x2, x3, #63, #1 730# CHECK: bfxil x19, x20, #0, #64 731# CHECK: bfxil x9, x10, #5, #59 732# CHECK: bfxil w9, w10, #0, #32 733# CHECK: bfxil w11, w12, #31, #1 734# CHECK: bfxil w13, w14, #29, #3 735# CHECK: bfxil xzr, xzr, #10, #11 7360x49 0x1 0x0 0x33 7370x62 0xfc 0x7f 0xb3 7380x93 0xfe 0x40 0xb3 7390x49 0xfd 0x45 0xb3 7400x49 0x7d 0x0 0x33 7410x8b 0x7d 0x1f 0x33 7420xcd 0x7d 0x1d 0x33 7430xff 0x53 0x4a 0xb3 744 745# CHECK: ubfx w9, w10, #0, #1 746# CHECK: lsl x2, x3, #63 747# CHECK: lsr x19, x20, #0 748# CHECK: lsl x9, x10, #5 749# CHECK: lsr w9, w10, #0 750# CHECK: lsl w11, w12, #31 751# CHECK: lsl w13, w14, #29 752# CHECK: ubfiz xzr, xzr, #10, #11 7530x49 0x1 0x0 0x53 7540x62 0x0 0x41 0xd3 7550x93 0xfe 0x40 0xd3 7560x49 0xe9 0x7b 0xd3 7570x49 0x7d 0x0 0x53 7580x8b 0x1 0x1 0x53 7590xcd 0x9 0x3 0x53 7600xff 0x2b 0x76 0xd3 761 762# CHECK: ubfx w9, w10, #0, #1 763# CHECK: lsr x2, x3, #63 764# CHECK: lsr x19, x20, #0 765# CHECK: lsr x9, x10, #5 766# CHECK: lsr w9, w10, #0 767# CHECK: lsr w11, w12, #31 768# CHECK: lsr w13, w14, #29 769# CHECK: ubfx xzr, xzr, #10, #11 7700x49 0x1 0x0 0x53 7710x62 0xfc 0x7f 0xd3 7720x93 0xfe 0x40 0xd3 7730x49 0xfd 0x45 0xd3 7740x49 0x7d 0x0 0x53 7750x8b 0x7d 0x1f 0x53 7760xcd 0x7d 0x1d 0x53 7770xff 0x53 0x4a 0xd3 778 779 780#------------------------------------------------------------------------------ 781# Compare and branch (immediate) 782#------------------------------------------------------------------------------ 783 784# CHECK: cbz w5, #4 785# CHECK: cbz x5, #0 786# CHECK: cbnz x2, #-4 787# CHECK: cbnz x26, #1048572 7880x25 0x0 0x0 0x34 7890x05 0x0 0x0 0xb4 7900xe2 0xff 0xff 0xb5 7910xfa 0xff 0x7f 0xb5 792 793# CHECK: cbz wzr, #0 794# CHECK: cbnz xzr, #0 7950x1f 0x0 0x0 0x34 7960x1f 0x0 0x0 0xb5 797 798#------------------------------------------------------------------------------ 799# Conditional branch (immediate) 800#------------------------------------------------------------------------------ 801 802# CHECK: b.ne #4 803# CHECK: b.ge #1048572 804# CHECK: b.ge #-4 8050x21 0x00 0x00 0x54 8060xea 0xff 0x7f 0x54 8070xea 0xff 0xff 0x54 808 809#------------------------------------------------------------------------------ 810# Conditional compare (immediate) 811#------------------------------------------------------------------------------ 812 813# CHECK: ccmp w1, #31, #0, eq 814# CHECK: ccmp w3, #0, #15, hs 815# CHECK: ccmp wzr, #15, #13, hs 8160x20 0x08 0x5f 0x7a 8170x6f 0x28 0x40 0x7a 8180xed 0x2b 0x4f 0x7a 819 820# CHECK: ccmp x9, #31, #0, le 821# CHECK: ccmp x3, #0, #15, gt 822# CHECK: ccmp xzr, #5, #7, ne 8230x20 0xd9 0x5f 0xfa 8240x6f 0xc8 0x40 0xfa 8250xe7 0x1b 0x45 0xfa 826 827# CHECK: ccmn w1, #31, #0, eq 828# CHECK: ccmn w3, #0, #15, hs 829# CHECK: ccmn wzr, #15, #13, hs 8300x20 0x08 0x5f 0x3a 8310x6f 0x28 0x40 0x3a 8320xed 0x2b 0x4f 0x3a 833 834# CHECK: ccmn x9, #31, #0, le 835# CHECK: ccmn x3, #0, #15, gt 836# CHECK: ccmn xzr, #5, #7, ne 8370x20 0xd9 0x5f 0xba 8380x6f 0xc8 0x40 0xba 8390xe7 0x1b 0x45 0xba 840 841#------------------------------------------------------------------------------ 842# Conditional compare (register) 843#------------------------------------------------------------------------------ 844 845# CHECK: ccmp w1, wzr, #0, eq 846# CHECK: ccmp w3, w0, #15, hs 847# CHECK: ccmp wzr, w15, #13, hs 8480x20 0x00 0x5f 0x7a 8490x6f 0x20 0x40 0x7a 8500xed 0x23 0x4f 0x7a 851 852# CHECK: ccmp x9, xzr, #0, le 853# CHECK: ccmp x3, x0, #15, gt 854# CHECK: ccmp xzr, x5, #7, ne 8550x20 0xd1 0x5f 0xfa 8560x6f 0xc0 0x40 0xfa 8570xe7 0x13 0x45 0xfa 858 859# CHECK: ccmn w1, wzr, #0, eq 860# CHECK: ccmn w3, w0, #15, hs 861# CHECK: ccmn wzr, w15, #13, hs 8620x20 0x00 0x5f 0x3a 8630x6f 0x20 0x40 0x3a 8640xed 0x23 0x4f 0x3a 865 866# CHECK: ccmn x9, xzr, #0, le 867# CHECK: ccmn x3, x0, #15, gt 868# CHECK: ccmn xzr, x5, #7, ne 8690x20 0xd1 0x5f 0xba 8700x6f 0xc0 0x40 0xba 8710xe7 0x13 0x45 0xba 872 873#------------------------------------------------------------------------------ 874# Conditional branch (immediate) 875#------------------------------------------------------------------------------ 876# CHECK: csel w1, w0, w19, ne 877# CHECK: csel wzr, w5, w9, eq 878# CHECK: csel w9, wzr, w30, gt 879# CHECK: csel w1, w28, wzr, mi 880# CHECK: csel x19, x23, x29, lt 881# CHECK: csel xzr, x3, x4, ge 882# CHECK: csel x5, xzr, x6, hs 883# CHECK: csel x7, x8, xzr, lo 8840x1 0x10 0x93 0x1a 8850xbf 0x0 0x89 0x1a 8860xe9 0xc3 0x9e 0x1a 8870x81 0x43 0x9f 0x1a 8880xf3 0xb2 0x9d 0x9a 8890x7f 0xa0 0x84 0x9a 8900xe5 0x23 0x86 0x9a 8910x7 0x31 0x9f 0x9a 892 893# CHECK: csinc w1, w0, w19, ne 894# CHECK: csinc wzr, w5, w9, eq 895# CHECK: csinc w9, wzr, w30, gt 896# CHECK: csinc w1, w28, wzr, mi 897# CHECK: csinc x19, x23, x29, lt 898# CHECK: csinc xzr, x3, x4, ge 899# CHECK: csinc x5, xzr, x6, hs 900# CHECK: csinc x7, x8, xzr, lo 9010x1 0x14 0x93 0x1a 9020xbf 0x4 0x89 0x1a 9030xe9 0xc7 0x9e 0x1a 9040x81 0x47 0x9f 0x1a 9050xf3 0xb6 0x9d 0x9a 9060x7f 0xa4 0x84 0x9a 9070xe5 0x27 0x86 0x9a 9080x7 0x35 0x9f 0x9a 909 910# CHECK: csinv w1, w0, w19, ne 911# CHECK: csinv wzr, w5, w9, eq 912# CHECK: csinv w9, wzr, w30, gt 913# CHECK: csinv w1, w28, wzr, mi 914# CHECK: csinv x19, x23, x29, lt 915# CHECK: csinv xzr, x3, x4, ge 916# CHECK: csinv x5, xzr, x6, hs 917# CHECK: csinv x7, x8, xzr, lo 9180x1 0x10 0x93 0x5a 9190xbf 0x0 0x89 0x5a 9200xe9 0xc3 0x9e 0x5a 9210x81 0x43 0x9f 0x5a 9220xf3 0xb2 0x9d 0xda 9230x7f 0xa0 0x84 0xda 9240xe5 0x23 0x86 0xda 9250x7 0x31 0x9f 0xda 926 927# CHECK: csneg w1, w0, w19, ne 928# CHECK: csneg wzr, w5, w9, eq 929# CHECK: csneg w9, wzr, w30, gt 930# CHECK: csneg w1, w28, wzr, mi 931# CHECK: csneg x19, x23, x29, lt 932# CHECK: csneg xzr, x3, x4, ge 933# CHECK: csneg x5, xzr, x6, hs 934# CHECK: csneg x7, x8, xzr, lo 9350x1 0x14 0x93 0x5a 9360xbf 0x4 0x89 0x5a 9370xe9 0xc7 0x9e 0x5a 9380x81 0x47 0x9f 0x5a 9390xf3 0xb6 0x9d 0xda 9400x7f 0xa4 0x84 0xda 9410xe5 0x27 0x86 0xda 9420x7 0x35 0x9f 0xda 943 944# CHECK: cset w3, eq 945# CHECK: cset x9, pl 946# CHECK: csetm w20, ne 947# CHECK: csetm x30, ge 948# "cset w2, nv" and "csetm x3, al" are invalid aliases for these two 949# CHECK: csinc w2, wzr, wzr, al 950# CHECK: csinv x3, xzr, xzr, nv 9510xe3 0x17 0x9f 0x1a 9520xe9 0x47 0x9f 0x9a 9530xf4 0x3 0x9f 0x5a 9540xfe 0xb3 0x9f 0xda 9550xe2,0xe7,0x9f,0x1a 9560xe3,0xf3,0x9f,0xda 957 958# CHECK: cinc w3, w5, gt 959# CHECK: cinc wzr, w4, le 960# CHECK: cset w9, lt 961# CHECK: cinc x3, x5, gt 962# CHECK: cinc xzr, x4, le 963# CHECK: cset x9, lt 964# "cinc w5, w6, al" and "cinc x1, x2, nv" are invalid aliases for these two 965# CHECK: csinc w5, w6, w6, nv 966# CHECK: csinc x1, x2, x2, al 9670xa3 0xd4 0x85 0x1a 9680x9f 0xc4 0x84 0x1a 9690xe9 0xa7 0x9f 0x1a 9700xa3 0xd4 0x85 0x9a 9710x9f 0xc4 0x84 0x9a 9720xe9 0xa7 0x9f 0x9a 9730xc5,0xf4,0x86,0x1a 9740x41,0xe4,0x82,0x9a 975 976# CHECK: cinv w3, w5, gt 977# CHECK: cinv wzr, w4, le 978# CHECK: csetm w9, lt 979# CHECK: cinv x3, x5, gt 980# CHECK: cinv xzr, x4, le 981# CHECK: csetm x9, lt 982# "cinv x1, x0, nv" and "cinv w9, w8, al" are invalid aliases for these two 983# CHECK: csinv x1, x0, x0, al 984# CHECK: csinv w9, w8, w8, nv 9850xa3 0xd0 0x85 0x5a 9860x9f 0xc0 0x84 0x5a 9870xe9 0xa3 0x9f 0x5a 9880xa3 0xd0 0x85 0xda 9890x9f 0xc0 0x84 0xda 9900xe9 0xa3 0x9f 0xda 9910x01 0xe0 0x80 0xda 9920x09,0xf1,0x88,0x5a 993 994# CHECK: cneg w3, w5, gt 995# CHECK: cneg wzr, w4, le 996# CHECK: cneg w9, wzr, lt 997# CHECK: cneg x3, x5, gt 998# CHECK: cneg xzr, x4, le 999# CHECK: cneg x9, xzr, lt 1000# "cneg x4, x8, nv" and "cneg w5, w6, al" are invalid aliases for these two 1001# CHECK: csneg x4, x8, x8, al 1002# CHECK: csinv w9, w8, w8, nv 10030xa3 0xd4 0x85 0x5a 10040x9f 0xc4 0x84 0x5a 10050xe9 0xa7 0x9f 0x5a 10060xa3 0xd4 0x85 0xda 10070x9f 0xc4 0x84 0xda 10080xe9 0xa7 0x9f 0xda 10090x04,0xe5,0x88,0xda 10100x09,0xf1,0x88,0x5a 1011 1012#------------------------------------------------------------------------------ 1013# Data-processing (1 source) 1014#------------------------------------------------------------------------------ 1015 1016# CHECK: rbit w0, w7 1017# CHECK: rbit x18, x3 1018# CHECK: rev16 w17, w1 1019# CHECK: rev16 x5, x2 1020# CHECK: rev w18, w0 1021# CHECK: rev32 x20, x1 10220xe0 0x00 0xc0 0x5a 10230x72 0x00 0xc0 0xda 10240x31 0x04 0xc0 0x5a 10250x45 0x04 0xc0 0xda 10260x12 0x08 0xc0 0x5a 10270x34 0x08 0xc0 0xda 1028 1029# CHECK: rev x22, x2 1030# CHECK: clz w24, w3 1031# CHECK: clz x26, x4 1032# CHECK: cls w3, w5 1033# CHECK: cls x20, x5 10340x56 0x0c 0xc0 0xda 10350x78 0x10 0xc0 0x5a 10360x9a 0x10 0xc0 0xda 10370xa3 0x14 0xc0 0x5a 10380xb4 0x14 0xc0 0xda 1039 1040#------------------------------------------------------------------------------ 1041# Data-processing (2 source) 1042#------------------------------------------------------------------------------ 1043 1044# CHECK: crc32b w5, w7, w20 1045# CHECK: crc32h w28, wzr, w30 1046# CHECK: crc32w w0, w1, w2 1047# CHECK: crc32x w7, w9, x20 1048# CHECK: crc32cb w9, w5, w4 1049# CHECK: crc32ch w13, w17, w25 1050# CHECK: crc32cw wzr, w3, w5 1051# CHECK: crc32cx w18, w16, xzr 10520xe5 0x40 0xd4 0x1a 10530xfc 0x47 0xde 0x1a 10540x20 0x48 0xc2 0x1a 10550x27 0x4d 0xd4 0x9a 10560xa9 0x50 0xc4 0x1a 10570x2d 0x56 0xd9 0x1a 10580x7f 0x58 0xc5 0x1a 10590x12 0x5e 0xdf 0x9a 1060 1061# CHECK: udiv w0, w7, w10 1062# CHECK: udiv x9, x22, x4 1063# CHECK: sdiv w12, w21, w0 1064# CHECK: sdiv x13, x2, x1 1065# CHECK: lsl w11, w12, w13 1066# CHECK: lsl x14, x15, x16 1067# CHECK: lsr w17, w18, w19 1068# CHECK: lsr x20, x21, x22 1069# CHECK: asr w23, w24, w25 1070# CHECK: asr x26, x27, x28 1071# CHECK: ror w0, w1, w2 1072# CHECK: ror x3, x4, x5 10730xe0 0x08 0xca 0x1a 10740xc9 0x0a 0xc4 0x9a 10750xac 0x0e 0xc0 0x1a 10760x4d 0x0c 0xc1 0x9a 10770x8b 0x21 0xcd 0x1a 10780xee 0x21 0xd0 0x9a 10790x51 0x26 0xd3 0x1a 10800xb4 0x26 0xd6 0x9a 10810x17 0x2b 0xd9 0x1a 10820x7a 0x2b 0xdc 0x9a 10830x20 0x2c 0xc2 0x1a 10840x83 0x2c 0xc5 0x9a 1085 1086# CHECK: lsl w6, w7, w8 1087# CHECK: lsl x9, x10, x11 1088# CHECK: lsr w12, w13, w14 1089# CHECK: lsr x15, x16, x17 1090# CHECK: asr w18, w19, w20 1091# CHECK: asr x21, x22, x23 1092# CHECK: ror w24, w25, w26 1093# CHECK: ror x27, x28, x29 10940xe6 0x20 0xc8 0x1a 10950x49 0x21 0xcb 0x9a 10960xac 0x25 0xce 0x1a 10970x0f 0x26 0xd1 0x9a 10980x72 0x2a 0xd4 0x1a 10990xd5 0x2a 0xd7 0x9a 11000x38 0x2f 0xda 0x1a 11010x9b 0x2f 0xdd 0x9a 1102 1103#------------------------------------------------------------------------------ 1104# Data-processing (3 sources) 1105#------------------------------------------------------------------------------ 1106 1107# First check some non-canonical encodings where Ra is not 0b11111 (only umulh 1108# and smulh have them). 1109 1110# CHECK: smulh x30, x29, x28 1111# CHECK: smulh xzr, x27, x26 1112# CHECK: umulh x30, x29, x28 1113# CHECK: umulh x23, x30, xzr 11140xbe 0x73 0x5c 0x9b 11150x7f 0x2f 0x5a 0x9b 11160xbe 0x3f 0xdc 0x9b 11170xd7 0x77 0xdf 0x9b 1118 1119# Now onto the boilerplate stuff 1120 1121# CHECK: madd w1, w3, w7, w4 1122# CHECK: madd wzr, w0, w9, w11 1123# CHECK: madd w13, wzr, w4, w4 1124# CHECK: madd w19, w30, wzr, w29 1125# CHECK: mul w4, w5, w6 11260x61 0x10 0x7 0x1b 11270x1f 0x2c 0x9 0x1b 11280xed 0x13 0x4 0x1b 11290xd3 0x77 0x1f 0x1b 11300xa4 0x7c 0x6 0x1b 1131 1132# CHECK: madd x1, x3, x7, x4 1133# CHECK: madd xzr, x0, x9, x11 1134# CHECK: madd x13, xzr, x4, x4 1135# CHECK: madd x19, x30, xzr, x29 1136# CHECK: mul x4, x5, x6 11370x61 0x10 0x7 0x9b 11380x1f 0x2c 0x9 0x9b 11390xed 0x13 0x4 0x9b 11400xd3 0x77 0x1f 0x9b 11410xa4 0x7c 0x6 0x9b 1142 1143# CHECK: msub w1, w3, w7, w4 1144# CHECK: msub wzr, w0, w9, w11 1145# CHECK: msub w13, wzr, w4, w4 1146# CHECK: msub w19, w30, wzr, w29 1147# CHECK: mneg w4, w5, w6 11480x61 0x90 0x7 0x1b 11490x1f 0xac 0x9 0x1b 11500xed 0x93 0x4 0x1b 11510xd3 0xf7 0x1f 0x1b 11520xa4 0xfc 0x6 0x1b 1153 1154# CHECK: msub x1, x3, x7, x4 1155# CHECK: msub xzr, x0, x9, x11 1156# CHECK: msub x13, xzr, x4, x4 1157# CHECK: msub x19, x30, xzr, x29 1158# CHECK: mneg x4, x5, x6 11590x61 0x90 0x7 0x9b 11600x1f 0xac 0x9 0x9b 11610xed 0x93 0x4 0x9b 11620xd3 0xf7 0x1f 0x9b 11630xa4 0xfc 0x6 0x9b 1164 1165# CHECK: smaddl x3, w5, w2, x9 1166# CHECK: smaddl xzr, w10, w11, x12 1167# CHECK: smaddl x13, wzr, w14, x15 1168# CHECK: smaddl x16, w17, wzr, x18 1169# CHECK: smull x19, w20, w21 11700xa3 0x24 0x22 0x9b 11710x5f 0x31 0x2b 0x9b 11720xed 0x3f 0x2e 0x9b 11730x30 0x4a 0x3f 0x9b 11740x93 0x7e 0x35 0x9b 1175 1176# CHECK: smsubl x3, w5, w2, x9 1177# CHECK: smsubl xzr, w10, w11, x12 1178# CHECK: smsubl x13, wzr, w14, x15 1179# CHECK: smsubl x16, w17, wzr, x18 1180# CHECK: smnegl x19, w20, w21 11810xa3 0xa4 0x22 0x9b 11820x5f 0xb1 0x2b 0x9b 11830xed 0xbf 0x2e 0x9b 11840x30 0xca 0x3f 0x9b 11850x93 0xfe 0x35 0x9b 1186 1187# CHECK: umaddl x3, w5, w2, x9 1188# CHECK: umaddl xzr, w10, w11, x12 1189# CHECK: umaddl x13, wzr, w14, x15 1190# CHECK: umaddl x16, w17, wzr, x18 1191# CHECK: umull x19, w20, w21 11920xa3 0x24 0xa2 0x9b 11930x5f 0x31 0xab 0x9b 11940xed 0x3f 0xae 0x9b 11950x30 0x4a 0xbf 0x9b 11960x93 0x7e 0xb5 0x9b 1197 1198# CHECK: umsubl x3, w5, w2, x9 1199# CHECK: umsubl xzr, w10, w11, x12 1200# CHECK: umsubl x13, wzr, w14, x15 1201# CHECK: umsubl x16, w17, wzr, x18 1202# CHECK: umnegl x19, w20, w21 12030xa3 0xa4 0xa2 0x9b 12040x5f 0xb1 0xab 0x9b 12050xed 0xbf 0xae 0x9b 12060x30 0xca 0xbf 0x9b 12070x93 0xfe 0xb5 0x9b 1208 1209# CHECK: smulh x30, x29, x28 1210# CHECK: smulh xzr, x27, x26 1211# CHECK: smulh x25, xzr, x24 1212# CHECK: smulh x23, x22, xzr 12130xbe 0x7f 0x5c 0x9b 12140x7f 0x7f 0x5a 0x9b 12150xf9 0x7f 0x58 0x9b 12160xd7 0x7e 0x5f 0x9b 1217 1218# CHECK: umulh x30, x29, x28 1219# CHECK: umulh xzr, x27, x26 1220# CHECK: umulh x25, xzr, x24 1221# CHECK: umulh x23, x22, xzr 12220xbe 0x7f 0xdc 0x9b 12230x7f 0x7f 0xda 0x9b 12240xf9 0x7f 0xd8 0x9b 12250xd7 0x7e 0xdf 0x9b 1226 1227# CHECK: mul w3, w4, w5 1228# CHECK: mul wzr, w6, w7 1229# CHECK: mul w8, wzr, w9 1230# CHECK: mul w10, w11, wzr 1231# CHECK: mul x12, x13, x14 1232# CHECK: mul xzr, x15, x16 1233# CHECK: mul x17, xzr, x18 1234# CHECK: mul x19, x20, xzr 12350x83 0x7c 0x5 0x1b 12360xdf 0x7c 0x7 0x1b 12370xe8 0x7f 0x9 0x1b 12380x6a 0x7d 0x1f 0x1b 12390xac 0x7d 0xe 0x9b 12400xff 0x7d 0x10 0x9b 12410xf1 0x7f 0x12 0x9b 12420x93 0x7e 0x1f 0x9b 1243 1244# CHECK: mneg w21, w22, w23 1245# CHECK: mneg wzr, w24, w25 1246# CHECK: mneg w26, wzr, w27 1247# CHECK: mneg w28, w29, wzr 12480xd5 0xfe 0x17 0x1b 12490x1f 0xff 0x19 0x1b 12500xfa 0xff 0x1b 0x1b 12510xbc 0xff 0x1f 0x1b 1252 1253# CHECK: smull x11, w13, w17 1254# CHECK: umull x11, w13, w17 1255# CHECK: smnegl x11, w13, w17 1256# CHECK: umnegl x11, w13, w17 12570xab 0x7d 0x31 0x9b 12580xab 0x7d 0xb1 0x9b 12590xab 0xfd 0x31 0x9b 12600xab 0xfd 0xb1 0x9b 1261 1262#------------------------------------------------------------------------------ 1263# Exception generation 1264#------------------------------------------------------------------------------ 1265 1266# CHECK: svc #0 1267# CHECK: svc #{{65535|0xffff}} 12680x1 0x0 0x0 0xd4 12690xe1 0xff 0x1f 0xd4 1270 1271# CHECK: hvc #{{1|0x1}} 1272# CHECK: smc #{{12000|0x2ee0}} 1273# CHECK: brk #{{12|0xc}} 1274# CHECK: hlt #{{123|0x7b}} 12750x22 0x0 0x0 0xd4 12760x3 0xdc 0x5 0xd4 12770x80 0x1 0x20 0xd4 12780x60 0xf 0x40 0xd4 1279 1280# CHECK: dcps1 #{{42|0x2a}} 1281# CHECK: dcps2 #{{9|0x9}} 1282# CHECK: dcps3 #{{1000|0x3e8}} 12830x41 0x5 0xa0 0xd4 12840x22 0x1 0xa0 0xd4 12850x3 0x7d 0xa0 0xd4 1286 1287# CHECK: dcps1 1288# CHECK: dcps2 1289# CHECK: dcps3 12900x1 0x0 0xa0 0xd4 12910x2 0x0 0xa0 0xd4 12920x3 0x0 0xa0 0xd4 1293 1294#------------------------------------------------------------------------------ 1295# Extract (immediate) 1296#------------------------------------------------------------------------------ 1297 1298# CHECK: extr w3, w5, w7, #0 1299# CHECK: extr w11, w13, w17, #31 13000xa3 0x0 0x87 0x13 13010xab 0x7d 0x91 0x13 1302 1303# CHECK: extr x3, x5, x7, #15 1304# CHECK: extr x11, x13, x17, #63 13050xa3 0x3c 0xc7 0x93 13060xab 0xfd 0xd1 0x93 1307 1308# CHECK: ror x19, x23, #24 1309# CHECK: ror x29, xzr, #63 1310# CHECK: ror w9, w13, #31 13110xf3 0x62 0xd7 0x93 13120xfd 0xff 0xdf 0x93 13130xa9 0x7d 0x8d 0x13 1314 1315#------------------------------------------------------------------------------ 1316# Floating-point compare 1317#------------------------------------------------------------------------------ 1318 1319# CHECK: fcmp s3, s5 1320# CHECK: fcmp s31, #0.0 1321# CHECK: fcmp s31, #0.0 13220x60 0x20 0x25 0x1e 13230xe8 0x23 0x20 0x1e 13240xe8 0x23 0x3f 0x1e 1325 1326# CHECK: fcmpe s29, s30 1327# CHECK: fcmpe s15, #0.0 1328# CHECK: fcmpe s15, #0.0 13290xb0 0x23 0x3e 0x1e 13300xf8 0x21 0x20 0x1e 13310xf8 0x21 0x2f 0x1e 1332 1333# CHECK: fcmp d4, d12 1334# CHECK: fcmp d23, #0.0 1335# CHECK: fcmp d23, #0.0 13360x80 0x20 0x6c 0x1e 13370xe8 0x22 0x60 0x1e 13380xe8 0x22 0x77 0x1e 1339 1340# CHECK: fcmpe d26, d22 1341# CHECK: fcmpe d29, #0.0 1342# CHECK: fcmpe d29, #0.0 13430x50 0x23 0x76 0x1e 13440xb8 0x23 0x60 0x1e 13450xb8 0x23 0x6d 0x1e 1346 1347#------------------------------------------------------------------------------ 1348# Floating-point conditional compare 1349#------------------------------------------------------------------------------ 1350 1351# CHECK: fccmp s1, s31, #0, eq 1352# CHECK: fccmp s3, s0, #15, hs 1353# CHECK: fccmp s31, s15, #13, hs 13540x20 0x04 0x3f 0x1e 13550x6f 0x24 0x20 0x1e 13560xed 0x27 0x2f 0x1e 1357 1358# CHECK: fccmp d9, d31, #0, le 1359# CHECK: fccmp d3, d0, #15, gt 1360# CHECK: fccmp d31, d5, #7, ne 13610x20 0xd5 0x7f 0x1e 13620x6f 0xc4 0x60 0x1e 13630xe7 0x17 0x65 0x1e 1364 1365# CHECK: fccmpe s1, s31, #0, eq 1366# CHECK: fccmpe s3, s0, #15, hs 1367# CHECK: fccmpe s31, s15, #13, hs 13680x30 0x04 0x3f 0x1e 13690x7f 0x24 0x20 0x1e 13700xfd 0x27 0x2f 0x1e 1371 1372# CHECK: fccmpe d9, d31, #0, le 1373# CHECK: fccmpe d3, d0, #15, gt 1374# CHECK: fccmpe d31, d5, #7, ne 13750x30 0xd5 0x7f 0x1e 13760x7f 0xc4 0x60 0x1e 13770xf7 0x17 0x65 0x1e 1378 1379#------------------------------------------------------------------------------- 1380# Floating-point conditional compare 1381#------------------------------------------------------------------------------- 1382 1383# CHECK: fcsel s3, s20, s9, pl 1384# CHECK: fcsel d9, d10, d11, mi 13850x83 0x5e 0x29 0x1e 13860x49 0x4d 0x6b 0x1e 1387 1388#------------------------------------------------------------------------------ 1389# Floating-point data-processing (1 source) 1390#------------------------------------------------------------------------------ 1391 1392# CHECK: fmov s0, s1 1393# CHECK: fabs s2, s3 1394# CHECK: fneg s4, s5 1395# CHECK: fsqrt s6, s7 1396# CHECK: fcvt d8, s9 1397# CHECK: fcvt h10, s11 1398# CHECK: frintn s12, s13 1399# CHECK: frintp s14, s15 1400# CHECK: frintm s16, s17 1401# CHECK: frintz s18, s19 1402# CHECK: frinta s20, s21 1403# CHECK: frintx s22, s23 1404# CHECK: frinti s24, s25 14050x20 0x40 0x20 0x1e 14060x62 0xc0 0x20 0x1e 14070xa4 0x40 0x21 0x1e 14080xe6 0xc0 0x21 0x1e 14090x28 0xc1 0x22 0x1e 14100x6a 0xc1 0x23 0x1e 14110xac 0x41 0x24 0x1e 14120xee 0xc1 0x24 0x1e 14130x30 0x42 0x25 0x1e 14140x72 0xc2 0x25 0x1e 14150xb4 0x42 0x26 0x1e 14160xf6 0x42 0x27 0x1e 14170x38 0xc3 0x27 0x1e 1418 1419# CHECK: fmov d0, d1 1420# CHECK: fabs d2, d3 1421# CHECK: fneg d4, d5 1422# CHECK: fsqrt d6, d7 1423# CHECK: fcvt s8, d9 1424# CHECK: fcvt h10, d11 1425# CHECK: frintn d12, d13 1426# CHECK: frintp d14, d15 1427# CHECK: frintm d16, d17 1428# CHECK: frintz d18, d19 1429# CHECK: frinta d20, d21 1430# CHECK: frintx d22, d23 1431# CHECK: frinti d24, d25 14320x20 0x40 0x60 0x1e 14330x62 0xc0 0x60 0x1e 14340xa4 0x40 0x61 0x1e 14350xe6 0xc0 0x61 0x1e 14360x28 0x41 0x62 0x1e 14370x6a 0xc1 0x63 0x1e 14380xac 0x41 0x64 0x1e 14390xee 0xc1 0x64 0x1e 14400x30 0x42 0x65 0x1e 14410x72 0xc2 0x65 0x1e 14420xb4 0x42 0x66 0x1e 14430xf6 0x42 0x67 0x1e 14440x38 0xc3 0x67 0x1e 1445 1446# CHECK: fcvt s26, h27 1447# CHECK: fcvt d28, h29 14480x7a 0x43 0xe2 0x1e 14490xbc 0xc3 0xe2 0x1e 1450 1451#------------------------------------------------------------------------------ 1452# Floating-point data-processing (2 sources) 1453#------------------------------------------------------------------------------ 1454 1455# CHECK: fmul s20, s19, s17 1456# CHECK: fdiv s1, s2, s3 1457# CHECK: fadd s4, s5, s6 1458# CHECK: fsub s7, s8, s9 1459# CHECK: fmax s10, s11, s12 1460# CHECK: fmin s13, s14, s15 1461# CHECK: fmaxnm s16, s17, s18 1462# CHECK: fminnm s19, s20, s21 1463# CHECK: fnmul s22, s23, s2 14640x74 0xa 0x31 0x1e 14650x41 0x18 0x23 0x1e 14660xa4 0x28 0x26 0x1e 14670x7 0x39 0x29 0x1e 14680x6a 0x49 0x2c 0x1e 14690xcd 0x59 0x2f 0x1e 14700x30 0x6a 0x32 0x1e 14710x93 0x7a 0x35 0x1e 14720xf6 0x8a 0x38 0x1e 1473 1474 1475# CHECK: fmul d20, d19, d17 1476# CHECK: fdiv d1, d2, d3 1477# CHECK: fadd d4, d5, d6 1478# CHECK: fsub d7, d8, d9 1479# CHECK: fmax d10, d11, d12 1480# CHECK: fmin d13, d14, d15 1481# CHECK: fmaxnm d16, d17, d18 1482# CHECK: fminnm d19, d20, d21 1483# CHECK: fnmul d22, d23, d24 14840x74 0xa 0x71 0x1e 14850x41 0x18 0x63 0x1e 14860xa4 0x28 0x66 0x1e 14870x7 0x39 0x69 0x1e 14880x6a 0x49 0x6c 0x1e 14890xcd 0x59 0x6f 0x1e 14900x30 0x6a 0x72 0x1e 14910x93 0x7a 0x75 0x1e 14920xf6 0x8a 0x78 0x1e 1493 1494#------------------------------------------------------------------------------ 1495# Floating-point data-processing (1 source) 1496#------------------------------------------------------------------------------ 1497 1498# CHECK: fmadd s3, s5, s6, s31 1499# CHECK: fmadd d3, d13, d0, d23 1500# CHECK: fmsub s3, s5, s6, s31 1501# CHECK: fmsub d3, d13, d0, d23 1502# CHECK: fnmadd s3, s5, s6, s31 1503# CHECK: fnmadd d3, d13, d0, d23 1504# CHECK: fnmsub s3, s5, s6, s31 1505# CHECK: fnmsub d3, d13, d0, d23 15060xa3 0x7c 0x06 0x1f 15070xa3 0x5d 0x40 0x1f 15080xa3 0xfc 0x06 0x1f 15090xa3 0xdd 0x40 0x1f 15100xa3 0x7c 0x26 0x1f 15110xa3 0x5d 0x60 0x1f 15120xa3 0xfc 0x26 0x1f 15130xa3 0xdd 0x60 0x1f 1514 1515#------------------------------------------------------------------------------ 1516# Floating-point <-> fixed-point conversion 1517#------------------------------------------------------------------------------ 1518 1519# CHECK: fcvtzs w3, s5, #1 1520# CHECK: fcvtzs wzr, s20, #13 1521# CHECK: fcvtzs w19, s0, #32 15220xa3 0xfc 0x18 0x1e 15230x9f 0xce 0x18 0x1e 15240x13 0x80 0x18 0x1e 1525 1526# CHECK: fcvtzs x3, s5, #1 1527# CHECK: fcvtzs x12, s30, #45 1528# CHECK: fcvtzs x19, s0, #64 15290xa3 0xfc 0x18 0x9e 15300xcc 0x4f 0x18 0x9e 15310x13 0x00 0x18 0x9e 1532 1533# CHECK: fcvtzs w3, d5, #1 1534# CHECK: fcvtzs wzr, d20, #13 1535# CHECK: fcvtzs w19, d0, #32 15360xa3 0xfc 0x58 0x1e 15370x9f 0xce 0x58 0x1e 15380x13 0x80 0x58 0x1e 1539 1540# CHECK: fcvtzs x3, d5, #1 1541# CHECK: fcvtzs x12, d30, #45 1542# CHECK: fcvtzs x19, d0, #64 15430xa3 0xfc 0x58 0x9e 15440xcc 0x4f 0x58 0x9e 15450x13 0x00 0x58 0x9e 1546 1547# CHECK: fcvtzu w3, s5, #1 1548# CHECK: fcvtzu wzr, s20, #13 1549# CHECK: fcvtzu w19, s0, #32 15500xa3 0xfc 0x19 0x1e 15510x9f 0xce 0x19 0x1e 15520x13 0x80 0x19 0x1e 1553 1554# CHECK: fcvtzu x3, s5, #1 1555# CHECK: fcvtzu x12, s30, #45 1556# CHECK: fcvtzu x19, s0, #64 15570xa3 0xfc 0x19 0x9e 15580xcc 0x4f 0x19 0x9e 15590x13 0x00 0x19 0x9e 1560 1561# CHECK: fcvtzu w3, d5, #1 1562# CHECK: fcvtzu wzr, d20, #13 1563# CHECK: fcvtzu w19, d0, #32 15640xa3 0xfc 0x59 0x1e 15650x9f 0xce 0x59 0x1e 15660x13 0x80 0x59 0x1e 1567 1568# CHECK: fcvtzu x3, d5, #1 1569# CHECK: fcvtzu x12, d30, #45 1570# CHECK: fcvtzu x19, d0, #64 15710xa3 0xfc 0x59 0x9e 15720xcc 0x4f 0x59 0x9e 15730x13 0x00 0x59 0x9e 1574 1575# CHECK: scvtf s23, w19, #1 1576# CHECK: scvtf s31, wzr, #20 1577# CHECK: scvtf s14, w0, #32 15780x77 0xfe 0x02 0x1e 15790xff 0xb3 0x02 0x1e 15800x0e 0x80 0x02 0x1e 1581 1582# CHECK: scvtf s23, x19, #1 1583# CHECK: scvtf s31, xzr, #20 1584# CHECK: scvtf s14, x0, #64 15850x77 0xfe 0x02 0x9e 15860xff 0xb3 0x02 0x9e 15870x0e 0x00 0x02 0x9e 1588 1589# CHECK: scvtf d23, w19, #1 1590# CHECK: scvtf d31, wzr, #20 1591# CHECK: scvtf d14, w0, #32 15920x77 0xfe 0x42 0x1e 15930xff 0xb3 0x42 0x1e 15940x0e 0x80 0x42 0x1e 1595 1596# CHECK: scvtf d23, x19, #1 1597# CHECK: scvtf d31, xzr, #20 1598# CHECK: scvtf d14, x0, #64 15990x77 0xfe 0x42 0x9e 16000xff 0xb3 0x42 0x9e 16010x0e 0x00 0x42 0x9e 1602 1603# CHECK: ucvtf s23, w19, #1 1604# CHECK: ucvtf s31, wzr, #20 1605# CHECK: ucvtf s14, w0, #32 16060x77 0xfe 0x03 0x1e 16070xff 0xb3 0x03 0x1e 16080x0e 0x80 0x03 0x1e 1609 1610# CHECK: ucvtf s23, x19, #1 1611# CHECK: ucvtf s31, xzr, #20 1612# CHECK: ucvtf s14, x0, #64 16130x77 0xfe 0x03 0x9e 16140xff 0xb3 0x03 0x9e 16150x0e 0x00 0x03 0x9e 1616 1617# CHECK: ucvtf d23, w19, #1 1618# CHECK: ucvtf d31, wzr, #20 1619# CHECK: ucvtf d14, w0, #32 16200x77 0xfe 0x43 0x1e 16210xff 0xb3 0x43 0x1e 16220x0e 0x80 0x43 0x1e 1623 1624# CHECK: ucvtf d23, x19, #1 1625# CHECK: ucvtf d31, xzr, #20 1626# CHECK: ucvtf d14, x0, #64 16270x77 0xfe 0x43 0x9e 16280xff 0xb3 0x43 0x9e 16290x0e 0x00 0x43 0x9e 1630 1631#------------------------------------------------------------------------------ 1632# Floating-point <-> integer conversion 1633#------------------------------------------------------------------------------ 1634# CHECK: fcvtns w3, s31 1635# CHECK: fcvtns xzr, s12 1636# CHECK: fcvtnu wzr, s12 1637# CHECK: fcvtnu x0, s0 16380xe3 0x3 0x20 0x1e 16390x9f 0x1 0x20 0x9e 16400x9f 0x1 0x21 0x1e 16410x0 0x0 0x21 0x9e 1642 1643# CHECK: fcvtps wzr, s9 1644# CHECK: fcvtps x12, s20 1645# CHECK: fcvtpu w30, s23 1646# CHECK: fcvtpu x29, s3 16470x3f 0x1 0x28 0x1e 16480x8c 0x2 0x28 0x9e 16490xfe 0x2 0x29 0x1e 16500x7d 0x0 0x29 0x9e 1651 1652# CHECK: fcvtms w2, s3 1653# CHECK: fcvtms x4, s5 1654# CHECK: fcvtmu w6, s7 1655# CHECK: fcvtmu x8, s9 16560x62 0x0 0x30 0x1e 16570xa4 0x0 0x30 0x9e 16580xe6 0x0 0x31 0x1e 16590x28 0x1 0x31 0x9e 1660 1661# CHECK: fcvtzs w10, s11 1662# CHECK: fcvtzs x12, s13 1663# CHECK: fcvtzu w14, s15 1664# CHECK: fcvtzu x15, s16 16650x6a 0x1 0x38 0x1e 16660xac 0x1 0x38 0x9e 16670xee 0x1 0x39 0x1e 16680xf 0x2 0x39 0x9e 1669 1670# CHECK: scvtf s17, w18 1671# CHECK: scvtf s19, x20 1672# CHECK: ucvtf s21, w22 1673# CHECK: scvtf s23, x24 16740x51 0x2 0x22 0x1e 16750x93 0x2 0x22 0x9e 16760xd5 0x2 0x23 0x1e 16770x17 0x3 0x22 0x9e 1678 1679# CHECK: fcvtas w25, s26 1680# CHECK: fcvtas x27, s28 1681# CHECK: fcvtau w29, s30 1682# CHECK: fcvtau xzr, s0 16830x59 0x3 0x24 0x1e 16840x9b 0x3 0x24 0x9e 16850xdd 0x3 0x25 0x1e 16860x1f 0x0 0x25 0x9e 1687 1688# CHECK: fcvtns w3, d31 1689# CHECK: fcvtns xzr, d12 1690# CHECK: fcvtnu wzr, d12 1691# CHECK: fcvtnu x0, d0 16920xe3 0x3 0x60 0x1e 16930x9f 0x1 0x60 0x9e 16940x9f 0x1 0x61 0x1e 16950x0 0x0 0x61 0x9e 1696 1697# CHECK: fcvtps wzr, d9 1698# CHECK: fcvtps x12, d20 1699# CHECK: fcvtpu w30, d23 1700# CHECK: fcvtpu x29, d3 17010x3f 0x1 0x68 0x1e 17020x8c 0x2 0x68 0x9e 17030xfe 0x2 0x69 0x1e 17040x7d 0x0 0x69 0x9e 1705 1706# CHECK: fcvtms w2, d3 1707# CHECK: fcvtms x4, d5 1708# CHECK: fcvtmu w6, d7 1709# CHECK: fcvtmu x8, d9 17100x62 0x0 0x70 0x1e 17110xa4 0x0 0x70 0x9e 17120xe6 0x0 0x71 0x1e 17130x28 0x1 0x71 0x9e 1714 1715# CHECK: fcvtzs w10, d11 1716# CHECK: fcvtzs x12, d13 1717# CHECK: fcvtzu w14, d15 1718# CHECK: fcvtzu x15, d16 17190x6a 0x1 0x78 0x1e 17200xac 0x1 0x78 0x9e 17210xee 0x1 0x79 0x1e 17220xf 0x2 0x79 0x9e 1723 1724# CHECK: scvtf d17, w18 1725# CHECK: scvtf d19, x20 1726# CHECK: ucvtf d21, w22 1727# CHECK: ucvtf d23, x24 17280x51 0x2 0x62 0x1e 17290x93 0x2 0x62 0x9e 17300xd5 0x2 0x63 0x1e 17310x17 0x3 0x63 0x9e 1732 1733# CHECK: fcvtas w25, d26 1734# CHECK: fcvtas x27, d28 1735# CHECK: fcvtau w29, d30 1736# CHECK: fcvtau xzr, d0 17370x59 0x3 0x64 0x1e 17380x9b 0x3 0x64 0x9e 17390xdd 0x3 0x65 0x1e 17400x1f 0x0 0x65 0x9e 1741 1742# CHECK: fmov w3, s9 1743# CHECK: fmov s9, w3 17440x23 0x1 0x26 0x1e 17450x69 0x0 0x27 0x1e 1746 1747# CHECK: fmov x20, d31 1748# CHECK: fmov d1, x15 17490xf4 0x3 0x66 0x9e 17500xe1 0x1 0x67 0x9e 1751 1752# CHECK: fmov x3, v12.d[1] 1753# CHECK: fmov v1.d[1], x19 17540x83 0x1 0xae 0x9e 17550x61 0x2 0xaf 0x9e 1756 1757#------------------------------------------------------------------------------ 1758# Floating-point immediate 1759#------------------------------------------------------------------------------ 1760 1761# CHECK: fmov s2, #0.12500000 1762# CHECK: fmov s3, #1.00000000 1763# CHECK: fmov d30, #16.00000000 17640x2 0x10 0x28 0x1e 17650x3 0x10 0x2e 0x1e 17660x1e 0x10 0x66 0x1e 1767 1768# CHECK: fmov s4, #1.06250000 1769# CHECK: fmov d10, #1.93750000 17700x4 0x30 0x2e 0x1e 17710xa 0xf0 0x6f 0x1e 1772 1773# CHECK: fmov s12, #-1.00000000 17740xc 0x10 0x3e 0x1e 1775 1776# CHECK: fmov d16, #8.50000000 17770x10 0x30 0x64 0x1e 1778 1779#------------------------------------------------------------------------------ 1780# Load-register (literal) 1781#------------------------------------------------------------------------------ 1782 1783# CHECK: ldr w3, #0 1784# CHECK: ldr x29, #4 1785# CHECK: ldrsw xzr, #-4 17860x03 0x00 0x00 0x18 17870x3d 0x00 0x00 0x58 17880xff 0xff 0xff 0x98 1789 1790# CHECK: ldr s0, #8 1791# CHECK: ldr d0, #1048572 1792# CHECK: ldr q0, #-1048576 17930x40 0x00 0x00 0x1c 17940xe0 0xff 0x7f 0x5c 17950x00 0x00 0x80 0x9c 1796 1797# CHECK: prfm pldl1strm, #0 1798# CHECK: prfm #22, #0 17990x01 0x00 0x00 0xd8 18000x16 0x00 0x00 0xd8 1801 1802#------------------------------------------------------------------------------ 1803# Load/store exclusive 1804#------------------------------------------------------------------------------ 1805 1806#CHECK: stxrb w18, w8, [sp] 1807#CHECK: stxrh w24, w15, [x16] 1808#CHECK: stxr w5, w6, [x17] 1809#CHECK: stxr w1, x10, [x21] 1810#CHECK: stxr w1, x10, [x21] 18110xe8 0x7f 0x12 0x08 18120x0f 0x7e 0x18 0x48 18130x26 0x7e 0x05 0x88 18140xaa 0x7e 0x01 0xc8 18150xaa 0x7a 0x01 0xc8 1816 1817#CHECK: ldxrb w30, [x0] 1818#CHECK: ldxrh w17, [x4] 1819#CHECK: ldxr w22, [sp] 1820#CHECK: ldxr x11, [x29] 1821#CHECK: ldxr x11, [x29] 1822#CHECK: ldxr x11, [x29] 18230x1e 0x7c 0x5f 0x08 18240x91 0x7c 0x5f 0x48 18250xf6 0x7f 0x5f 0x88 18260xab 0x7f 0x5f 0xc8 18270xab 0x6f 0x5f 0xc8 18280xab 0x7f 0x5e 0xc8 1829 1830#CHECK: stxp w12, w11, w10, [sp] 1831#CHECK: stxp wzr, x27, x9, [x12] 18320xeb 0x2b 0x2c 0x88 18330x9b 0x25 0x3f 0xc8 1834 1835#CHECK: ldxp w0, wzr, [sp] 1836#CHECK: ldxp x17, x0, [x18] 1837#CHECK: ldxp x17, x0, [x18] 18380xe0 0x7f 0x7f 0x88 18390x51 0x02 0x7f 0xc8 18400x51 0x02 0x7e 0xc8 1841 1842#CHECK: stlxrb w12, w22, [x0] 1843#CHECK: stlxrh w10, w1, [x1] 1844#CHECK: stlxr w9, w2, [x2] 1845#CHECK: stlxr w9, x3, [sp] 1846 18470x16 0xfc 0x0c 0x08 18480x21 0xfc 0x0a 0x48 18490x42 0xfc 0x09 0x88 18500xe3 0xff 0x09 0xc8 1851 1852#CHECK: ldaxrb w8, [x4] 1853#CHECK: ldaxrh w7, [x5] 1854#CHECK: ldaxr w6, [sp] 1855#CHECK: ldaxr x5, [x6] 1856#CHECK: ldaxr x5, [x6] 1857#CHECK: ldaxr x5, [x6] 18580x88 0xfc 0x5f 0x08 18590xa7 0xfc 0x5f 0x48 18600xe6 0xff 0x5f 0x88 18610xc5 0xfc 0x5f 0xc8 18620xc5 0xec 0x5f 0xc8 18630xc5 0xfc 0x5e 0xc8 1864 1865#CHECK: stlxp w4, w5, w6, [sp] 1866#CHECK: stlxp wzr, x6, x7, [x1] 18670xe5 0x9b 0x24 0x88 18680x26 0x9c 0x3f 0xc8 1869 1870#CHECK: ldaxp w5, w18, [sp] 1871#CHECK: ldaxp x6, x19, [x22] 1872#CHECK: ldaxp x6, x19, [x22] 18730xe5 0xcb 0x7f 0x88 18740xc6 0xce 0x7f 0xc8 18750xc6 0xce 0x7e 0xc8 1876 1877#CHECK: stlrb w24, [sp] 1878#CHECK: stlrh w25, [x30] 1879#CHECK: stlr w26, [x29] 1880#CHECK: stlr x27, [x28] 1881#CHECK: stlr x27, [x28] 1882#CHECK: stlr x27, [x28] 18830xf8 0xff 0x9f 0x08 18840xd9 0xff 0x9f 0x48 18850xba 0xff 0x9f 0x88 18860x9b 0xff 0x9f 0xc8 18870x9b 0xef 0x9f 0xc8 18880x9b 0xff 0x9e 0xc8 1889 1890#CHECK: ldarb w23, [sp] 1891#CHECK: ldarh w22, [x30] 1892#CHECK: ldar wzr, [x29] 1893#CHECK: ldar x21, [x28] 1894#CHECK: ldar x21, [x28] 1895#CHECK: ldar x21, [x28] 18960xf7 0xff 0xdf 0x08 18970xd6 0xff 0xdf 0x48 18980xbf 0xff 0xdf 0x88 18990x95 0xff 0xdf 0xc8 19000x95 0xef 0xdf 0xc8 19010x95 0xff 0xde 0xc8 1902 1903#------------------------------------------------------------------------------ 1904# Load/store (unscaled immediate) 1905#------------------------------------------------------------------------------ 1906 1907# CHECK: sturb w9, [sp] 1908# CHECK: sturh wzr, [x12, #255] 1909# CHECK: stur w16, [x0, #-256] 1910# CHECK: stur x28, [x14, #1] 19110xe9 0x3 0x0 0x38 19120x9f 0xf1 0xf 0x78 19130x10 0x0 0x10 0xb8 19140xdc 0x11 0x0 0xf8 1915 1916# CHECK: ldurb w1, [x20, #255] 1917# CHECK: ldurh w20, [x1, #255] 1918# CHECK: ldur w12, [sp, #255] 1919# CHECK: ldur xzr, [x12, #255] 19200x81 0xf2 0x4f 0x38 19210x34 0xf0 0x4f 0x78 19220xec 0xf3 0x4f 0xb8 19230x9f 0xf1 0x4f 0xf8 1924 1925# CHECK: ldursb x9, [x7, #-256] 1926# CHECK: ldursh x17, [x19, #-256] 1927# CHECK: ldursw x20, [x15, #-256] 1928# CHECK: prfum pldl2keep, [sp, #-256] 1929# CHECK: ldursb w19, [x1, #-256] 1930# CHECK: ldursh w15, [x21, #-256] 19310xe9 0x0 0x90 0x38 19320x71 0x2 0x90 0x78 19330xf4 0x1 0x90 0xb8 19340xe2 0x3 0x90 0xf8 19350x33 0x0 0xd0 0x38 19360xaf 0x2 0xd0 0x78 1937 1938# CHECK: stur b0, [sp, #1] 1939# CHECK: stur h12, [x12, #-1] 1940# CHECK: stur s15, [x0, #255] 1941# CHECK: stur d31, [x5, #25] 1942# CHECK: stur q9, [x5] 19430xe0 0x13 0x0 0x3c 19440x8c 0xf1 0x1f 0x7c 19450xf 0xf0 0xf 0xbc 19460xbf 0x90 0x1 0xfc 19470xa9 0x0 0x80 0x3c 1948 1949# CHECK: ldur b3, [sp] 1950# CHECK: ldur h5, [x4, #-256] 1951# CHECK: ldur s7, [x12, #-1] 1952# CHECK: ldur d11, [x19, #4] 1953# CHECK: ldur q13, [x1, #2] 19540xe3 0x3 0x40 0x3c 19550x85 0x0 0x50 0x7c 19560x87 0xf1 0x5f 0xbc 19570x6b 0x42 0x40 0xfc 19580x2d 0x20 0xc0 0x3c 1959 1960#------------------------------------------------------------------------------ 1961# Load/store (immediate post-indexed) 1962#------------------------------------------------------------------------------ 1963 1964# E.g. "str xzr, [sp], #4" is *not* unpredictable 1965# CHECK-NOT: warning: potentially undefined instruction encoding 19660xff 0x47 0x40 0xb8 1967 1968# CHECK: strb w9, [x2], #255 1969# CHECK: strb w10, [x3], #1 1970# CHECK: strb w10, [x3], #-256 1971# CHECK: strh w9, [x2], #255 1972# CHECK: strh w9, [x2], #1 1973# CHECK: strh w10, [x3], #-256 19740x49 0xf4 0xf 0x38 19750x6a 0x14 0x0 0x38 19760x6a 0x4 0x10 0x38 19770x49 0xf4 0xf 0x78 19780x49 0x14 0x0 0x78 19790x6a 0x4 0x10 0x78 1980 1981# CHECK: str w19, [sp], #255 1982# CHECK: str w20, [x30], #1 1983# CHECK: str w21, [x12], #-256 1984# CHECK: str xzr, [x9], #255 1985# CHECK: str x2, [x3], #1 1986# CHECK: str x19, [x12], #-256 19870xf3 0xf7 0xf 0xb8 19880xd4 0x17 0x0 0xb8 19890x95 0x5 0x10 0xb8 19900x3f 0xf5 0xf 0xf8 19910x62 0x14 0x0 0xf8 19920x93 0x5 0x10 0xf8 1993 1994# CHECK: ldrb w9, [x2], #255 1995# CHECK: ldrb w10, [x3], #1 1996# CHECK: ldrb w10, [x3], #-256 1997# CHECK: ldrh w9, [x2], #255 1998# CHECK: ldrh w9, [x2], #1 1999# CHECK: ldrh w10, [x3], #-256 20000x49 0xf4 0x4f 0x38 20010x6a 0x14 0x40 0x38 20020x6a 0x4 0x50 0x38 20030x49 0xf4 0x4f 0x78 20040x49 0x14 0x40 0x78 20050x6a 0x4 0x50 0x78 2006 2007# CHECK: ldr w19, [sp], #255 2008# CHECK: ldr w20, [x30], #1 2009# CHECK: ldr w21, [x12], #-256 2010# CHECK: ldr xzr, [x9], #255 2011# CHECK: ldr x2, [x3], #1 2012# CHECK: ldr x19, [x12], #-256 20130xf3 0xf7 0x4f 0xb8 20140xd4 0x17 0x40 0xb8 20150x95 0x5 0x50 0xb8 20160x3f 0xf5 0x4f 0xf8 20170x62 0x14 0x40 0xf8 20180x93 0x5 0x50 0xf8 2019 2020# CHECK: ldrsb xzr, [x9], #255 2021# CHECK: ldrsb x2, [x3], #1 2022# CHECK: ldrsb x19, [x12], #-256 2023# CHECK: ldrsh xzr, [x9], #255 2024# CHECK: ldrsh x2, [x3], #1 2025# CHECK: ldrsh x19, [x12], #-256 2026# CHECK: ldrsw xzr, [x9], #255 2027# CHECK: ldrsw x2, [x3], #1 2028# CHECK: ldrsw x19, [x12], #-256 20290x3f 0xf5 0x8f 0x38 20300x62 0x14 0x80 0x38 20310x93 0x5 0x90 0x38 20320x3f 0xf5 0x8f 0x78 20330x62 0x14 0x80 0x78 20340x93 0x5 0x90 0x78 20350x3f 0xf5 0x8f 0xb8 20360x62 0x14 0x80 0xb8 20370x93 0x5 0x90 0xb8 2038 2039# CHECK: ldrsb wzr, [x9], #255 2040# CHECK: ldrsb w2, [x3], #1 2041# CHECK: ldrsb w19, [x12], #-256 2042# CHECK: ldrsh wzr, [x9], #255 2043# CHECK: ldrsh w2, [x3], #1 2044# CHECK: ldrsh w19, [x12], #-256 20450x3f 0xf5 0xcf 0x38 20460x62 0x14 0xc0 0x38 20470x93 0x5 0xd0 0x38 20480x3f 0xf5 0xcf 0x78 20490x62 0x14 0xc0 0x78 20500x93 0x5 0xd0 0x78 2051 2052# CHECK: str b0, [x0], #255 2053# CHECK: str b3, [x3], #1 2054# CHECK: str b5, [sp], #-256 2055# CHECK: str h10, [x10], #255 2056# CHECK: str h13, [x23], #1 2057# CHECK: str h15, [sp], #-256 2058# CHECK: str s20, [x20], #255 2059# CHECK: str s23, [x23], #1 2060# CHECK: str s25, [x0], #-256 2061# CHECK: str d20, [x20], #255 2062# CHECK: str d23, [x23], #1 2063# CHECK: str d25, [x0], #-256 20640x0 0xf4 0xf 0x3c 20650x63 0x14 0x0 0x3c 20660xe5 0x7 0x10 0x3c 20670x4a 0xf5 0xf 0x7c 20680xed 0x16 0x0 0x7c 20690xef 0x7 0x10 0x7c 20700x94 0xf6 0xf 0xbc 20710xf7 0x16 0x0 0xbc 20720x19 0x4 0x10 0xbc 20730x94 0xf6 0xf 0xfc 20740xf7 0x16 0x0 0xfc 20750x19 0x4 0x10 0xfc 2076 2077# CHECK: ldr b0, [x0], #255 2078# CHECK: ldr b3, [x3], #1 2079# CHECK: ldr b5, [sp], #-256 2080# CHECK: ldr h10, [x10], #255 2081# CHECK: ldr h13, [x23], #1 2082# CHECK: ldr h15, [sp], #-256 2083# CHECK: ldr s20, [x20], #255 2084# CHECK: ldr s23, [x23], #1 2085# CHECK: ldr s25, [x0], #-256 2086# CHECK: ldr d20, [x20], #255 2087# CHECK: ldr d23, [x23], #1 2088# CHECK: ldr d25, [x0], #-256 20890x0 0xf4 0x4f 0x3c 20900x63 0x14 0x40 0x3c 20910xe5 0x7 0x50 0x3c 20920x4a 0xf5 0x4f 0x7c 20930xed 0x16 0x40 0x7c 20940xef 0x7 0x50 0x7c 20950x94 0xf6 0x4f 0xbc 20960xf7 0x16 0x40 0xbc 20970x19 0x4 0x50 0xbc 20980x94 0xf6 0x4f 0xfc 20990xf7 0x16 0x40 0xfc 21000x19 0x4 0x50 0xfc 21010x34 0xf4 0xcf 0x3c 2102 2103# CHECK: ldr q20, [x1], #255 2104# CHECK: ldr q23, [x9], #1 2105# CHECK: ldr q25, [x20], #-256 2106# CHECK: str q10, [x1], #255 2107# CHECK: str q22, [sp], #1 2108# CHECK: str q21, [x20], #-256 21090x37 0x15 0xc0 0x3c 21100x99 0x6 0xd0 0x3c 21110x2a 0xf4 0x8f 0x3c 21120xf6 0x17 0x80 0x3c 21130x95 0x6 0x90 0x3c 2114 2115#------------------------------------------------------------------------------- 2116# Load-store register (immediate pre-indexed) 2117#------------------------------------------------------------------------------- 2118 2119# E.g. "str xzr, [sp, #4]!" is *not* unpredictable 2120# CHECK-NOT: warning: potentially undefined instruction encoding 21210xff 0xf 0x40 0xf8 2122 2123# CHECK: ldr x3, [x4, #0]! 21240x83 0xc 0x40 0xf8 2125 2126# CHECK: strb w9, [x2, #255]! 2127# CHECK: strb w10, [x3, #1]! 2128# CHECK: strb w10, [x3, #-256]! 2129# CHECK: strh w9, [x2, #255]! 2130# CHECK: strh w9, [x2, #1]! 2131# CHECK: strh w10, [x3, #-256]! 21320x49 0xfc 0xf 0x38 21330x6a 0x1c 0x0 0x38 21340x6a 0xc 0x10 0x38 21350x49 0xfc 0xf 0x78 21360x49 0x1c 0x0 0x78 21370x6a 0xc 0x10 0x78 2138 2139# CHECK: str w19, [sp, #255]! 2140# CHECK: str w20, [x30, #1]! 2141# CHECK: str w21, [x12, #-256]! 2142# CHECK: str xzr, [x9, #255]! 2143# CHECK: str x2, [x3, #1]! 2144# CHECK: str x19, [x12, #-256]! 21450xf3 0xff 0xf 0xb8 21460xd4 0x1f 0x0 0xb8 21470x95 0xd 0x10 0xb8 21480x3f 0xfd 0xf 0xf8 21490x62 0x1c 0x0 0xf8 21500x93 0xd 0x10 0xf8 2151 2152# CHECK: ldrb w9, [x2, #255]! 2153# CHECK: ldrb w10, [x3, #1]! 2154# CHECK: ldrb w10, [x3, #-256]! 2155# CHECK: ldrh w9, [x2, #255]! 2156# CHECK: ldrh w9, [x2, #1]! 2157# CHECK: ldrh w10, [x3, #-256]! 21580x49 0xfc 0x4f 0x38 21590x6a 0x1c 0x40 0x38 21600x6a 0xc 0x50 0x38 21610x49 0xfc 0x4f 0x78 21620x49 0x1c 0x40 0x78 21630x6a 0xc 0x50 0x78 2164 2165# CHECK: ldr w19, [sp, #255]! 2166# CHECK: ldr w20, [x30, #1]! 2167# CHECK: ldr w21, [x12, #-256]! 2168# CHECK: ldr xzr, [x9, #255]! 2169# CHECK: ldr x2, [x3, #1]! 2170# CHECK: ldr x19, [x12, #-256]! 21710xf3 0xff 0x4f 0xb8 21720xd4 0x1f 0x40 0xb8 21730x95 0xd 0x50 0xb8 21740x3f 0xfd 0x4f 0xf8 21750x62 0x1c 0x40 0xf8 21760x93 0xd 0x50 0xf8 2177 2178# CHECK: ldrsb xzr, [x9, #255]! 2179# CHECK: ldrsb x2, [x3, #1]! 2180# CHECK: ldrsb x19, [x12, #-256]! 2181# CHECK: ldrsh xzr, [x9, #255]! 2182# CHECK: ldrsh x2, [x3, #1]! 2183# CHECK: ldrsh x19, [x12, #-256]! 2184# CHECK: ldrsw xzr, [x9, #255]! 2185# CHECK: ldrsw x2, [x3, #1]! 2186# CHECK: ldrsw x19, [x12, #-256]! 21870x3f 0xfd 0x8f 0x38 21880x62 0x1c 0x80 0x38 21890x93 0xd 0x90 0x38 21900x3f 0xfd 0x8f 0x78 21910x62 0x1c 0x80 0x78 21920x93 0xd 0x90 0x78 21930x3f 0xfd 0x8f 0xb8 21940x62 0x1c 0x80 0xb8 21950x93 0xd 0x90 0xb8 2196 2197# CHECK: ldrsb wzr, [x9, #255]! 2198# CHECK: ldrsb w2, [x3, #1]! 2199# CHECK: ldrsb w19, [x12, #-256]! 2200# CHECK: ldrsh wzr, [x9, #255]! 2201# CHECK: ldrsh w2, [x3, #1]! 2202# CHECK: ldrsh w19, [x12, #-256]! 22030x3f 0xfd 0xcf 0x38 22040x62 0x1c 0xc0 0x38 22050x93 0xd 0xd0 0x38 22060x3f 0xfd 0xcf 0x78 22070x62 0x1c 0xc0 0x78 22080x93 0xd 0xd0 0x78 2209 2210# CHECK: str b0, [x0, #255]! 2211# CHECK: str b3, [x3, #1]! 2212# CHECK: str b5, [sp, #-256]! 2213# CHECK: str h10, [x10, #255]! 2214# CHECK: str h13, [x23, #1]! 2215# CHECK: str h15, [sp, #-256]! 2216# CHECK: str s20, [x20, #255]! 2217# CHECK: str s23, [x23, #1]! 2218# CHECK: str s25, [x0, #-256]! 2219# CHECK: str d20, [x20, #255]! 2220# CHECK: str d23, [x23, #1]! 2221# CHECK: str d25, [x0, #-256]! 22220x0 0xfc 0xf 0x3c 22230x63 0x1c 0x0 0x3c 22240xe5 0xf 0x10 0x3c 22250x4a 0xfd 0xf 0x7c 22260xed 0x1e 0x0 0x7c 22270xef 0xf 0x10 0x7c 22280x94 0xfe 0xf 0xbc 22290xf7 0x1e 0x0 0xbc 22300x19 0xc 0x10 0xbc 22310x94 0xfe 0xf 0xfc 22320xf7 0x1e 0x0 0xfc 22330x19 0xc 0x10 0xfc 2234 2235# CHECK: ldr b0, [x0, #255]! 2236# CHECK: ldr b3, [x3, #1]! 2237# CHECK: ldr b5, [sp, #-256]! 2238# CHECK: ldr h10, [x10, #255]! 2239# CHECK: ldr h13, [x23, #1]! 2240# CHECK: ldr h15, [sp, #-256]! 2241# CHECK: ldr s20, [x20, #255]! 2242# CHECK: ldr s23, [x23, #1]! 2243# CHECK: ldr s25, [x0, #-256]! 2244# CHECK: ldr d20, [x20, #255]! 2245# CHECK: ldr d23, [x23, #1]! 2246# CHECK: ldr d25, [x0, #-256]! 22470x0 0xfc 0x4f 0x3c 22480x63 0x1c 0x40 0x3c 22490xe5 0xf 0x50 0x3c 22500x4a 0xfd 0x4f 0x7c 22510xed 0x1e 0x40 0x7c 22520xef 0xf 0x50 0x7c 22530x94 0xfe 0x4f 0xbc 22540xf7 0x1e 0x40 0xbc 22550x19 0xc 0x50 0xbc 22560x94 0xfe 0x4f 0xfc 22570xf7 0x1e 0x40 0xfc 22580x19 0xc 0x50 0xfc 2259 2260# CHECK: ldr q20, [x1, #255]! 2261# CHECK: ldr q23, [x9, #1]! 2262# CHECK: ldr q25, [x20, #-256]! 2263# CHECK: str q10, [x1, #255]! 2264# CHECK: str q22, [sp, #1]! 2265# CHECK: str q21, [x20, #-256]! 22660x34 0xfc 0xcf 0x3c 22670x37 0x1d 0xc0 0x3c 22680x99 0xe 0xd0 0x3c 22690x2a 0xfc 0x8f 0x3c 22700xf6 0x1f 0x80 0x3c 22710x95 0xe 0x90 0x3c 2272 2273#------------------------------------------------------------------------------ 2274# Load/store (unprivileged) 2275#------------------------------------------------------------------------------ 2276 2277# CHECK: sttrb w9, [sp] 2278# CHECK: sttrh wzr, [x12, #255] 2279# CHECK: sttr w16, [x0, #-256] 2280# CHECK: sttr x28, [x14, #1] 22810xe9 0x0b 0x0 0x38 22820x9f 0xf9 0xf 0x78 22830x10 0x08 0x10 0xb8 22840xdc 0x19 0x0 0xf8 2285 2286# CHECK: ldtrb w1, [x20, #255] 2287# CHECK: ldtrh w20, [x1, #255] 2288# CHECK: ldtr w12, [sp, #255] 2289# CHECK: ldtr xzr, [x12, #255] 22900x81 0xfa 0x4f 0x38 22910x34 0xf8 0x4f 0x78 22920xec 0xfb 0x4f 0xb8 22930x9f 0xf9 0x4f 0xf8 2294 2295# CHECK: ldtrsb x9, [x7, #-256] 2296# CHECK: ldtrsh x17, [x19, #-256] 2297# CHECK: ldtrsw x20, [x15, #-256] 2298# CHECK: ldtrsb w19, [x1, #-256] 2299# CHECK: ldtrsh w15, [x21, #-256] 23000xe9 0x08 0x90 0x38 23010x71 0x0a 0x90 0x78 23020xf4 0x09 0x90 0xb8 23030x33 0x08 0xd0 0x38 23040xaf 0x0a 0xd0 0x78 2305 2306#------------------------------------------------------------------------------ 2307# Load/store (unsigned immediate) 2308#------------------------------------------------------------------------------ 2309 2310# CHECK: ldr x0, [x0] 2311# CHECK: ldr x4, [x29] 2312# CHECK: ldr x30, [x12, #32760] 2313# CHECK: ldr x20, [sp, #8] 23140x0 0x0 0x40 0xf9 23150xa4 0x3 0x40 0xf9 23160x9e 0xfd 0x7f 0xf9 23170xf4 0x7 0x40 0xf9 2318 2319# CHECK: ldr xzr, [sp] 23200xff 0x3 0x40 0xf9 2321 2322# CHECK: ldr w2, [sp] 2323# CHECK: ldr w17, [sp, #16380] 2324# CHECK: ldr w13, [x2, #4] 23250xe2 0x3 0x40 0xb9 23260xf1 0xff 0x7f 0xb9 23270x4d 0x4 0x40 0xb9 2328 2329# CHECK: ldrsw x2, [x5, #4] 2330# CHECK: ldrsw x23, [sp, #16380] 23310xa2 0x4 0x80 0xb9 23320xf7 0xff 0xbf 0xb9 2333 2334# CHECK: ldrh w2, [x4] 2335# CHECK: ldrsh w23, [x6, #8190] 2336# CHECK: ldrsh wzr, [sp, #2] 2337# CHECK: ldrsh x29, [x2, #2] 23380x82 0x0 0x40 0x79 23390xd7 0xfc 0xff 0x79 23400xff 0x7 0xc0 0x79 23410x5d 0x4 0x80 0x79 2342 2343# CHECK: ldrb w26, [x3, #121] 2344# CHECK: ldrb w12, [x2] 2345# CHECK: ldrsb w27, [sp, #4095] 2346# CHECK: ldrsb xzr, [x15] 23470x7a 0xe4 0x41 0x39 23480x4c 0x0 0x40 0x39 23490xfb 0xff 0xff 0x39 23500xff 0x1 0x80 0x39 2351 2352# CHECK: str x30, [sp] 2353# CHECK: str w20, [x4, #16380] 2354# CHECK: strh w20, [x10, #14] 2355# CHECK: strh w17, [sp, #8190] 2356# CHECK: strb w23, [x3, #4095] 2357# CHECK: strb wzr, [x2] 23580xfe 0x3 0x0 0xf9 23590x94 0xfc 0x3f 0xb9 23600x54 0x1d 0x0 0x79 23610xf1 0xff 0x3f 0x79 23620x77 0xfc 0x3f 0x39 23630x5f 0x0 0x0 0x39 2364 2365# CHECK: ldr b31, [sp, #4095] 2366# CHECK: ldr h20, [x2, #8190] 2367# CHECK: ldr s10, [x19, #16380] 2368# CHECK: ldr d3, [x10, #32760] 2369# CHECK: str q12, [sp, #65520] 23700xff 0xff 0x7f 0x3d 23710x54 0xfc 0x7f 0x7d 23720x6a 0xfe 0x7f 0xbd 23730x43 0xfd 0x7f 0xfd 23740xec 0xff 0xbf 0x3d 2375 2376# CHECK: prfm pldl1keep, [sp, #8] 2377# CHECK: prfm pldl1strm, [x3{{(, #0)?}}] 2378# CHECK: prfm pldl2keep, [x5, #16] 2379# CHECK: prfm pldl2strm, [x2{{(, #0)?}}] 2380# CHECK: prfm pldl3keep, [x5{{(, #0)?}}] 2381# CHECK: prfm pldl3strm, [x6{{(, #0)?}}] 2382# CHECK: prfm plil1keep, [sp, #8] 2383# CHECK: prfm plil1strm, [x3{{(, #0)?}}] 2384# CHECK: prfm plil2keep, [x5, #16] 2385# CHECK: prfm plil2strm, [x2{{(, #0)?}}] 2386# CHECK: prfm plil3keep, [x5{{(, #0)?}}] 2387# CHECK: prfm plil3strm, [x6{{(, #0)?}}] 2388# CHECK: prfm pstl1keep, [sp, #8] 2389# CHECK: prfm pstl1strm, [x3{{(, #0)?}}] 2390# CHECK: prfm pstl2keep, [x5, #16] 2391# CHECK: prfm pstl2strm, [x2{{(, #0)?}}] 2392# CHECK: prfm pstl3keep, [x5{{(, #0)?}}] 2393# CHECK: prfm pstl3strm, [x6{{(, #0)?}}] 23940xe0 0x07 0x80 0xf9 23950x61 0x00 0x80 0xf9 23960xa2 0x08 0x80 0xf9 23970x43 0x00 0x80 0xf9 23980xa4 0x00 0x80 0xf9 23990xc5 0x00 0x80 0xf9 24000xe8 0x07 0x80 0xf9 24010x69 0x00 0x80 0xf9 24020xaa 0x08 0x80 0xf9 24030x4b 0x00 0x80 0xf9 24040xac 0x00 0x80 0xf9 24050xcd 0x00 0x80 0xf9 24060xf0 0x07 0x80 0xf9 24070x71 0x00 0x80 0xf9 24080xb2 0x08 0x80 0xf9 24090x53 0x00 0x80 0xf9 24100xb4 0x00 0x80 0xf9 24110xd5 0x00 0x80 0xf9 2412 2413 2414#------------------------------------------------------------------------------ 2415# Load/store (register offset) 2416#------------------------------------------------------------------------------ 2417 2418# CHECK: ldrb w3, [sp, x5] 2419# CHECK: ldrb w9, [x27, x6] 2420# CHECK: ldrsb w10, [x30, x7] 2421# CHECK: ldrb w11, [x29, x3, sxtx] 2422# CHECK: strb w12, [x28, xzr, sxtx] 2423# CHECK: ldrb w14, [x26, w6, uxtw] 2424# CHECK: ldrsb w15, [x25, w7, uxtw] 2425# CHECK: ldrb w17, [x23, w9, sxtw] 2426# CHECK: ldrsb x18, [x22, w10, sxtw] 24270xe3 0x6b 0x65 0x38 24280x69 0x6b 0x66 0x38 24290xca 0x6b 0xe7 0x38 24300xab 0xeb 0x63 0x38 24310x8c 0xeb 0x3f 0x38 24320x4e 0x4b 0x66 0x38 24330x2f 0x4b 0xe7 0x38 24340xf1 0xca 0x69 0x38 24350xd2 0xca 0xaa 0x38 2436 2437# CHECK: ldrsh w3, [sp, x5] 2438# CHECK: ldrsh w9, [x27, x6] 2439# CHECK: ldrh w10, [x30, x7, lsl #1] 2440# CHECK: strh w11, [x29, x3, sxtx] 2441# CHECK: ldrh w12, [x28, xzr, sxtx] 2442# CHECK: ldrsh x13, [x27, x5, sxtx #1] 2443# CHECK: ldrh w14, [x26, w6, uxtw] 2444# CHECK: ldrh w15, [x25, w7, uxtw] 2445# CHECK: ldrsh w16, [x24, w8, uxtw #1] 2446# CHECK: ldrh w17, [x23, w9, sxtw] 2447# CHECK: ldrh w18, [x22, w10, sxtw] 2448# CHECK: strh w19, [x21, wzr, sxtw #1] 24490xe3 0x6b 0xe5 0x78 24500x69 0x6b 0xe6 0x78 24510xca 0x7b 0x67 0x78 24520xab 0xeb 0x23 0x78 24530x8c 0xeb 0x7f 0x78 24540x6d 0xfb 0xa5 0x78 24550x4e 0x4b 0x66 0x78 24560x2f 0x4b 0x67 0x78 24570x10 0x5b 0xe8 0x78 24580xf1 0xca 0x69 0x78 24590xd2 0xca 0x6a 0x78 24600xb3 0xda 0x3f 0x78 2461 2462# CHECK: ldr w3, [sp, x5] 2463# CHECK: ldr s9, [x27, x6] 2464# CHECK: ldr w10, [x30, x7, lsl #2] 2465# CHECK: ldr w11, [x29, x3, sxtx] 2466# CHECK: str s12, [x28, xzr, sxtx] 2467# CHECK: str w13, [x27, x5, sxtx #2] 2468# CHECK: str w14, [x26, w6, uxtw] 2469# CHECK: ldr w15, [x25, w7, uxtw] 2470# CHECK: ldr w16, [x24, w8, uxtw #2] 2471# CHECK: ldrsw x17, [x23, w9, sxtw] 2472# CHECK: ldr w18, [x22, w10, sxtw] 2473# CHECK: ldrsw x19, [x21, wzr, sxtw #2] 24740xe3 0x6b 0x65 0xb8 24750x69 0x6b 0x66 0xbc 24760xca 0x7b 0x67 0xb8 24770xab 0xeb 0x63 0xb8 24780x8c 0xeb 0x3f 0xbc 24790x6d 0xfb 0x25 0xb8 24800x4e 0x4b 0x26 0xb8 24810x2f 0x4b 0x67 0xb8 24820x10 0x5b 0x68 0xb8 24830xf1 0xca 0xa9 0xb8 24840xd2 0xca 0x6a 0xb8 24850xb3 0xda 0xbf 0xb8 2486 2487# CHECK: ldr x3, [sp, x5] 2488# CHECK: str x9, [x27, x6] 2489# CHECK: ldr d10, [x30, x7, lsl #3] 2490# CHECK: str x11, [x29, x3, sxtx] 2491# CHECK: ldr x12, [x28, xzr, sxtx] 2492# CHECK: ldr x13, [x27, x5, sxtx #3] 2493# CHECK: prfm pldl1keep, [x26, w6, uxtw] 2494# CHECK: ldr x15, [x25, w7, uxtw] 2495# CHECK: ldr x16, [x24, w8, uxtw #3] 2496# CHECK: ldr x17, [x23, w9, sxtw] 2497# CHECK: ldr x18, [x22, w10, sxtw] 2498# CHECK: str d19, [x21, wzr, sxtw #3] 24990xe3 0x6b 0x65 0xf8 25000x69 0x6b 0x26 0xf8 25010xca 0x7b 0x67 0xfc 25020xab 0xeb 0x23 0xf8 25030x8c 0xeb 0x7f 0xf8 25040x6d 0xfb 0x65 0xf8 25050x40 0x4b 0xa6 0xf8 25060x2f 0x4b 0x67 0xf8 25070x10 0x5b 0x68 0xf8 25080xf1 0xca 0x69 0xf8 25090xd2 0xca 0x6a 0xf8 25100xb3 0xda 0x3f 0xfc 2511 2512# CHECK: ldr q3, [sp, x5] 2513# CHECK: ldr q9, [x27, x6] 2514# CHECK: ldr q10, [x30, x7, lsl #4] 2515# CHECK: str q11, [x29, x3, sxtx] 2516# CHECK: str q12, [x28, xzr, sxtx] 2517# CHECK: str q13, [x27, x5, sxtx #4] 2518# CHECK: ldr q14, [x26, w6, uxtw] 2519# CHECK: ldr q15, [x25, w7, uxtw] 2520# CHECK: ldr q16, [x24, w8, uxtw #4] 2521# CHECK: ldr q17, [x23, w9, sxtw] 2522# CHECK: str q18, [x22, w10, sxtw] 2523# CHECK: ldr q19, [x21, wzr, sxtw #4] 25240xe3 0x6b 0xe5 0x3c 25250x69 0x6b 0xe6 0x3c 25260xca 0x7b 0xe7 0x3c 25270xab 0xeb 0xa3 0x3c 25280x8c 0xeb 0xbf 0x3c 25290x6d 0xfb 0xa5 0x3c 25300x4e 0x4b 0xe6 0x3c 25310x2f 0x4b 0xe7 0x3c 25320x10 0x5b 0xe8 0x3c 25330xf1 0xca 0xe9 0x3c 25340xd2 0xca 0xaa 0x3c 25350xb3 0xda 0xff 0x3c 2536 2537#------------------------------------------------------------------------------ 2538# Load/store register pair (offset) 2539#------------------------------------------------------------------------------ 2540 2541# CHECK: ldp w3, w5, [sp] 2542# CHECK: stp wzr, w9, [sp, #252] 2543# CHECK: ldp w2, wzr, [sp, #-256] 2544# CHECK: ldp w9, w10, [sp, #4] 25450xe3 0x17 0x40 0x29 25460xff 0xa7 0x1f 0x29 25470xe2 0x7f 0x60 0x29 25480xe9 0xab 0x40 0x29 2549 2550# CHECK: ldpsw x9, x10, [sp, #4] 2551# CHECK: ldpsw x9, x10, [x2, #-256] 2552# CHECK: ldpsw x20, x30, [sp, #252] 25530xe9 0xab 0x40 0x69 25540x49 0x28 0x60 0x69 25550xf4 0xfb 0x5f 0x69 2556 2557# CHECK: ldp x21, x29, [x2, #504] 2558# CHECK: ldp x22, x23, [x3, #-512] 2559# CHECK: ldp x24, x25, [x4, #8] 25600x55 0xf4 0x5f 0xa9 25610x76 0x5c 0x60 0xa9 25620x98 0xe4 0x40 0xa9 2563 2564# CHECK: ldp s29, s28, [sp, #252] 2565# CHECK: stp s27, s26, [sp, #-256] 2566# CHECK: ldp s1, s2, [x3, #44] 25670xfd 0xf3 0x5f 0x2d 25680xfb 0x6b 0x20 0x2d 25690x61 0x88 0x45 0x2d 2570 2571# CHECK: stp d3, d5, [x9, #504] 2572# CHECK: stp d7, d11, [x10, #-512] 2573# CHECK: ldp d2, d3, [x30, #-8] 25740x23 0x95 0x1f 0x6d 25750x47 0x2d 0x20 0x6d 25760xc2 0x8f 0x7f 0x6d 2577 2578# CHECK: stp q3, q5, [sp] 2579# CHECK: stp q17, q19, [sp, #1008] 2580# CHECK: ldp q23, q29, [x1, #-1024] 25810xe3 0x17 0x0 0xad 25820xf1 0xcf 0x1f 0xad 25830x37 0x74 0x60 0xad 2584 2585#------------------------------------------------------------------------------ 2586# Load/store register pair (post-indexed) 2587#------------------------------------------------------------------------------ 2588 2589# CHECK: ldp w3, w5, [sp], #0 2590# CHECK: stp wzr, w9, [sp], #252 2591# CHECK: ldp w2, wzr, [sp], #-256 2592# CHECK: ldp w9, w10, [sp], #4 25930xe3 0x17 0xc0 0x28 25940xff 0xa7 0x9f 0x28 25950xe2 0x7f 0xe0 0x28 25960xe9 0xab 0xc0 0x28 2597 2598# CHECK: ldpsw x9, x10, [sp], #4 2599# CHECK: ldpsw x9, x10, [x2], #-256 2600# CHECK: ldpsw x20, x30, [sp], #252 26010xe9 0xab 0xc0 0x68 26020x49 0x28 0xe0 0x68 26030xf4 0xfb 0xdf 0x68 2604 2605# CHECK: ldp x21, x29, [x2], #504 2606# CHECK: ldp x22, x23, [x3], #-512 2607# CHECK: ldp x24, x25, [x4], #8 26080x55 0xf4 0xdf 0xa8 26090x76 0x5c 0xe0 0xa8 26100x98 0xe4 0xc0 0xa8 2611 2612# CHECK: ldp s29, s28, [sp], #252 2613# CHECK: stp s27, s26, [sp], #-256 2614# CHECK: ldp s1, s2, [x3], #44 26150xfd 0xf3 0xdf 0x2c 26160xfb 0x6b 0xa0 0x2c 26170x61 0x88 0xc5 0x2c 2618 2619# CHECK: stp d3, d5, [x9], #504 2620# CHECK: stp d7, d11, [x10], #-512 2621# CHECK: ldp d2, d3, [x30], #-8 26220x23 0x95 0x9f 0x6c 26230x47 0x2d 0xa0 0x6c 26240xc2 0x8f 0xff 0x6c 2625 2626# CHECK: stp q3, q5, [sp], #0 2627# CHECK: stp q17, q19, [sp], #1008 2628# CHECK: ldp q23, q29, [x1], #-1024 26290xe3 0x17 0x80 0xac 26300xf1 0xcf 0x9f 0xac 26310x37 0x74 0xe0 0xac 2632 2633#------------------------------------------------------------------------------ 2634# Load/store register pair (pre-indexed) 2635#------------------------------------------------------------------------------ 2636 2637# CHECK: ldp w3, w5, [sp, #0]! 2638# CHECK: stp wzr, w9, [sp, #252]! 2639# CHECK: ldp w2, wzr, [sp, #-256]! 2640# CHECK: ldp w9, w10, [sp, #4]! 26410xe3 0x17 0xc0 0x29 26420xff 0xa7 0x9f 0x29 26430xe2 0x7f 0xe0 0x29 26440xe9 0xab 0xc0 0x29 2645 2646# CHECK: ldpsw x9, x10, [sp, #4]! 2647# CHECK: ldpsw x9, x10, [x2, #-256]! 2648# CHECK: ldpsw x20, x30, [sp, #252]! 26490xe9 0xab 0xc0 0x69 26500x49 0x28 0xe0 0x69 26510xf4 0xfb 0xdf 0x69 2652 2653# CHECK: ldp x21, x29, [x2, #504]! 2654# CHECK: ldp x22, x23, [x3, #-512]! 2655# CHECK: ldp x24, x25, [x4, #8]! 26560x55 0xf4 0xdf 0xa9 26570x76 0x5c 0xe0 0xa9 26580x98 0xe4 0xc0 0xa9 2659 2660# CHECK: ldp s29, s28, [sp, #252]! 2661# CHECK: stp s27, s26, [sp, #-256]! 2662# CHECK: ldp s1, s2, [x3, #44]! 26630xfd 0xf3 0xdf 0x2d 26640xfb 0x6b 0xa0 0x2d 26650x61 0x88 0xc5 0x2d 2666 2667# CHECK: stp d3, d5, [x9, #504]! 2668# CHECK: stp d7, d11, [x10, #-512]! 2669# CHECK: ldp d2, d3, [x30, #-8]! 26700x23 0x95 0x9f 0x6d 26710x47 0x2d 0xa0 0x6d 26720xc2 0x8f 0xff 0x6d 2673 2674# CHECK: stp q3, q5, [sp, #0]! 2675# CHECK: stp q17, q19, [sp, #1008]! 2676# CHECK: ldp q23, q29, [x1, #-1024]! 26770xe3 0x17 0x80 0xad 26780xf1 0xcf 0x9f 0xad 26790x37 0x74 0xe0 0xad 2680 2681#------------------------------------------------------------------------------ 2682# Load/store register pair (offset) 2683#------------------------------------------------------------------------------ 2684 2685# CHECK: ldnp w3, w5, [sp] 2686# CHECK: stnp wzr, w9, [sp, #252] 2687# CHECK: ldnp w2, wzr, [sp, #-256] 2688# CHECK: ldnp w9, w10, [sp, #4] 26890xe3 0x17 0x40 0x28 26900xff 0xa7 0x1f 0x28 26910xe2 0x7f 0x60 0x28 26920xe9 0xab 0x40 0x28 2693 2694# CHECK: ldnp x21, x29, [x2, #504] 2695# CHECK: ldnp x22, x23, [x3, #-512] 2696# CHECK: ldnp x24, x25, [x4, #8] 26970x55 0xf4 0x5f 0xa8 26980x76 0x5c 0x60 0xa8 26990x98 0xe4 0x40 0xa8 2700 2701# CHECK: ldnp s29, s28, [sp, #252] 2702# CHECK: stnp s27, s26, [sp, #-256] 2703# CHECK: ldnp s1, s2, [x3, #44] 27040xfd 0xf3 0x5f 0x2c 27050xfb 0x6b 0x20 0x2c 27060x61 0x88 0x45 0x2c 2707 2708# CHECK: stnp d3, d5, [x9, #504] 2709# CHECK: stnp d7, d11, [x10, #-512] 2710# CHECK: ldnp d2, d3, [x30, #-8] 27110x23 0x95 0x1f 0x6c 27120x47 0x2d 0x20 0x6c 27130xc2 0x8f 0x7f 0x6c 2714 2715# CHECK: stnp q3, q5, [sp] 2716# CHECK: stnp q17, q19, [sp, #1008] 2717# CHECK: ldnp q23, q29, [x1, #-1024] 27180xe3 0x17 0x0 0xac 27190xf1 0xcf 0x1f 0xac 27200x37 0x74 0x60 0xac 2721 2722#------------------------------------------------------------------------------ 2723# Logical (immediate) 2724#------------------------------------------------------------------------------ 2725# CHECK: orr w3, w9, #0xffff0000 2726# CHECK: orr wsp, w10, #0xe00000ff 2727# CHECK: orr w9, w10, #0x3ff 27280x23 0x3d 0x10 0x32 27290x5f 0x29 0x3 0x32 27300x49 0x25 0x0 0x32 2731 2732# CHECK: and w14, w15, #0x80008000 2733# CHECK: and w12, w13, #0xffc3ffc3 2734# CHECK: and w11, wzr, #0x30003 27350xee 0x81 0x1 0x12 27360xac 0xad 0xa 0x12 27370xeb 0x87 0x0 0x12 2738 2739# CHECK: eor w3, w6, #0xe0e0e0e0 2740# CHECK: eor wsp, wzr, #0x3030303 2741# CHECK: eor w16, w17, #0x81818181 27420xc3 0xc8 0x3 0x52 27430xff 0xc7 0x0 0x52 27440x30 0xc6 0x1 0x52 2745 2746# CHECK: {{ands wzr,|tst}} w18, #0xcccccccc 2747# CHECK: ands w19, w20, #0x33333333 2748# CHECK: ands w21, w22, #0x99999999 27490x5f 0xe6 0x2 0x72 27500x93 0xe6 0x0 0x72 27510xd5 0xe6 0x1 0x72 2752 2753# CHECK: {{ands wzr,|tst}} w3, #0xaaaaaaaa 2754# CHECK: {{ands wzr,|tst}} wzr, #0x55555555 27550x7f 0xf0 0x1 0x72 27560xff 0xf3 0x0 0x72 2757 2758# CHECK: eor x3, x5, #0xffffffffc000000 2759# CHECK: and x9, x10, #0x7fffffffffff 2760# CHECK: orr x11, x12, #0x8000000000000fff 27610xa3 0x84 0x66 0xd2 27620x49 0xb9 0x40 0x92 27630x8b 0x31 0x41 0xb2 2764 2765# CHECK: orr x3, x9, #0xffff0000ffff0000 2766# CHECK: orr sp, x10, #0xe00000ffe00000ff 2767# CHECK: orr x9, x10, #0x3ff000003ff 27680x23 0x3d 0x10 0xb2 27690x5f 0x29 0x3 0xb2 27700x49 0x25 0x0 0xb2 2771 2772# CHECK: and x14, x15, #0x8000800080008000 2773# CHECK: and x12, x13, #0xffc3ffc3ffc3ffc3 2774# CHECK: and x11, xzr, #0x3000300030003 27750xee 0x81 0x1 0x92 27760xac 0xad 0xa 0x92 27770xeb 0x87 0x0 0x92 2778 2779# CHECK: eor x3, x6, #0xe0e0e0e0e0e0e0e0 2780# CHECK: eor sp, xzr, #0x303030303030303 2781# CHECK: eor x16, x17, #0x8181818181818181 27820xc3 0xc8 0x3 0xd2 27830xff 0xc7 0x0 0xd2 27840x30 0xc6 0x1 0xd2 2785 2786# CHECK: {{ands xzr,|tst}} x18, #0xcccccccccccccccc 2787# CHECK: ands x19, x20, #0x3333333333333333 2788# CHECK: ands x21, x22, #0x9999999999999999 27890x5f 0xe6 0x2 0xf2 27900x93 0xe6 0x0 0xf2 27910xd5 0xe6 0x1 0xf2 2792 2793# CHECK: {{ands xzr,|tst}} x3, #0xaaaaaaaaaaaaaaaa 2794# CHECK: {{ands xzr,|tst}} xzr, #0x5555555555555555 27950x7f 0xf0 0x1 0xf2 27960xff 0xf3 0x0 0xf2 2797 2798# CHECK: orr w3, wzr, #0xf000f 2799# CHECK: orr x10, xzr, #0xaaaaaaaaaaaaaaaa 28000xe3 0x8f 0x0 0x32 28010xea 0xf3 0x1 0xb2 2802 2803# CHECK: orr w3, wzr, #0xffff 2804# CHECK: orr x9, xzr, #0xffff00000000 28050xe3 0x3f 0x0 0x32 28060xe9 0x3f 0x60 0xb2 2807 2808#------------------------------------------------------------------------------ 2809# Logical (shifted register) 2810#------------------------------------------------------------------------------ 2811 2812# CHECK: and w12, w23, w21 2813# CHECK: and w16, w15, w1, lsl #1 2814# CHECK: and w9, w4, w10, lsl #31 2815# CHECK: and w3, w30, w11 2816# CHECK: and x3, x5, x7, lsl #63 28170xec 0x2 0x15 0xa 28180xf0 0x5 0x1 0xa 28190x89 0x7c 0xa 0xa 28200xc3 0x3 0xb 0xa 28210xa3 0xfc 0x7 0x8a 2822 2823# CHECK: and x5, x14, x19, asr #4 2824# CHECK: and w3, w17, w19, ror #31 2825# CHECK: and w0, w2, wzr, lsr #17 2826# CHECK: and w3, w30, w11, asr 28270xc5 0x11 0x93 0x8a 28280x23 0x7e 0xd3 0xa 28290x40 0x44 0x5f 0xa 28300xc3 0x3 0x8b 0xa 2831 2832# CHECK: and xzr, x4, x26 2833# CHECK: and w3, wzr, w20, ror 2834# CHECK: and x7, x20, xzr, asr #63 28350x9f 0x0 0x1a 0x8a 28360xe3 0x3 0xd4 0xa 28370x87 0xfe 0x9f 0x8a 2838 2839# CHECK: bic x13, x20, x14, lsl #47 2840# CHECK: bic w2, w7, w9 2841# CHECK: orr w2, w7, w0, asr #31 2842# CHECK: orr x8, x9, x10, lsl #12 2843# CHECK: orn x3, x5, x7, asr 2844# CHECK: orn w2, w5, w29 28450x8d 0xbe 0x2e 0x8a 28460xe2 0x0 0x29 0xa 28470xe2 0x7c 0x80 0x2a 28480x28 0x31 0xa 0xaa 28490xa3 0x0 0xa7 0xaa 28500xa2 0x0 0x3d 0x2a 2851 2852# CHECK: ands w7, wzr, w9, lsl #1 2853# CHECK: ands x3, x5, x20, ror #63 2854# CHECK: bics w3, w5, w7 2855# CHECK: bics x3, xzr, x3, lsl #1 2856# CHECK: tst w3, w7, lsl #31 2857# CHECK: tst x2, x20, asr 28580xe7 0x7 0x9 0x6a 28590xa3 0xfc 0xd4 0xea 28600xa3 0x0 0x27 0x6a 28610xe3 0x7 0x23 0xea 28620x7f 0x7c 0x7 0x6a 28630x5f 0x0 0x94 0xea 2864 2865# CHECK: mov x3, x6 2866# CHECK: mov x3, xzr 2867# CHECK: mov wzr, w2 2868# CHECK: mov w3, w5 28690xe3 0x3 0x6 0xaa 28700xe3 0x3 0x1f 0xaa 28710xff 0x3 0x2 0x2a 28720xe3 0x3 0x5 0x2a 2873 2874#------------------------------------------------------------------------------ 2875# Move wide (immediate) 2876#------------------------------------------------------------------------------ 2877 2878# N.b. (FIXME) canonical aliases aren't produced here because of 2879# limitation in InstAlias. Lots of the "mov[nz]" instructions should 2880# be "mov". 2881 2882# CHECK: movz w1, #{{65535|0xffff}} 2883# CHECK: movz w2, #0, lsl #16 2884# CHECK: movn w2, #{{1234|0x4d2}} 28850xe1 0xff 0x9f 0x52 28860x2 0x0 0xa0 0x52 28870x42 0x9a 0x80 0x12 2888 2889# CHECK: movz x2, #{{1234|0x4d2}}, lsl #32 2890# CHECK: movk xzr, #{{4321|0x10e1}}, lsl #48 28910x42 0x9a 0xc0 0xd2 28920x3f 0x1c 0xe2 0xf2 2893 2894# CHECK: movz x2, #0 2895# CHECK: movk w3, #0 2896# CHECK: movz x4, #0, lsl #16 2897# CHECK: movk w5, #0, lsl #16 2898# CHECK: movz x6, #0, lsl #32 2899# CHECK: movk x7, #0, lsl #32 2900# CHECK: movz x8, #0, lsl #48 2901# CHECK: movk x9, #0, lsl #48 29020x2 0x0 0x80 0xd2 29030x3 0x0 0x80 0x72 29040x4 0x0 0xa0 0xd2 29050x5 0x0 0xa0 0x72 29060x6 0x0 0xc0 0xd2 29070x7 0x0 0xc0 0xf2 29080x8 0x0 0xe0 0xd2 29090x9 0x0 0xe0 0xf2 2910 2911#------------------------------------------------------------------------------ 2912# PC-relative addressing 2913#------------------------------------------------------------------------------ 2914 2915# It's slightly dodgy using immediates here, but harmless enough when 2916# it's all that's available. 2917 2918# CHECK: adr x2, #1600 2919# CHECK: adrp x21, #6553600 2920# CHECK: adr x0, #262144 29210x02 0x32 0x00 0x10 29220x15 0x32 0x00 0x90 29230x00 0x00 0x20 0x10 2924 2925#------------------------------------------------------------------------------ 2926# System 2927#------------------------------------------------------------------------------ 2928 2929# CHECK: nop 2930# CHECK: hint #{{127|0x7f}} 2931# CHECK: nop 2932# CHECK: yield 2933# CHECK: wfe 2934# CHECK: wfi 2935# CHECK: sev 2936# CHECK: sevl 29370x1f 0x20 0x3 0xd5 29380xff 0x2f 0x3 0xd5 29390x1f 0x20 0x3 0xd5 29400x3f 0x20 0x3 0xd5 29410x5f 0x20 0x3 0xd5 29420x7f 0x20 0x3 0xd5 29430x9f 0x20 0x3 0xd5 29440xbf 0x20 0x3 0xd5 2945 2946# CHECK: clrex 2947# CHECK: clrex #0 2948# CHECK: clrex #7 2949# CHECK: clrex 29500x5f 0x3f 0x3 0xd5 29510x5f 0x30 0x3 0xd5 29520x5f 0x37 0x3 0xd5 29530x5f 0x3f 0x3 0xd5 2954 2955# CHECK: dsb #0 2956# CHECK: dsb #12 2957# CHECK: dsb sy 2958# CHECK: dsb oshld 2959# CHECK: dsb oshst 2960# CHECK: dsb osh 2961# CHECK: dsb nshld 2962# CHECK: dsb nshst 2963# CHECK: dsb nsh 2964# CHECK: dsb ishld 2965# CHECK: dsb ishst 2966# CHECK: dsb ish 2967# CHECK: dsb ld 2968# CHECK: dsb st 2969# CHECK: dsb sy 29700x9f 0x30 0x3 0xd5 29710x9f 0x3c 0x3 0xd5 29720x9f 0x3f 0x3 0xd5 29730x9f 0x31 0x3 0xd5 29740x9f 0x32 0x3 0xd5 29750x9f 0x33 0x3 0xd5 29760x9f 0x35 0x3 0xd5 29770x9f 0x36 0x3 0xd5 29780x9f 0x37 0x3 0xd5 29790x9f 0x39 0x3 0xd5 29800x9f 0x3a 0x3 0xd5 29810x9f 0x3b 0x3 0xd5 29820x9f 0x3d 0x3 0xd5 29830x9f 0x3e 0x3 0xd5 29840x9f 0x3f 0x3 0xd5 2985 2986# CHECK: dmb #0 2987# CHECK: dmb #12 2988# CHECK: dmb sy 2989# CHECK: dmb oshld 2990# CHECK: dmb oshst 2991# CHECK: dmb osh 2992# CHECK: dmb nshld 2993# CHECK: dmb nshst 2994# CHECK: dmb nsh 2995# CHECK: dmb ishld 2996# CHECK: dmb ishst 2997# CHECK: dmb ish 2998# CHECK: dmb ld 2999# CHECK: dmb st 3000# CHECK: dmb sy 30010xbf 0x30 0x3 0xd5 30020xbf 0x3c 0x3 0xd5 30030xbf 0x3f 0x3 0xd5 30040xbf 0x31 0x3 0xd5 30050xbf 0x32 0x3 0xd5 30060xbf 0x33 0x3 0xd5 30070xbf 0x35 0x3 0xd5 30080xbf 0x36 0x3 0xd5 30090xbf 0x37 0x3 0xd5 30100xbf 0x39 0x3 0xd5 30110xbf 0x3a 0x3 0xd5 30120xbf 0x3b 0x3 0xd5 30130xbf 0x3d 0x3 0xd5 30140xbf 0x3e 0x3 0xd5 30150xbf 0x3f 0x3 0xd5 3016 3017# CHECK: isb 3018# CHECK: isb #12 30190xdf 0x3f 0x3 0xd5 30200xdf 0x3c 0x3 0xd5 3021 3022# CHECK: msr {{spsel|SPSEL}}, #0 3023# CHECK: msr {{daifset|DAIFSET}}, #15 3024# CHECK: msr {{daifclr|DAIFCLR}}, #12 30250xbf 0x40 0x0 0xd5 30260xdf 0x4f 0x3 0xd5 30270xff 0x4c 0x3 0xd5 3028 3029# CHECK: sys #7, c5, c9, #7, x5 3030# CHECK: sys #0, c15, c15, #2 3031# CHECK: sysl x9, #7, c5, c9, #7 3032# CHECK: sysl x1, #0, c15, c15, #2 30330xe5 0x59 0xf 0xd5 30340x5f 0xff 0x8 0xd5 30350xe9 0x59 0x2f 0xd5 30360x41 0xff 0x28 0xd5 3037 3038# CHECK: {{sys #0, c7, c1, #0|ic ialluis}} 3039# CHECK: {{sys #0, c7, c5, #0|ic iallu}} 3040# CHECK: {{sys #3, c7, c5, #1|ic ivau}}, x9 30410x1f 0x71 0x8 0xd5 30420x1f 0x75 0x8 0xd5 30430x29 0x75 0xb 0xd5 3044 3045# CHECK: {{sys #3, c7, c4, #1|dc zva}}, x12 3046# CHECK: {{sys #0, c7, c6, #1|dc ivac}} 3047# CHECK: {{sys #0, c7, c6, #2|dc isw}}, x2 3048# CHECK: {{sys #3, c7, c10, #1|dc cvac}}, x9 3049# CHECK: {{sys #0, c7, c10, #2|dc csw}}, x10 3050# CHECK: {{sys #3, c7, c11, #1|dc cvau}}, x0 3051# CHECK: {{sys #3, c7, c14, #1|dc civac}}, x3 3052# CHECK: {{sys #0, c7, c14, #2|dc cisw}}, x30 30530x2c 0x74 0xb 0xd5 30540x3f 0x76 0x8 0xd5 30550x42 0x76 0x8 0xd5 30560x29 0x7a 0xb 0xd5 30570x4a 0x7a 0x8 0xd5 30580x20 0x7b 0xb 0xd5 30590x23 0x7e 0xb 0xd5 30600x5e 0x7e 0x8 0xd5 3061 3062 3063# CHECK: msr {{teecr32_el1|TEECR32_EL1}}, x12 3064# CHECK: msr {{osdtrrx_el1|OSDTRRX_EL1}}, x12 3065# CHECK: msr {{mdccint_el1|MDCCINT_EL1}}, x12 3066# CHECK: msr {{mdscr_el1|MDSCR_EL1}}, x12 3067# CHECK: msr {{osdtrtx_el1|OSDTRTX_EL1}}, x12 3068# CHECK: msr {{dbgdtr_el0|DBGDTR_EL0}}, x12 3069# CHECK: msr {{dbgdtrtx_el0|DBGDTRTX_EL0}}, x12 3070# CHECK: msr {{oseccr_el1|OSECCR_EL1}}, x12 3071# CHECK: msr {{dbgvcr32_el2|DBGVCR32_EL2}}, x12 3072# CHECK: msr {{dbgbvr0_el1|DBGBVR0_EL1}}, x12 3073# CHECK: msr {{dbgbvr1_el1|DBGBVR1_EL1}}, x12 3074# CHECK: msr {{dbgbvr2_el1|DBGBVR2_EL1}}, x12 3075# CHECK: msr {{dbgbvr3_el1|DBGBVR3_EL1}}, x12 3076# CHECK: msr {{dbgbvr4_el1|DBGBVR4_EL1}}, x12 3077# CHECK: msr {{dbgbvr5_el1|DBGBVR5_EL1}}, x12 3078# CHECK: msr {{dbgbvr6_el1|DBGBVR6_EL1}}, x12 3079# CHECK: msr {{dbgbvr7_el1|DBGBVR7_EL1}}, x12 3080# CHECK: msr {{dbgbvr8_el1|DBGBVR8_EL1}}, x12 3081# CHECK: msr {{dbgbvr9_el1|DBGBVR9_EL1}}, x12 3082# CHECK: msr {{dbgbvr10_el1|DBGBVR10_EL1}}, x12 3083# CHECK: msr {{dbgbvr11_el1|DBGBVR11_EL1}}, x12 3084# CHECK: msr {{dbgbvr12_el1|DBGBVR12_EL1}}, x12 3085# CHECK: msr {{dbgbvr13_el1|DBGBVR13_EL1}}, x12 3086# CHECK: msr {{dbgbvr14_el1|DBGBVR14_EL1}}, x12 3087# CHECK: msr {{dbgbvr15_el1|DBGBVR15_EL1}}, x12 3088# CHECK: msr {{dbgbcr0_el1|DBGBCR0_EL1}}, x12 3089# CHECK: msr {{dbgbcr1_el1|DBGBCR1_EL1}}, x12 3090# CHECK: msr {{dbgbcr2_el1|DBGBCR2_EL1}}, x12 3091# CHECK: msr {{dbgbcr3_el1|DBGBCR3_EL1}}, x12 3092# CHECK: msr {{dbgbcr4_el1|DBGBCR4_EL1}}, x12 3093# CHECK: msr {{dbgbcr5_el1|DBGBCR5_EL1}}, x12 3094# CHECK: msr {{dbgbcr6_el1|DBGBCR6_EL1}}, x12 3095# CHECK: msr {{dbgbcr7_el1|DBGBCR7_EL1}}, x12 3096# CHECK: msr {{dbgbcr8_el1|DBGBCR8_EL1}}, x12 3097# CHECK: msr {{dbgbcr9_el1|DBGBCR9_EL1}}, x12 3098# CHECK: msr {{dbgbcr10_el1|DBGBCR10_EL1}}, x12 3099# CHECK: msr {{dbgbcr11_el1|DBGBCR11_EL1}}, x12 3100# CHECK: msr {{dbgbcr12_el1|DBGBCR12_EL1}}, x12 3101# CHECK: msr {{dbgbcr13_el1|DBGBCR13_EL1}}, x12 3102# CHECK: msr {{dbgbcr14_el1|DBGBCR14_EL1}}, x12 3103# CHECK: msr {{dbgbcr15_el1|DBGBCR15_EL1}}, x12 3104# CHECK: msr {{dbgwvr0_el1|DBGWVR0_EL1}}, x12 3105# CHECK: msr {{dbgwvr1_el1|DBGWVR1_EL1}}, x12 3106# CHECK: msr {{dbgwvr2_el1|DBGWVR2_EL1}}, x12 3107# CHECK: msr {{dbgwvr3_el1|DBGWVR3_EL1}}, x12 3108# CHECK: msr {{dbgwvr4_el1|DBGWVR4_EL1}}, x12 3109# CHECK: msr {{dbgwvr5_el1|DBGWVR5_EL1}}, x12 3110# CHECK: msr {{dbgwvr6_el1|DBGWVR6_EL1}}, x12 3111# CHECK: msr {{dbgwvr7_el1|DBGWVR7_EL1}}, x12 3112# CHECK: msr {{dbgwvr8_el1|DBGWVR8_EL1}}, x12 3113# CHECK: msr {{dbgwvr9_el1|DBGWVR9_EL1}}, x12 3114# CHECK: msr {{dbgwvr10_el1|DBGWVR10_EL1}}, x12 3115# CHECK: msr {{dbgwvr11_el1|DBGWVR11_EL1}}, x12 3116# CHECK: msr {{dbgwvr12_el1|DBGWVR12_EL1}}, x12 3117# CHECK: msr {{dbgwvr13_el1|DBGWVR13_EL1}}, x12 3118# CHECK: msr {{dbgwvr14_el1|DBGWVR14_EL1}}, x12 3119# CHECK: msr {{dbgwvr15_el1|DBGWVR15_EL1}}, x12 3120# CHECK: msr {{dbgwcr0_el1|DBGWCR0_EL1}}, x12 3121# CHECK: msr {{dbgwcr1_el1|DBGWCR1_EL1}}, x12 3122# CHECK: msr {{dbgwcr2_el1|DBGWCR2_EL1}}, x12 3123# CHECK: msr {{dbgwcr3_el1|DBGWCR3_EL1}}, x12 3124# CHECK: msr {{dbgwcr4_el1|DBGWCR4_EL1}}, x12 3125# CHECK: msr {{dbgwcr5_el1|DBGWCR5_EL1}}, x12 3126# CHECK: msr {{dbgwcr6_el1|DBGWCR6_EL1}}, x12 3127# CHECK: msr {{dbgwcr7_el1|DBGWCR7_EL1}}, x12 3128# CHECK: msr {{dbgwcr8_el1|DBGWCR8_EL1}}, x12 3129# CHECK: msr {{dbgwcr9_el1|DBGWCR9_EL1}}, x12 3130# CHECK: msr {{dbgwcr10_el1|DBGWCR10_EL1}}, x12 3131# CHECK: msr {{dbgwcr11_el1|DBGWCR11_EL1}}, x12 3132# CHECK: msr {{dbgwcr12_el1|DBGWCR12_EL1}}, x12 3133# CHECK: msr {{dbgwcr13_el1|DBGWCR13_EL1}}, x12 3134# CHECK: msr {{dbgwcr14_el1|DBGWCR14_EL1}}, x12 3135# CHECK: msr {{dbgwcr15_el1|DBGWCR15_EL1}}, x12 3136# CHECK: msr {{teehbr32_el1|TEEHBR32_EL1}}, x12 3137# CHECK: msr {{oslar_el1|OSLAR_EL1}}, x12 3138# CHECK: msr {{osdlr_el1|OSDLR_EL1}}, x12 3139# CHECK: msr {{dbgprcr_el1|DBGPRCR_EL1}}, x12 3140# CHECK: msr {{dbgclaimset_el1|DBGCLAIMSET_EL1}}, x12 3141# CHECK: msr {{dbgclaimclr_el1|DBGCLAIMCLR_EL1}}, x12 3142# CHECK: msr {{csselr_el1|CSSELR_EL1}}, x12 3143# CHECK: msr {{vpidr_el2|VPIDR_EL2}}, x12 3144# CHECK: msr {{vmpidr_el2|VMPIDR_EL2}}, x12 3145# CHECK: msr {{sctlr_el1|SCTLR_EL1}}, x12 3146# CHECK: msr {{sctlr_el2|SCTLR_EL2}}, x12 3147# CHECK: msr {{sctlr_el3|SCTLR_EL3}}, x12 3148# CHECK: msr {{actlr_el1|ACTLR_EL1}}, x12 3149# CHECK: msr {{actlr_el2|ACTLR_EL2}}, x12 3150# CHECK: msr {{actlr_el3|ACTLR_EL3}}, x12 3151# CHECK: msr {{cpacr_el1|CPACR_EL1}}, x12 3152# CHECK: msr {{hcr_el2|HCR_EL2}}, x12 3153# CHECK: msr {{scr_el3|SCR_EL3}}, x12 3154# CHECK: msr {{mdcr_el2|MDCR_EL2}}, x12 3155# CHECK: msr {{sder32_el3|SDER32_EL3}}, x12 3156# CHECK: msr {{cptr_el2|CPTR_EL2}}, x12 3157# CHECK: msr {{cptr_el3|CPTR_EL3}}, x12 3158# CHECK: msr {{hstr_el2|HSTR_EL2}}, x12 3159# CHECK: msr {{hacr_el2|HACR_EL2}}, x12 3160# CHECK: msr {{mdcr_el3|MDCR_EL3}}, x12 3161# CHECK: msr {{ttbr0_el1|TTBR0_EL1}}, x12 3162# CHECK: msr {{ttbr0_el2|TTBR0_EL2}}, x12 3163# CHECK: msr {{ttbr0_el3|TTBR0_EL3}}, x12 3164# CHECK: msr {{ttbr1_el1|TTBR1_EL1}}, x12 3165# CHECK: msr {{tcr_el1|TCR_EL1}}, x12 3166# CHECK: msr {{tcr_el2|TCR_EL2}}, x12 3167# CHECK: msr {{tcr_el3|TCR_EL3}}, x12 3168# CHECK: msr {{vttbr_el2|VTTBR_EL2}}, x12 3169# CHECK: msr {{vtcr_el2|VTCR_EL2}}, x12 3170# CHECK: msr {{dacr32_el2|DACR32_EL2}}, x12 3171# CHECK: msr {{spsr_el1|SPSR_EL1}}, x12 3172# CHECK: msr {{spsr_el2|SPSR_EL2}}, x12 3173# CHECK: msr {{spsr_el3|SPSR_EL3}}, x12 3174# CHECK: msr {{elr_el1|ELR_EL1}}, x12 3175# CHECK: msr {{elr_el2|ELR_EL2}}, x12 3176# CHECK: msr {{elr_el3|ELR_EL3}}, x12 3177# CHECK: msr {{sp_el0|SP_EL0}}, x12 3178# CHECK: msr {{sp_el1|SP_EL1}}, x12 3179# CHECK: msr {{sp_el2|SP_EL2}}, x12 3180# CHECK: msr {{spsel|SPSEL}}, x12 3181# CHECK: msr {{nzcv|NZCV}}, x12 3182# CHECK: msr {{daif|DAIF}}, x12 3183# CHECK: msr {{currentel|CURRENTEL}}, x12 3184# CHECK: msr {{spsr_irq|SPSR_IRQ}}, x12 3185# CHECK: msr {{spsr_abt|SPSR_ABT}}, x12 3186# CHECK: msr {{spsr_und|SPSR_UND}}, x12 3187# CHECK: msr {{spsr_fiq|SPSR_FIQ}}, x12 3188# CHECK: msr {{fpcr|FPCR}}, x12 3189# CHECK: msr {{fpsr|FPSR}}, x12 3190# CHECK: msr {{dspsr_el0|DSPSR_EL0}}, x12 3191# CHECK: msr {{dlr_el0|DLR_EL0}}, x12 3192# CHECK: msr {{ifsr32_el2|IFSR32_EL2}}, x12 3193# CHECK: msr {{afsr0_el1|AFSR0_EL1}}, x12 3194# CHECK: msr {{afsr0_el2|AFSR0_EL2}}, x12 3195# CHECK: msr {{afsr0_el3|AFSR0_EL3}}, x12 3196# CHECK: msr {{afsr1_el1|AFSR1_EL1}}, x12 3197# CHECK: msr {{afsr1_el2|AFSR1_EL2}}, x12 3198# CHECK: msr {{afsr1_el3|AFSR1_EL3}}, x12 3199# CHECK: msr {{esr_el1|ESR_EL1}}, x12 3200# CHECK: msr {{esr_el2|ESR_EL2}}, x12 3201# CHECK: msr {{esr_el3|ESR_EL3}}, x12 3202# CHECK: msr {{fpexc32_el2|FPEXC32_EL2}}, x12 3203# CHECK: msr {{far_el1|FAR_EL1}}, x12 3204# CHECK: msr {{far_el2|FAR_EL2}}, x12 3205# CHECK: msr {{far_el3|FAR_EL3}}, x12 3206# CHECK: msr {{hpfar_el2|HPFAR_EL2}}, x12 3207# CHECK: msr {{par_el1|PAR_EL1}}, x12 3208# CHECK: msr {{pmcr_el0|PMCR_EL0}}, x12 3209# CHECK: msr {{pmcntenset_el0|PMCNTENSET_EL0}}, x12 3210# CHECK: msr {{pmcntenclr_el0|PMCNTENCLR_EL0}}, x12 3211# CHECK: msr {{pmovsclr_el0|PMOVSCLR_EL0}}, x12 3212# CHECK: msr {{pmselr_el0|PMSELR_EL0}}, x12 3213# CHECK: msr {{pmccntr_el0|PMCCNTR_EL0}}, x12 3214# CHECK: msr {{pmxevtyper_el0|PMXEVTYPER_EL0}}, x12 3215# CHECK: msr {{pmxevcntr_el0|PMXEVCNTR_EL0}}, x12 3216# CHECK: msr {{pmuserenr_el0|PMUSERENR_EL0}}, x12 3217# CHECK: msr {{pmintenset_el1|PMINTENSET_EL1}}, x12 3218# CHECK: msr {{pmintenclr_el1|PMINTENCLR_EL1}}, x12 3219# CHECK: msr {{pmovsset_el0|PMOVSSET_EL0}}, x12 3220# CHECK: msr {{mair_el1|MAIR_EL1}}, x12 3221# CHECK: msr {{mair_el2|MAIR_EL2}}, x12 3222# CHECK: msr {{mair_el3|MAIR_EL3}}, x12 3223# CHECK: msr {{amair_el1|AMAIR_EL1}}, x12 3224# CHECK: msr {{amair_el2|AMAIR_EL2}}, x12 3225# CHECK: msr {{amair_el3|AMAIR_EL3}}, x12 3226# CHECK: msr {{vbar_el1|VBAR_EL1}}, x12 3227# CHECK: msr {{vbar_el2|VBAR_EL2}}, x12 3228# CHECK: msr {{vbar_el3|VBAR_EL3}}, x12 3229# CHECK: msr {{rmr_el1|RMR_EL1}}, x12 3230# CHECK: msr {{rmr_el2|RMR_EL2}}, x12 3231# CHECK: msr {{rmr_el3|RMR_EL3}}, x12 3232# CHECK: msr {{tpidr_el0|TPIDR_EL0}}, x12 3233# CHECK: msr {{tpidr_el2|TPIDR_EL2}}, x12 3234# CHECK: msr {{tpidr_el3|TPIDR_EL3}}, x12 3235# CHECK: msr {{tpidrro_el0|TPIDRRO_EL0}}, x12 3236# CHECK: msr {{tpidr_el1|TPIDR_EL1}}, x12 3237# CHECK: msr {{cntfrq_el0|CNTFRQ_EL0}}, x12 3238# CHECK: msr {{cntvoff_el2|CNTVOFF_EL2}}, x12 3239# CHECK: msr {{cntkctl_el1|CNTKCTL_EL1}}, x12 3240# CHECK: msr {{cnthctl_el2|CNTHCTL_EL2}}, x12 3241# CHECK: msr {{cntp_tval_el0|CNTP_TVAL_EL0}}, x12 3242# CHECK: msr {{cnthp_tval_el2|CNTHP_TVAL_EL2}}, x12 3243# CHECK: msr {{cntps_tval_el1|CNTPS_TVAL_EL1}}, x12 3244# CHECK: msr {{cntp_ctl_el0|CNTP_CTL_EL0}}, x12 3245# CHECK: msr {{cnthp_ctl_el2|CNTHP_CTL_EL2}}, x12 3246# CHECK: msr {{cntps_ctl_el1|CNTPS_CTL_EL1}}, x12 3247# CHECK: msr {{cntp_cval_el0|CNTP_CVAL_EL0}}, x12 3248# CHECK: msr {{cnthp_cval_el2|CNTHP_CVAL_EL2}}, x12 3249# CHECK: msr {{cntps_cval_el1|CNTPS_CVAL_EL1}}, x12 3250# CHECK: msr {{cntv_tval_el0|CNTV_TVAL_EL0}}, x12 3251# CHECK: msr {{cntv_ctl_el0|CNTV_CTL_EL0}}, x12 3252# CHECK: msr {{cntv_cval_el0|CNTV_CVAL_EL0}}, x12 3253# CHECK: msr {{pmevcntr0_el0|PMEVCNTR0_EL0}}, x12 3254# CHECK: msr {{pmevcntr1_el0|PMEVCNTR1_EL0}}, x12 3255# CHECK: msr {{pmevcntr2_el0|PMEVCNTR2_EL0}}, x12 3256# CHECK: msr {{pmevcntr3_el0|PMEVCNTR3_EL0}}, x12 3257# CHECK: msr {{pmevcntr4_el0|PMEVCNTR4_EL0}}, x12 3258# CHECK: msr {{pmevcntr5_el0|PMEVCNTR5_EL0}}, x12 3259# CHECK: msr {{pmevcntr6_el0|PMEVCNTR6_EL0}}, x12 3260# CHECK: msr {{pmevcntr7_el0|PMEVCNTR7_EL0}}, x12 3261# CHECK: msr {{pmevcntr8_el0|PMEVCNTR8_EL0}}, x12 3262# CHECK: msr {{pmevcntr9_el0|PMEVCNTR9_EL0}}, x12 3263# CHECK: msr {{pmevcntr10_el0|PMEVCNTR10_EL0}}, x12 3264# CHECK: msr {{pmevcntr11_el0|PMEVCNTR11_EL0}}, x12 3265# CHECK: msr {{pmevcntr12_el0|PMEVCNTR12_EL0}}, x12 3266# CHECK: msr {{pmevcntr13_el0|PMEVCNTR13_EL0}}, x12 3267# CHECK: msr {{pmevcntr14_el0|PMEVCNTR14_EL0}}, x12 3268# CHECK: msr {{pmevcntr15_el0|PMEVCNTR15_EL0}}, x12 3269# CHECK: msr {{pmevcntr16_el0|PMEVCNTR16_EL0}}, x12 3270# CHECK: msr {{pmevcntr17_el0|PMEVCNTR17_EL0}}, x12 3271# CHECK: msr {{pmevcntr18_el0|PMEVCNTR18_EL0}}, x12 3272# CHECK: msr {{pmevcntr19_el0|PMEVCNTR19_EL0}}, x12 3273# CHECK: msr {{pmevcntr20_el0|PMEVCNTR20_EL0}}, x12 3274# CHECK: msr {{pmevcntr21_el0|PMEVCNTR21_EL0}}, x12 3275# CHECK: msr {{pmevcntr22_el0|PMEVCNTR22_EL0}}, x12 3276# CHECK: msr {{pmevcntr23_el0|PMEVCNTR23_EL0}}, x12 3277# CHECK: msr {{pmevcntr24_el0|PMEVCNTR24_EL0}}, x12 3278# CHECK: msr {{pmevcntr25_el0|PMEVCNTR25_EL0}}, x12 3279# CHECK: msr {{pmevcntr26_el0|PMEVCNTR26_EL0}}, x12 3280# CHECK: msr {{pmevcntr27_el0|PMEVCNTR27_EL0}}, x12 3281# CHECK: msr {{pmevcntr28_el0|PMEVCNTR28_EL0}}, x12 3282# CHECK: msr {{pmevcntr29_el0|PMEVCNTR29_EL0}}, x12 3283# CHECK: msr {{pmevcntr30_el0|PMEVCNTR30_EL0}}, x12 3284# CHECK: msr {{pmccfiltr_el0|PMCCFILTR_EL0}}, x12 3285# CHECK: msr {{pmevtyper0_el0|PMEVTYPER0_EL0}}, x12 3286# CHECK: msr {{pmevtyper1_el0|PMEVTYPER1_EL0}}, x12 3287# CHECK: msr {{pmevtyper2_el0|PMEVTYPER2_EL0}}, x12 3288# CHECK: msr {{pmevtyper3_el0|PMEVTYPER3_EL0}}, x12 3289# CHECK: msr {{pmevtyper4_el0|PMEVTYPER4_EL0}}, x12 3290# CHECK: msr {{pmevtyper5_el0|PMEVTYPER5_EL0}}, x12 3291# CHECK: msr {{pmevtyper6_el0|PMEVTYPER6_EL0}}, x12 3292# CHECK: msr {{pmevtyper7_el0|PMEVTYPER7_EL0}}, x12 3293# CHECK: msr {{pmevtyper8_el0|PMEVTYPER8_EL0}}, x12 3294# CHECK: msr {{pmevtyper9_el0|PMEVTYPER9_EL0}}, x12 3295# CHECK: msr {{pmevtyper10_el0|PMEVTYPER10_EL0}}, x12 3296# CHECK: msr {{pmevtyper11_el0|PMEVTYPER11_EL0}}, x12 3297# CHECK: msr {{pmevtyper12_el0|PMEVTYPER12_EL0}}, x12 3298# CHECK: msr {{pmevtyper13_el0|PMEVTYPER13_EL0}}, x12 3299# CHECK: msr {{pmevtyper14_el0|PMEVTYPER14_EL0}}, x12 3300# CHECK: msr {{pmevtyper15_el0|PMEVTYPER15_EL0}}, x12 3301# CHECK: msr {{pmevtyper16_el0|PMEVTYPER16_EL0}}, x12 3302# CHECK: msr {{pmevtyper17_el0|PMEVTYPER17_EL0}}, x12 3303# CHECK: msr {{pmevtyper18_el0|PMEVTYPER18_EL0}}, x12 3304# CHECK: msr {{pmevtyper19_el0|PMEVTYPER19_EL0}}, x12 3305# CHECK: msr {{pmevtyper20_el0|PMEVTYPER20_EL0}}, x12 3306# CHECK: msr {{pmevtyper21_el0|PMEVTYPER21_EL0}}, x12 3307# CHECK: msr {{pmevtyper22_el0|PMEVTYPER22_EL0}}, x12 3308# CHECK: msr {{pmevtyper23_el0|PMEVTYPER23_EL0}}, x12 3309# CHECK: msr {{pmevtyper24_el0|PMEVTYPER24_EL0}}, x12 3310# CHECK: msr {{pmevtyper25_el0|PMEVTYPER25_EL0}}, x12 3311# CHECK: msr {{pmevtyper26_el0|PMEVTYPER26_EL0}}, x12 3312# CHECK: msr {{pmevtyper27_el0|PMEVTYPER27_EL0}}, x12 3313# CHECK: msr {{pmevtyper28_el0|PMEVTYPER28_EL0}}, x12 3314# CHECK: msr {{pmevtyper29_el0|PMEVTYPER29_EL0}}, x12 3315# CHECK: msr {{pmevtyper30_el0|PMEVTYPER30_EL0}}, x12 3316# CHECK: mrs x9, {{teecr32_el1|TEECR32_EL1}} 3317# CHECK: mrs x9, {{osdtrrx_el1|OSDTRRX_EL1}} 3318# CHECK: mrs x9, {{mdccsr_el0|MDCCSR_EL0}} 3319# CHECK: mrs x9, {{mdccint_el1|MDCCINT_EL1}} 3320# CHECK: mrs x9, {{mdscr_el1|MDSCR_EL1}} 3321# CHECK: mrs x9, {{osdtrtx_el1|OSDTRTX_EL1}} 3322# CHECK: mrs x9, {{dbgdtr_el0|DBGDTR_EL0}} 3323# CHECK: mrs x9, {{dbgdtrrx_el0|DBGDTRRX_EL0}} 3324# CHECK: mrs x9, {{oseccr_el1|OSECCR_EL1}} 3325# CHECK: mrs x9, {{dbgvcr32_el2|DBGVCR32_EL2}} 3326# CHECK: mrs x9, {{dbgbvr0_el1|DBGBVR0_EL1}} 3327# CHECK: mrs x9, {{dbgbvr1_el1|DBGBVR1_EL1}} 3328# CHECK: mrs x9, {{dbgbvr2_el1|DBGBVR2_EL1}} 3329# CHECK: mrs x9, {{dbgbvr3_el1|DBGBVR3_EL1}} 3330# CHECK: mrs x9, {{dbgbvr4_el1|DBGBVR4_EL1}} 3331# CHECK: mrs x9, {{dbgbvr5_el1|DBGBVR5_EL1}} 3332# CHECK: mrs x9, {{dbgbvr6_el1|DBGBVR6_EL1}} 3333# CHECK: mrs x9, {{dbgbvr7_el1|DBGBVR7_EL1}} 3334# CHECK: mrs x9, {{dbgbvr8_el1|DBGBVR8_EL1}} 3335# CHECK: mrs x9, {{dbgbvr9_el1|DBGBVR9_EL1}} 3336# CHECK: mrs x9, {{dbgbvr10_el1|DBGBVR10_EL1}} 3337# CHECK: mrs x9, {{dbgbvr11_el1|DBGBVR11_EL1}} 3338# CHECK: mrs x9, {{dbgbvr12_el1|DBGBVR12_EL1}} 3339# CHECK: mrs x9, {{dbgbvr13_el1|DBGBVR13_EL1}} 3340# CHECK: mrs x9, {{dbgbvr14_el1|DBGBVR14_EL1}} 3341# CHECK: mrs x9, {{dbgbvr15_el1|DBGBVR15_EL1}} 3342# CHECK: mrs x9, {{dbgbcr0_el1|DBGBCR0_EL1}} 3343# CHECK: mrs x9, {{dbgbcr1_el1|DBGBCR1_EL1}} 3344# CHECK: mrs x9, {{dbgbcr2_el1|DBGBCR2_EL1}} 3345# CHECK: mrs x9, {{dbgbcr3_el1|DBGBCR3_EL1}} 3346# CHECK: mrs x9, {{dbgbcr4_el1|DBGBCR4_EL1}} 3347# CHECK: mrs x9, {{dbgbcr5_el1|DBGBCR5_EL1}} 3348# CHECK: mrs x9, {{dbgbcr6_el1|DBGBCR6_EL1}} 3349# CHECK: mrs x9, {{dbgbcr7_el1|DBGBCR7_EL1}} 3350# CHECK: mrs x9, {{dbgbcr8_el1|DBGBCR8_EL1}} 3351# CHECK: mrs x9, {{dbgbcr9_el1|DBGBCR9_EL1}} 3352# CHECK: mrs x9, {{dbgbcr10_el1|DBGBCR10_EL1}} 3353# CHECK: mrs x9, {{dbgbcr11_el1|DBGBCR11_EL1}} 3354# CHECK: mrs x9, {{dbgbcr12_el1|DBGBCR12_EL1}} 3355# CHECK: mrs x9, {{dbgbcr13_el1|DBGBCR13_EL1}} 3356# CHECK: mrs x9, {{dbgbcr14_el1|DBGBCR14_EL1}} 3357# CHECK: mrs x9, {{dbgbcr15_el1|DBGBCR15_EL1}} 3358# CHECK: mrs x9, {{dbgwvr0_el1|DBGWVR0_EL1}} 3359# CHECK: mrs x9, {{dbgwvr1_el1|DBGWVR1_EL1}} 3360# CHECK: mrs x9, {{dbgwvr2_el1|DBGWVR2_EL1}} 3361# CHECK: mrs x9, {{dbgwvr3_el1|DBGWVR3_EL1}} 3362# CHECK: mrs x9, {{dbgwvr4_el1|DBGWVR4_EL1}} 3363# CHECK: mrs x9, {{dbgwvr5_el1|DBGWVR5_EL1}} 3364# CHECK: mrs x9, {{dbgwvr6_el1|DBGWVR6_EL1}} 3365# CHECK: mrs x9, {{dbgwvr7_el1|DBGWVR7_EL1}} 3366# CHECK: mrs x9, {{dbgwvr8_el1|DBGWVR8_EL1}} 3367# CHECK: mrs x9, {{dbgwvr9_el1|DBGWVR9_EL1}} 3368# CHECK: mrs x9, {{dbgwvr10_el1|DBGWVR10_EL1}} 3369# CHECK: mrs x9, {{dbgwvr11_el1|DBGWVR11_EL1}} 3370# CHECK: mrs x9, {{dbgwvr12_el1|DBGWVR12_EL1}} 3371# CHECK: mrs x9, {{dbgwvr13_el1|DBGWVR13_EL1}} 3372# CHECK: mrs x9, {{dbgwvr14_el1|DBGWVR14_EL1}} 3373# CHECK: mrs x9, {{dbgwvr15_el1|DBGWVR15_EL1}} 3374# CHECK: mrs x9, {{dbgwcr0_el1|DBGWCR0_EL1}} 3375# CHECK: mrs x9, {{dbgwcr1_el1|DBGWCR1_EL1}} 3376# CHECK: mrs x9, {{dbgwcr2_el1|DBGWCR2_EL1}} 3377# CHECK: mrs x9, {{dbgwcr3_el1|DBGWCR3_EL1}} 3378# CHECK: mrs x9, {{dbgwcr4_el1|DBGWCR4_EL1}} 3379# CHECK: mrs x9, {{dbgwcr5_el1|DBGWCR5_EL1}} 3380# CHECK: mrs x9, {{dbgwcr6_el1|DBGWCR6_EL1}} 3381# CHECK: mrs x9, {{dbgwcr7_el1|DBGWCR7_EL1}} 3382# CHECK: mrs x9, {{dbgwcr8_el1|DBGWCR8_EL1}} 3383# CHECK: mrs x9, {{dbgwcr9_el1|DBGWCR9_EL1}} 3384# CHECK: mrs x9, {{dbgwcr10_el1|DBGWCR10_EL1}} 3385# CHECK: mrs x9, {{dbgwcr11_el1|DBGWCR11_EL1}} 3386# CHECK: mrs x9, {{dbgwcr12_el1|DBGWCR12_EL1}} 3387# CHECK: mrs x9, {{dbgwcr13_el1|DBGWCR13_EL1}} 3388# CHECK: mrs x9, {{dbgwcr14_el1|DBGWCR14_EL1}} 3389# CHECK: mrs x9, {{dbgwcr15_el1|DBGWCR15_EL1}} 3390# CHECK: mrs x9, {{mdrar_el1|MDRAR_EL1}} 3391# CHECK: mrs x9, {{teehbr32_el1|TEEHBR32_EL1}} 3392# CHECK: mrs x9, {{oslsr_el1|OSLSR_EL1}} 3393# CHECK: mrs x9, {{osdlr_el1|OSDLR_EL1}} 3394# CHECK: mrs x9, {{dbgprcr_el1|DBGPRCR_EL1}} 3395# CHECK: mrs x9, {{dbgclaimset_el1|DBGCLAIMSET_EL1}} 3396# CHECK: mrs x9, {{dbgclaimclr_el1|DBGCLAIMCLR_EL1}} 3397# CHECK: mrs x9, {{dbgauthstatus_el1|DBGAUTHSTATUS_EL1}} 3398# CHECK: mrs x9, {{midr_el1|MIDR_EL1}} 3399# CHECK: mrs x9, {{ccsidr_el1|CCSIDR_EL1}} 3400# CHECK: mrs x9, {{csselr_el1|CSSELR_EL1}} 3401# CHECK: mrs x9, {{vpidr_el2|VPIDR_EL2}} 3402# CHECK: mrs x9, {{clidr_el1|CLIDR_EL1}} 3403# CHECK: mrs x9, {{ctr_el0|CTR_EL0}} 3404# CHECK: mrs x9, {{mpidr_el1|MPIDR_EL1}} 3405# CHECK: mrs x9, {{vmpidr_el2|VMPIDR_EL2}} 3406# CHECK: mrs x9, {{revidr_el1|REVIDR_EL1}} 3407# CHECK: mrs x9, {{aidr_el1|AIDR_EL1}} 3408# CHECK: mrs x9, {{dczid_el0|DCZID_EL0}} 3409# CHECK: mrs x9, {{id_pfr0_el1|ID_PFR0_EL1}} 3410# CHECK: mrs x9, {{id_pfr1_el1|ID_PFR1_EL1}} 3411# CHECK: mrs x9, {{id_dfr0_el1|ID_DFR0_EL1}} 3412# CHECK: mrs x9, {{id_afr0_el1|ID_AFR0_EL1}} 3413# CHECK: mrs x9, {{id_mmfr0_el1|ID_MMFR0_EL1}} 3414# CHECK: mrs x9, {{id_mmfr1_el1|ID_MMFR1_EL1}} 3415# CHECK: mrs x9, {{id_mmfr2_el1|ID_MMFR2_EL1}} 3416# CHECK: mrs x9, {{id_mmfr3_el1|ID_MMFR3_EL1}} 3417# CHECK: mrs x9, {{id_isar0_el1|ID_ISAR0_EL1}} 3418# CHECK: mrs x9, {{id_isar1_el1|ID_ISAR1_EL1}} 3419# CHECK: mrs x9, {{id_isar2_el1|ID_ISAR2_EL1}} 3420# CHECK: mrs x9, {{id_isar3_el1|ID_ISAR3_EL1}} 3421# CHECK: mrs x9, {{id_isar4_el1|ID_ISAR4_EL1}} 3422# CHECK: mrs x9, {{id_isar5_el1|ID_ISAR5_EL1}} 3423# CHECK: mrs x9, {{mvfr0_el1|MVFR0_EL1}} 3424# CHECK: mrs x9, {{mvfr1_el1|MVFR1_EL1}} 3425# CHECK: mrs x9, {{mvfr2_el1|MVFR2_EL1}} 3426# CHECK: mrs x9, {{id_aa64pfr0_el1|ID_AA64PFR0_EL1}} 3427# CHECK: mrs x9, {{id_aa64pfr1_el1|ID_AA64PFR1_EL1}} 3428# CHECK: mrs x9, {{id_aa64dfr0_el1|ID_AA64DFR0_EL1}} 3429# CHECK: mrs x9, {{id_aa64dfr1_el1|ID_AA64DFR1_EL1}} 3430# CHECK: mrs x9, {{id_aa64afr0_el1|ID_AA64AFR0_EL1}} 3431# CHECK: mrs x9, {{id_aa64afr1_el1|ID_AA64AFR1_EL1}} 3432# CHECK: mrs x9, {{id_aa64isar0_el1|ID_AA64ISAR0_EL1}} 3433# CHECK: mrs x9, {{id_aa64isar1_el1|ID_AA64ISAR1_EL1}} 3434# CHECK: mrs x9, {{id_aa64mmfr0_el1|ID_AA64MMFR0_EL1}} 3435# CHECK: mrs x9, {{id_aa64mmfr1_el1|ID_AA64MMFR1_EL1}} 3436# CHECK: mrs x9, {{sctlr_el1|SCTLR_EL1}} 3437# CHECK: mrs x9, {{sctlr_el2|SCTLR_EL2}} 3438# CHECK: mrs x9, {{sctlr_el3|SCTLR_EL3}} 3439# CHECK: mrs x9, {{actlr_el1|ACTLR_EL1}} 3440# CHECK: mrs x9, {{actlr_el2|ACTLR_EL2}} 3441# CHECK: mrs x9, {{actlr_el3|ACTLR_EL3}} 3442# CHECK: mrs x9, {{cpacr_el1|CPACR_EL1}} 3443# CHECK: mrs x9, {{hcr_el2|HCR_EL2}} 3444# CHECK: mrs x9, {{scr_el3|SCR_EL3}} 3445# CHECK: mrs x9, {{mdcr_el2|MDCR_EL2}} 3446# CHECK: mrs x9, {{sder32_el3|SDER32_EL3}} 3447# CHECK: mrs x9, {{cptr_el2|CPTR_EL2}} 3448# CHECK: mrs x9, {{cptr_el3|CPTR_EL3}} 3449# CHECK: mrs x9, {{hstr_el2|HSTR_EL2}} 3450# CHECK: mrs x9, {{hacr_el2|HACR_EL2}} 3451# CHECK: mrs x9, {{mdcr_el3|MDCR_EL3}} 3452# CHECK: mrs x9, {{ttbr0_el1|TTBR0_EL1}} 3453# CHECK: mrs x9, {{ttbr0_el2|TTBR0_EL2}} 3454# CHECK: mrs x9, {{ttbr0_el3|TTBR0_EL3}} 3455# CHECK: mrs x9, {{ttbr1_el1|TTBR1_EL1}} 3456# CHECK: mrs x9, {{tcr_el1|TCR_EL1}} 3457# CHECK: mrs x9, {{tcr_el2|TCR_EL2}} 3458# CHECK: mrs x9, {{tcr_el3|TCR_EL3}} 3459# CHECK: mrs x9, {{vttbr_el2|VTTBR_EL2}} 3460# CHECK: mrs x9, {{vtcr_el2|VTCR_EL2}} 3461# CHECK: mrs x9, {{dacr32_el2|DACR32_EL2}} 3462# CHECK: mrs x9, {{spsr_el1|SPSR_EL1}} 3463# CHECK: mrs x9, {{spsr_el2|SPSR_EL2}} 3464# CHECK: mrs x9, {{spsr_el3|SPSR_EL3}} 3465# CHECK: mrs x9, {{elr_el1|ELR_EL1}} 3466# CHECK: mrs x9, {{elr_el2|ELR_EL2}} 3467# CHECK: mrs x9, {{elr_el3|ELR_EL3}} 3468# CHECK: mrs x9, {{sp_el0|SP_EL0}} 3469# CHECK: mrs x9, {{sp_el1|SP_EL1}} 3470# CHECK: mrs x9, {{sp_el2|SP_EL2}} 3471# CHECK: mrs x9, {{spsel|SPSEL}} 3472# CHECK: mrs x9, {{nzcv|NZCV}} 3473# CHECK: mrs x9, {{daif|DAIF}} 3474# CHECK: mrs x9, {{currentel|CURRENTEL}} 3475# CHECK: mrs x9, {{spsr_irq|SPSR_IRQ}} 3476# CHECK: mrs x9, {{spsr_abt|SPSR_ABT}} 3477# CHECK: mrs x9, {{spsr_und|SPSR_UND}} 3478# CHECK: mrs x9, {{spsr_fiq|SPSR_FIQ}} 3479# CHECK: mrs x9, {{fpcr|FPCR}} 3480# CHECK: mrs x9, {{fpsr|FPSR}} 3481# CHECK: mrs x9, {{dspsr_el0|DSPSR_EL0}} 3482# CHECK: mrs x9, {{dlr_el0|DLR_EL0}} 3483# CHECK: mrs x9, {{ifsr32_el2|IFSR32_EL2}} 3484# CHECK: mrs x9, {{afsr0_el1|AFSR0_EL1}} 3485# CHECK: mrs x9, {{afsr0_el2|AFSR0_EL2}} 3486# CHECK: mrs x9, {{afsr0_el3|AFSR0_EL3}} 3487# CHECK: mrs x9, {{afsr1_el1|AFSR1_EL1}} 3488# CHECK: mrs x9, {{afsr1_el2|AFSR1_EL2}} 3489# CHECK: mrs x9, {{afsr1_el3|AFSR1_EL3}} 3490# CHECK: mrs x9, {{esr_el1|ESR_EL1}} 3491# CHECK: mrs x9, {{esr_el2|ESR_EL2}} 3492# CHECK: mrs x9, {{esr_el3|ESR_EL3}} 3493# CHECK: mrs x9, {{fpexc32_el2|FPEXC32_EL2}} 3494# CHECK: mrs x9, {{far_el1|FAR_EL1}} 3495# CHECK: mrs x9, {{far_el2|FAR_EL2}} 3496# CHECK: mrs x9, {{far_el3|FAR_EL3}} 3497# CHECK: mrs x9, {{hpfar_el2|HPFAR_EL2}} 3498# CHECK: mrs x9, {{par_el1|PAR_EL1}} 3499# CHECK: mrs x9, {{pmcr_el0|PMCR_EL0}} 3500# CHECK: mrs x9, {{pmcntenset_el0|PMCNTENSET_EL0}} 3501# CHECK: mrs x9, {{pmcntenclr_el0|PMCNTENCLR_EL0}} 3502# CHECK: mrs x9, {{pmovsclr_el0|PMOVSCLR_EL0}} 3503# CHECK: mrs x9, {{pmselr_el0|PMSELR_EL0}} 3504# CHECK: mrs x9, {{pmceid0_el0|PMCEID0_EL0}} 3505# CHECK: mrs x9, {{pmceid1_el0|PMCEID1_EL0}} 3506# CHECK: mrs x9, {{pmccntr_el0|PMCCNTR_EL0}} 3507# CHECK: mrs x9, {{pmxevtyper_el0|PMXEVTYPER_EL0}} 3508# CHECK: mrs x9, {{pmxevcntr_el0|PMXEVCNTR_EL0}} 3509# CHECK: mrs x9, {{pmuserenr_el0|PMUSERENR_EL0}} 3510# CHECK: mrs x9, {{pmintenset_el1|PMINTENSET_EL1}} 3511# CHECK: mrs x9, {{pmintenclr_el1|PMINTENCLR_EL1}} 3512# CHECK: mrs x9, {{pmovsset_el0|PMOVSSET_EL0}} 3513# CHECK: mrs x9, {{mair_el1|MAIR_EL1}} 3514# CHECK: mrs x9, {{mair_el2|MAIR_EL2}} 3515# CHECK: mrs x9, {{mair_el3|MAIR_EL3}} 3516# CHECK: mrs x9, {{amair_el1|AMAIR_EL1}} 3517# CHECK: mrs x9, {{amair_el2|AMAIR_EL2}} 3518# CHECK: mrs x9, {{amair_el3|AMAIR_EL3}} 3519# CHECK: mrs x9, {{vbar_el1|VBAR_EL1}} 3520# CHECK: mrs x9, {{vbar_el2|VBAR_EL2}} 3521# CHECK: mrs x9, {{vbar_el3|VBAR_EL3}} 3522# CHECK: mrs x9, {{rvbar_el1|RVBAR_EL1}} 3523# CHECK: mrs x9, {{rvbar_el2|RVBAR_EL2}} 3524# CHECK: mrs x9, {{rvbar_el3|RVBAR_EL3}} 3525# CHECK: mrs x9, {{rmr_el1|RMR_EL1}} 3526# CHECK: mrs x9, {{rmr_el2|RMR_EL2}} 3527# CHECK: mrs x9, {{rmr_el3|RMR_EL3}} 3528# CHECK: mrs x9, {{isr_el1|ISR_EL1}} 3529# CHECK: mrs x9, {{contextidr_el1|CONTEXTIDR_EL1}} 3530# CHECK: mrs x9, {{tpidr_el0|TPIDR_EL0}} 3531# CHECK: mrs x9, {{tpidr_el2|TPIDR_EL2}} 3532# CHECK: mrs x9, {{tpidr_el3|TPIDR_EL3}} 3533# CHECK: mrs x9, {{tpidrro_el0|TPIDRRO_EL0}} 3534# CHECK: mrs x9, {{tpidr_el1|TPIDR_EL1}} 3535# CHECK: mrs x9, {{cntfrq_el0|CNTFRQ_EL0}} 3536# CHECK: mrs x9, {{cntpct_el0|CNTPCT_EL0}} 3537# CHECK: mrs x9, {{cntvct_el0|CNTVCT_EL0}} 3538# CHECK: mrs x9, {{cntvoff_el2|CNTVOFF_EL2}} 3539# CHECK: mrs x9, {{cntkctl_el1|CNTKCTL_EL1}} 3540# CHECK: mrs x9, {{cnthctl_el2|CNTHCTL_EL2}} 3541# CHECK: mrs x9, {{cntp_tval_el0|CNTP_TVAL_EL0}} 3542# CHECK: mrs x9, {{cnthp_tval_el2|CNTHP_TVAL_EL2}} 3543# CHECK: mrs x9, {{cntps_tval_el1|CNTPS_TVAL_EL1}} 3544# CHECK: mrs x9, {{cntp_ctl_el0|CNTP_CTL_EL0}} 3545# CHECK: mrs x9, {{cnthp_ctl_el2|CNTHP_CTL_EL2}} 3546# CHECK: mrs x9, {{cntps_ctl_el1|CNTPS_CTL_EL1}} 3547# CHECK: mrs x9, {{cntp_cval_el0|CNTP_CVAL_EL0}} 3548# CHECK: mrs x9, {{cnthp_cval_el2|CNTHP_CVAL_EL2}} 3549# CHECK: mrs x9, {{cntps_cval_el1|CNTPS_CVAL_EL1}} 3550# CHECK: mrs x9, {{cntv_tval_el0|CNTV_TVAL_EL0}} 3551# CHECK: mrs x9, {{cntv_ctl_el0|CNTV_CTL_EL0}} 3552# CHECK: mrs x9, {{cntv_cval_el0|CNTV_CVAL_EL0}} 3553# CHECK: mrs x9, {{pmevcntr0_el0|PMEVCNTR0_EL0}} 3554# CHECK: mrs x9, {{pmevcntr1_el0|PMEVCNTR1_EL0}} 3555# CHECK: mrs x9, {{pmevcntr2_el0|PMEVCNTR2_EL0}} 3556# CHECK: mrs x9, {{pmevcntr3_el0|PMEVCNTR3_EL0}} 3557# CHECK: mrs x9, {{pmevcntr4_el0|PMEVCNTR4_EL0}} 3558# CHECK: mrs x9, {{pmevcntr5_el0|PMEVCNTR5_EL0}} 3559# CHECK: mrs x9, {{pmevcntr6_el0|PMEVCNTR6_EL0}} 3560# CHECK: mrs x9, {{pmevcntr7_el0|PMEVCNTR7_EL0}} 3561# CHECK: mrs x9, {{pmevcntr8_el0|PMEVCNTR8_EL0}} 3562# CHECK: mrs x9, {{pmevcntr9_el0|PMEVCNTR9_EL0}} 3563# CHECK: mrs x9, {{pmevcntr10_el0|PMEVCNTR10_EL0}} 3564# CHECK: mrs x9, {{pmevcntr11_el0|PMEVCNTR11_EL0}} 3565# CHECK: mrs x9, {{pmevcntr12_el0|PMEVCNTR12_EL0}} 3566# CHECK: mrs x9, {{pmevcntr13_el0|PMEVCNTR13_EL0}} 3567# CHECK: mrs x9, {{pmevcntr14_el0|PMEVCNTR14_EL0}} 3568# CHECK: mrs x9, {{pmevcntr15_el0|PMEVCNTR15_EL0}} 3569# CHECK: mrs x9, {{pmevcntr16_el0|PMEVCNTR16_EL0}} 3570# CHECK: mrs x9, {{pmevcntr17_el0|PMEVCNTR17_EL0}} 3571# CHECK: mrs x9, {{pmevcntr18_el0|PMEVCNTR18_EL0}} 3572# CHECK: mrs x9, {{pmevcntr19_el0|PMEVCNTR19_EL0}} 3573# CHECK: mrs x9, {{pmevcntr20_el0|PMEVCNTR20_EL0}} 3574# CHECK: mrs x9, {{pmevcntr21_el0|PMEVCNTR21_EL0}} 3575# CHECK: mrs x9, {{pmevcntr22_el0|PMEVCNTR22_EL0}} 3576# CHECK: mrs x9, {{pmevcntr23_el0|PMEVCNTR23_EL0}} 3577# CHECK: mrs x9, {{pmevcntr24_el0|PMEVCNTR24_EL0}} 3578# CHECK: mrs x9, {{pmevcntr25_el0|PMEVCNTR25_EL0}} 3579# CHECK: mrs x9, {{pmevcntr26_el0|PMEVCNTR26_EL0}} 3580# CHECK: mrs x9, {{pmevcntr27_el0|PMEVCNTR27_EL0}} 3581# CHECK: mrs x9, {{pmevcntr28_el0|PMEVCNTR28_EL0}} 3582# CHECK: mrs x9, {{pmevcntr29_el0|PMEVCNTR29_EL0}} 3583# CHECK: mrs x9, {{pmevcntr30_el0|PMEVCNTR30_EL0}} 3584# CHECK: mrs x9, {{pmccfiltr_el0|PMCCFILTR_EL0}} 3585# CHECK: mrs x9, {{pmevtyper0_el0|PMEVTYPER0_EL0}} 3586# CHECK: mrs x9, {{pmevtyper1_el0|PMEVTYPER1_EL0}} 3587# CHECK: mrs x9, {{pmevtyper2_el0|PMEVTYPER2_EL0}} 3588# CHECK: mrs x9, {{pmevtyper3_el0|PMEVTYPER3_EL0}} 3589# CHECK: mrs x9, {{pmevtyper4_el0|PMEVTYPER4_EL0}} 3590# CHECK: mrs x9, {{pmevtyper5_el0|PMEVTYPER5_EL0}} 3591# CHECK: mrs x9, {{pmevtyper6_el0|PMEVTYPER6_EL0}} 3592# CHECK: mrs x9, {{pmevtyper7_el0|PMEVTYPER7_EL0}} 3593# CHECK: mrs x9, {{pmevtyper8_el0|PMEVTYPER8_EL0}} 3594# CHECK: mrs x9, {{pmevtyper9_el0|PMEVTYPER9_EL0}} 3595# CHECK: mrs x9, {{pmevtyper10_el0|PMEVTYPER10_EL0}} 3596# CHECK: mrs x9, {{pmevtyper11_el0|PMEVTYPER11_EL0}} 3597# CHECK: mrs x9, {{pmevtyper12_el0|PMEVTYPER12_EL0}} 3598# CHECK: mrs x9, {{pmevtyper13_el0|PMEVTYPER13_EL0}} 3599# CHECK: mrs x9, {{pmevtyper14_el0|PMEVTYPER14_EL0}} 3600# CHECK: mrs x9, {{pmevtyper15_el0|PMEVTYPER15_EL0}} 3601# CHECK: mrs x9, {{pmevtyper16_el0|PMEVTYPER16_EL0}} 3602# CHECK: mrs x9, {{pmevtyper17_el0|PMEVTYPER17_EL0}} 3603# CHECK: mrs x9, {{pmevtyper18_el0|PMEVTYPER18_EL0}} 3604# CHECK: mrs x9, {{pmevtyper19_el0|PMEVTYPER19_EL0}} 3605# CHECK: mrs x9, {{pmevtyper20_el0|PMEVTYPER20_EL0}} 3606# CHECK: mrs x9, {{pmevtyper21_el0|PMEVTYPER21_EL0}} 3607# CHECK: mrs x9, {{pmevtyper22_el0|PMEVTYPER22_EL0}} 3608# CHECK: mrs x9, {{pmevtyper23_el0|PMEVTYPER23_EL0}} 3609# CHECK: mrs x9, {{pmevtyper24_el0|PMEVTYPER24_EL0}} 3610# CHECK: mrs x9, {{pmevtyper25_el0|PMEVTYPER25_EL0}} 3611# CHECK: mrs x9, {{pmevtyper26_el0|PMEVTYPER26_EL0}} 3612# CHECK: mrs x9, {{pmevtyper27_el0|PMEVTYPER27_EL0}} 3613# CHECK: mrs x9, {{pmevtyper28_el0|PMEVTYPER28_EL0}} 3614# CHECK: mrs x9, {{pmevtyper29_el0|PMEVTYPER29_EL0}} 3615# CHECK: mrs x9, {{pmevtyper30_el0|PMEVTYPER30_EL0}} 3616 36170xc 0x0 0x12 0xd5 36180x4c 0x0 0x10 0xd5 36190xc 0x2 0x10 0xd5 36200x4c 0x2 0x10 0xd5 36210x4c 0x3 0x10 0xd5 36220xc 0x4 0x13 0xd5 36230xc 0x5 0x13 0xd5 36240x4c 0x6 0x10 0xd5 36250xc 0x7 0x14 0xd5 36260x8c 0x0 0x10 0xd5 36270x8c 0x1 0x10 0xd5 36280x8c 0x2 0x10 0xd5 36290x8c 0x3 0x10 0xd5 36300x8c 0x4 0x10 0xd5 36310x8c 0x5 0x10 0xd5 36320x8c 0x6 0x10 0xd5 36330x8c 0x7 0x10 0xd5 36340x8c 0x8 0x10 0xd5 36350x8c 0x9 0x10 0xd5 36360x8c 0xa 0x10 0xd5 36370x8c 0xb 0x10 0xd5 36380x8c 0xc 0x10 0xd5 36390x8c 0xd 0x10 0xd5 36400x8c 0xe 0x10 0xd5 36410x8c 0xf 0x10 0xd5 36420xac 0x0 0x10 0xd5 36430xac 0x1 0x10 0xd5 36440xac 0x2 0x10 0xd5 36450xac 0x3 0x10 0xd5 36460xac 0x4 0x10 0xd5 36470xac 0x5 0x10 0xd5 36480xac 0x6 0x10 0xd5 36490xac 0x7 0x10 0xd5 36500xac 0x8 0x10 0xd5 36510xac 0x9 0x10 0xd5 36520xac 0xa 0x10 0xd5 36530xac 0xb 0x10 0xd5 36540xac 0xc 0x10 0xd5 36550xac 0xd 0x10 0xd5 36560xac 0xe 0x10 0xd5 36570xac 0xf 0x10 0xd5 36580xcc 0x0 0x10 0xd5 36590xcc 0x1 0x10 0xd5 36600xcc 0x2 0x10 0xd5 36610xcc 0x3 0x10 0xd5 36620xcc 0x4 0x10 0xd5 36630xcc 0x5 0x10 0xd5 36640xcc 0x6 0x10 0xd5 36650xcc 0x7 0x10 0xd5 36660xcc 0x8 0x10 0xd5 36670xcc 0x9 0x10 0xd5 36680xcc 0xa 0x10 0xd5 36690xcc 0xb 0x10 0xd5 36700xcc 0xc 0x10 0xd5 36710xcc 0xd 0x10 0xd5 36720xcc 0xe 0x10 0xd5 36730xcc 0xf 0x10 0xd5 36740xec 0x0 0x10 0xd5 36750xec 0x1 0x10 0xd5 36760xec 0x2 0x10 0xd5 36770xec 0x3 0x10 0xd5 36780xec 0x4 0x10 0xd5 36790xec 0x5 0x10 0xd5 36800xec 0x6 0x10 0xd5 36810xec 0x7 0x10 0xd5 36820xec 0x8 0x10 0xd5 36830xec 0x9 0x10 0xd5 36840xec 0xa 0x10 0xd5 36850xec 0xb 0x10 0xd5 36860xec 0xc 0x10 0xd5 36870xec 0xd 0x10 0xd5 36880xec 0xe 0x10 0xd5 36890xec 0xf 0x10 0xd5 36900xc 0x10 0x12 0xd5 36910x8c 0x10 0x10 0xd5 36920x8c 0x13 0x10 0xd5 36930x8c 0x14 0x10 0xd5 36940xcc 0x78 0x10 0xd5 36950xcc 0x79 0x10 0xd5 36960xc 0x0 0x1a 0xd5 36970xc 0x0 0x1c 0xd5 36980xac 0x0 0x1c 0xd5 36990xc 0x10 0x18 0xd5 37000xc 0x10 0x1c 0xd5 37010xc 0x10 0x1e 0xd5 37020x2c 0x10 0x18 0xd5 37030x2c 0x10 0x1c 0xd5 37040x2c 0x10 0x1e 0xd5 37050x4c 0x10 0x18 0xd5 37060xc 0x11 0x1c 0xd5 37070xc 0x11 0x1e 0xd5 37080x2c 0x11 0x1c 0xd5 37090x2c 0x11 0x1e 0xd5 37100x4c 0x11 0x1c 0xd5 37110x4c 0x11 0x1e 0xd5 37120x6c 0x11 0x1c 0xd5 37130xec 0x11 0x1c 0xd5 37140x2c 0x13 0x1e 0xd5 37150xc 0x20 0x18 0xd5 37160xc 0x20 0x1c 0xd5 37170xc 0x20 0x1e 0xd5 37180x2c 0x20 0x18 0xd5 37190x4c 0x20 0x18 0xd5 37200x4c 0x20 0x1c 0xd5 37210x4c 0x20 0x1e 0xd5 37220xc 0x21 0x1c 0xd5 37230x4c 0x21 0x1c 0xd5 37240xc 0x30 0x1c 0xd5 37250xc 0x40 0x18 0xd5 37260xc 0x40 0x1c 0xd5 37270xc 0x40 0x1e 0xd5 37280x2c 0x40 0x18 0xd5 37290x2c 0x40 0x1c 0xd5 37300x2c 0x40 0x1e 0xd5 37310xc 0x41 0x18 0xd5 37320xc 0x41 0x1c 0xd5 37330xc 0x41 0x1e 0xd5 37340xc 0x42 0x18 0xd5 37350xc 0x42 0x1b 0xd5 37360x2c 0x42 0x1b 0xd5 37370x4c 0x42 0x18 0xd5 37380xc 0x43 0x1c 0xd5 37390x2c 0x43 0x1c 0xd5 37400x4c 0x43 0x1c 0xd5 37410x6c 0x43 0x1c 0xd5 37420xc 0x44 0x1b 0xd5 37430x2c 0x44 0x1b 0xd5 37440xc 0x45 0x1b 0xd5 37450x2c 0x45 0x1b 0xd5 37460x2c 0x50 0x1c 0xd5 37470xc 0x51 0x18 0xd5 37480xc 0x51 0x1c 0xd5 37490xc 0x51 0x1e 0xd5 37500x2c 0x51 0x18 0xd5 37510x2c 0x51 0x1c 0xd5 37520x2c 0x51 0x1e 0xd5 37530xc 0x52 0x18 0xd5 37540xc 0x52 0x1c 0xd5 37550xc 0x52 0x1e 0xd5 37560xc 0x53 0x1c 0xd5 37570xc 0x60 0x18 0xd5 37580xc 0x60 0x1c 0xd5 37590xc 0x60 0x1e 0xd5 37600x8c 0x60 0x1c 0xd5 37610xc 0x74 0x18 0xd5 37620xc 0x9c 0x1b 0xd5 37630x2c 0x9c 0x1b 0xd5 37640x4c 0x9c 0x1b 0xd5 37650x6c 0x9c 0x1b 0xd5 37660xac 0x9c 0x1b 0xd5 37670xc 0x9d 0x1b 0xd5 37680x2c 0x9d 0x1b 0xd5 37690x4c 0x9d 0x1b 0xd5 37700xc 0x9e 0x1b 0xd5 37710x2c 0x9e 0x18 0xd5 37720x4c 0x9e 0x18 0xd5 37730x6c 0x9e 0x1b 0xd5 37740xc 0xa2 0x18 0xd5 37750xc 0xa2 0x1c 0xd5 37760xc 0xa2 0x1e 0xd5 37770xc 0xa3 0x18 0xd5 37780xc 0xa3 0x1c 0xd5 37790xc 0xa3 0x1e 0xd5 37800xc 0xc0 0x18 0xd5 37810xc 0xc0 0x1c 0xd5 37820xc 0xc0 0x1e 0xd5 37830x4c 0xc0 0x18 0xd5 37840x4c 0xc0 0x1c 0xd5 37850x4c 0xc0 0x1e 0xd5 37860x4c 0xd0 0x1b 0xd5 37870x4c 0xd0 0x1c 0xd5 37880x4c 0xd0 0x1e 0xd5 37890x6c 0xd0 0x1b 0xd5 37900x8c 0xd0 0x18 0xd5 37910xc 0xe0 0x1b 0xd5 37920x6c 0xe0 0x1c 0xd5 37930xc 0xe1 0x18 0xd5 37940xc 0xe1 0x1c 0xd5 37950xc 0xe2 0x1b 0xd5 37960xc 0xe2 0x1c 0xd5 37970xc 0xe2 0x1f 0xd5 37980x2c 0xe2 0x1b 0xd5 37990x2c 0xe2 0x1c 0xd5 38000x2c 0xe2 0x1f 0xd5 38010x4c 0xe2 0x1b 0xd5 38020x4c 0xe2 0x1c 0xd5 38030x4c 0xe2 0x1f 0xd5 38040xc 0xe3 0x1b 0xd5 38050x2c 0xe3 0x1b 0xd5 38060x4c 0xe3 0x1b 0xd5 38070xc 0xe8 0x1b 0xd5 38080x2c 0xe8 0x1b 0xd5 38090x4c 0xe8 0x1b 0xd5 38100x6c 0xe8 0x1b 0xd5 38110x8c 0xe8 0x1b 0xd5 38120xac 0xe8 0x1b 0xd5 38130xcc 0xe8 0x1b 0xd5 38140xec 0xe8 0x1b 0xd5 38150xc 0xe9 0x1b 0xd5 38160x2c 0xe9 0x1b 0xd5 38170x4c 0xe9 0x1b 0xd5 38180x6c 0xe9 0x1b 0xd5 38190x8c 0xe9 0x1b 0xd5 38200xac 0xe9 0x1b 0xd5 38210xcc 0xe9 0x1b 0xd5 38220xec 0xe9 0x1b 0xd5 38230xc 0xea 0x1b 0xd5 38240x2c 0xea 0x1b 0xd5 38250x4c 0xea 0x1b 0xd5 38260x6c 0xea 0x1b 0xd5 38270x8c 0xea 0x1b 0xd5 38280xac 0xea 0x1b 0xd5 38290xcc 0xea 0x1b 0xd5 38300xec 0xea 0x1b 0xd5 38310xc 0xeb 0x1b 0xd5 38320x2c 0xeb 0x1b 0xd5 38330x4c 0xeb 0x1b 0xd5 38340x6c 0xeb 0x1b 0xd5 38350x8c 0xeb 0x1b 0xd5 38360xac 0xeb 0x1b 0xd5 38370xcc 0xeb 0x1b 0xd5 38380xec 0xef 0x1b 0xd5 38390xc 0xec 0x1b 0xd5 38400x2c 0xec 0x1b 0xd5 38410x4c 0xec 0x1b 0xd5 38420x6c 0xec 0x1b 0xd5 38430x8c 0xec 0x1b 0xd5 38440xac 0xec 0x1b 0xd5 38450xcc 0xec 0x1b 0xd5 38460xec 0xec 0x1b 0xd5 38470xc 0xed 0x1b 0xd5 38480x2c 0xed 0x1b 0xd5 38490x4c 0xed 0x1b 0xd5 38500x6c 0xed 0x1b 0xd5 38510x8c 0xed 0x1b 0xd5 38520xac 0xed 0x1b 0xd5 38530xcc 0xed 0x1b 0xd5 38540xec 0xed 0x1b 0xd5 38550xc 0xee 0x1b 0xd5 38560x2c 0xee 0x1b 0xd5 38570x4c 0xee 0x1b 0xd5 38580x6c 0xee 0x1b 0xd5 38590x8c 0xee 0x1b 0xd5 38600xac 0xee 0x1b 0xd5 38610xcc 0xee 0x1b 0xd5 38620xec 0xee 0x1b 0xd5 38630xc 0xef 0x1b 0xd5 38640x2c 0xef 0x1b 0xd5 38650x4c 0xef 0x1b 0xd5 38660x6c 0xef 0x1b 0xd5 38670x8c 0xef 0x1b 0xd5 38680xac 0xef 0x1b 0xd5 38690xcc 0xef 0x1b 0xd5 38700x9 0x0 0x32 0xd5 38710x49 0x0 0x30 0xd5 38720x9 0x1 0x33 0xd5 38730x9 0x2 0x30 0xd5 38740x49 0x2 0x30 0xd5 38750x49 0x3 0x30 0xd5 38760x9 0x4 0x33 0xd5 38770x9 0x5 0x33 0xd5 38780x49 0x6 0x30 0xd5 38790x9 0x7 0x34 0xd5 38800x89 0x0 0x30 0xd5 38810x89 0x1 0x30 0xd5 38820x89 0x2 0x30 0xd5 38830x89 0x3 0x30 0xd5 38840x89 0x4 0x30 0xd5 38850x89 0x5 0x30 0xd5 38860x89 0x6 0x30 0xd5 38870x89 0x7 0x30 0xd5 38880x89 0x8 0x30 0xd5 38890x89 0x9 0x30 0xd5 38900x89 0xa 0x30 0xd5 38910x89 0xb 0x30 0xd5 38920x89 0xc 0x30 0xd5 38930x89 0xd 0x30 0xd5 38940x89 0xe 0x30 0xd5 38950x89 0xf 0x30 0xd5 38960xa9 0x0 0x30 0xd5 38970xa9 0x1 0x30 0xd5 38980xa9 0x2 0x30 0xd5 38990xa9 0x3 0x30 0xd5 39000xa9 0x4 0x30 0xd5 39010xa9 0x5 0x30 0xd5 39020xa9 0x6 0x30 0xd5 39030xa9 0x7 0x30 0xd5 39040xa9 0x8 0x30 0xd5 39050xa9 0x9 0x30 0xd5 39060xa9 0xa 0x30 0xd5 39070xa9 0xb 0x30 0xd5 39080xa9 0xc 0x30 0xd5 39090xa9 0xd 0x30 0xd5 39100xa9 0xe 0x30 0xd5 39110xa9 0xf 0x30 0xd5 39120xc9 0x0 0x30 0xd5 39130xc9 0x1 0x30 0xd5 39140xc9 0x2 0x30 0xd5 39150xc9 0x3 0x30 0xd5 39160xc9 0x4 0x30 0xd5 39170xc9 0x5 0x30 0xd5 39180xc9 0x6 0x30 0xd5 39190xc9 0x7 0x30 0xd5 39200xc9 0x8 0x30 0xd5 39210xc9 0x9 0x30 0xd5 39220xc9 0xa 0x30 0xd5 39230xc9 0xb 0x30 0xd5 39240xc9 0xc 0x30 0xd5 39250xc9 0xd 0x30 0xd5 39260xc9 0xe 0x30 0xd5 39270xc9 0xf 0x30 0xd5 39280xe9 0x0 0x30 0xd5 39290xe9 0x1 0x30 0xd5 39300xe9 0x2 0x30 0xd5 39310xe9 0x3 0x30 0xd5 39320xe9 0x4 0x30 0xd5 39330xe9 0x5 0x30 0xd5 39340xe9 0x6 0x30 0xd5 39350xe9 0x7 0x30 0xd5 39360xe9 0x8 0x30 0xd5 39370xe9 0x9 0x30 0xd5 39380xe9 0xa 0x30 0xd5 39390xe9 0xb 0x30 0xd5 39400xe9 0xc 0x30 0xd5 39410xe9 0xd 0x30 0xd5 39420xe9 0xe 0x30 0xd5 39430xe9 0xf 0x30 0xd5 39440x9 0x10 0x30 0xd5 39450x9 0x10 0x32 0xd5 39460x89 0x11 0x30 0xd5 39470x89 0x13 0x30 0xd5 39480x89 0x14 0x30 0xd5 39490xc9 0x78 0x30 0xd5 39500xc9 0x79 0x30 0xd5 39510xc9 0x7e 0x30 0xd5 39520x9 0x0 0x38 0xd5 39530x9 0x0 0x39 0xd5 39540x9 0x0 0x3a 0xd5 39550x9 0x0 0x3c 0xd5 39560x29 0x0 0x39 0xd5 39570x29 0x0 0x3b 0xd5 39580xa9 0x0 0x38 0xd5 39590xa9 0x0 0x3c 0xd5 39600xc9 0x0 0x38 0xd5 39610xe9 0x0 0x39 0xd5 39620xe9 0x0 0x3b 0xd5 39630x9 0x1 0x38 0xd5 39640x29 0x1 0x38 0xd5 39650x49 0x1 0x38 0xd5 39660x69 0x1 0x38 0xd5 39670x89 0x1 0x38 0xd5 39680xa9 0x1 0x38 0xd5 39690xc9 0x1 0x38 0xd5 39700xe9 0x1 0x38 0xd5 39710x9 0x2 0x38 0xd5 39720x29 0x2 0x38 0xd5 39730x49 0x2 0x38 0xd5 39740x69 0x2 0x38 0xd5 39750x89 0x2 0x38 0xd5 39760xa9 0x2 0x38 0xd5 39770x9 0x3 0x38 0xd5 39780x29 0x3 0x38 0xd5 39790x49 0x3 0x38 0xd5 39800x9 0x4 0x38 0xd5 39810x29 0x4 0x38 0xd5 39820x9 0x5 0x38 0xd5 39830x29 0x5 0x38 0xd5 39840x89 0x5 0x38 0xd5 39850xa9 0x5 0x38 0xd5 39860x9 0x6 0x38 0xd5 39870x29 0x6 0x38 0xd5 39880x9 0x7 0x38 0xd5 39890x29 0x7 0x38 0xd5 39900x9 0x10 0x38 0xd5 39910x9 0x10 0x3c 0xd5 39920x9 0x10 0x3e 0xd5 39930x29 0x10 0x38 0xd5 39940x29 0x10 0x3c 0xd5 39950x29 0x10 0x3e 0xd5 39960x49 0x10 0x38 0xd5 39970x9 0x11 0x3c 0xd5 39980x9 0x11 0x3e 0xd5 39990x29 0x11 0x3c 0xd5 40000x29 0x11 0x3e 0xd5 40010x49 0x11 0x3c 0xd5 40020x49 0x11 0x3e 0xd5 40030x69 0x11 0x3c 0xd5 40040xe9 0x11 0x3c 0xd5 40050x29 0x13 0x3e 0xd5 40060x9 0x20 0x38 0xd5 40070x9 0x20 0x3c 0xd5 40080x9 0x20 0x3e 0xd5 40090x29 0x20 0x38 0xd5 40100x49 0x20 0x38 0xd5 40110x49 0x20 0x3c 0xd5 40120x49 0x20 0x3e 0xd5 40130x9 0x21 0x3c 0xd5 40140x49 0x21 0x3c 0xd5 40150x9 0x30 0x3c 0xd5 40160x9 0x40 0x38 0xd5 40170x9 0x40 0x3c 0xd5 40180x9 0x40 0x3e 0xd5 40190x29 0x40 0x38 0xd5 40200x29 0x40 0x3c 0xd5 40210x29 0x40 0x3e 0xd5 40220x9 0x41 0x38 0xd5 40230x9 0x41 0x3c 0xd5 40240x9 0x41 0x3e 0xd5 40250x9 0x42 0x38 0xd5 40260x9 0x42 0x3b 0xd5 40270x29 0x42 0x3b 0xd5 40280x49 0x42 0x38 0xd5 40290x9 0x43 0x3c 0xd5 40300x29 0x43 0x3c 0xd5 40310x49 0x43 0x3c 0xd5 40320x69 0x43 0x3c 0xd5 40330x9 0x44 0x3b 0xd5 40340x29 0x44 0x3b 0xd5 40350x9 0x45 0x3b 0xd5 40360x29 0x45 0x3b 0xd5 40370x29 0x50 0x3c 0xd5 40380x9 0x51 0x38 0xd5 40390x9 0x51 0x3c 0xd5 40400x9 0x51 0x3e 0xd5 40410x29 0x51 0x38 0xd5 40420x29 0x51 0x3c 0xd5 40430x29 0x51 0x3e 0xd5 40440x9 0x52 0x38 0xd5 40450x9 0x52 0x3c 0xd5 40460x9 0x52 0x3e 0xd5 40470x9 0x53 0x3c 0xd5 40480x9 0x60 0x38 0xd5 40490x9 0x60 0x3c 0xd5 40500x9 0x60 0x3e 0xd5 40510x89 0x60 0x3c 0xd5 40520x9 0x74 0x38 0xd5 40530x9 0x9c 0x3b 0xd5 40540x29 0x9c 0x3b 0xd5 40550x49 0x9c 0x3b 0xd5 40560x69 0x9c 0x3b 0xd5 40570xa9 0x9c 0x3b 0xd5 40580xc9 0x9c 0x3b 0xd5 40590xe9 0x9c 0x3b 0xd5 40600x9 0x9d 0x3b 0xd5 40610x29 0x9d 0x3b 0xd5 40620x49 0x9d 0x3b 0xd5 40630x9 0x9e 0x3b 0xd5 40640x29 0x9e 0x38 0xd5 40650x49 0x9e 0x38 0xd5 40660x69 0x9e 0x3b 0xd5 40670x9 0xa2 0x38 0xd5 40680x9 0xa2 0x3c 0xd5 40690x9 0xa2 0x3e 0xd5 40700x9 0xa3 0x38 0xd5 40710x9 0xa3 0x3c 0xd5 40720x9 0xa3 0x3e 0xd5 40730x9 0xc0 0x38 0xd5 40740x9 0xc0 0x3c 0xd5 40750x9 0xc0 0x3e 0xd5 40760x29 0xc0 0x38 0xd5 40770x29 0xc0 0x3c 0xd5 40780x29 0xc0 0x3e 0xd5 40790x49 0xc0 0x38 0xd5 40800x49 0xc0 0x3c 0xd5 40810x49 0xc0 0x3e 0xd5 40820x9 0xc1 0x38 0xd5 40830x29 0xd0 0x38 0xd5 40840x49 0xd0 0x3b 0xd5 40850x49 0xd0 0x3c 0xd5 40860x49 0xd0 0x3e 0xd5 40870x69 0xd0 0x3b 0xd5 40880x89 0xd0 0x38 0xd5 40890x9 0xe0 0x3b 0xd5 40900x29 0xe0 0x3b 0xd5 40910x49 0xe0 0x3b 0xd5 40920x69 0xe0 0x3c 0xd5 40930x9 0xe1 0x38 0xd5 40940x9 0xe1 0x3c 0xd5 40950x9 0xe2 0x3b 0xd5 40960x9 0xe2 0x3c 0xd5 40970x9 0xe2 0x3f 0xd5 40980x29 0xe2 0x3b 0xd5 40990x29 0xe2 0x3c 0xd5 41000x29 0xe2 0x3f 0xd5 41010x49 0xe2 0x3b 0xd5 41020x49 0xe2 0x3c 0xd5 41030x49 0xe2 0x3f 0xd5 41040x9 0xe3 0x3b 0xd5 41050x29 0xe3 0x3b 0xd5 41060x49 0xe3 0x3b 0xd5 41070x9 0xe8 0x3b 0xd5 41080x29 0xe8 0x3b 0xd5 41090x49 0xe8 0x3b 0xd5 41100x69 0xe8 0x3b 0xd5 41110x89 0xe8 0x3b 0xd5 41120xa9 0xe8 0x3b 0xd5 41130xc9 0xe8 0x3b 0xd5 41140xe9 0xe8 0x3b 0xd5 41150x9 0xe9 0x3b 0xd5 41160x29 0xe9 0x3b 0xd5 41170x49 0xe9 0x3b 0xd5 41180x69 0xe9 0x3b 0xd5 41190x89 0xe9 0x3b 0xd5 41200xa9 0xe9 0x3b 0xd5 41210xc9 0xe9 0x3b 0xd5 41220xe9 0xe9 0x3b 0xd5 41230x9 0xea 0x3b 0xd5 41240x29 0xea 0x3b 0xd5 41250x49 0xea 0x3b 0xd5 41260x69 0xea 0x3b 0xd5 41270x89 0xea 0x3b 0xd5 41280xa9 0xea 0x3b 0xd5 41290xc9 0xea 0x3b 0xd5 41300xe9 0xea 0x3b 0xd5 41310x9 0xeb 0x3b 0xd5 41320x29 0xeb 0x3b 0xd5 41330x49 0xeb 0x3b 0xd5 41340x69 0xeb 0x3b 0xd5 41350x89 0xeb 0x3b 0xd5 41360xa9 0xeb 0x3b 0xd5 41370xc9 0xeb 0x3b 0xd5 41380xe9 0xef 0x3b 0xd5 41390x9 0xec 0x3b 0xd5 41400x29 0xec 0x3b 0xd5 41410x49 0xec 0x3b 0xd5 41420x69 0xec 0x3b 0xd5 41430x89 0xec 0x3b 0xd5 41440xa9 0xec 0x3b 0xd5 41450xc9 0xec 0x3b 0xd5 41460xe9 0xec 0x3b 0xd5 41470x9 0xed 0x3b 0xd5 41480x29 0xed 0x3b 0xd5 41490x49 0xed 0x3b 0xd5 41500x69 0xed 0x3b 0xd5 41510x89 0xed 0x3b 0xd5 41520xa9 0xed 0x3b 0xd5 41530xc9 0xed 0x3b 0xd5 41540xe9 0xed 0x3b 0xd5 41550x9 0xee 0x3b 0xd5 41560x29 0xee 0x3b 0xd5 41570x49 0xee 0x3b 0xd5 41580x69 0xee 0x3b 0xd5 41590x89 0xee 0x3b 0xd5 41600xa9 0xee 0x3b 0xd5 41610xc9 0xee 0x3b 0xd5 41620xe9 0xee 0x3b 0xd5 41630x9 0xef 0x3b 0xd5 41640x29 0xef 0x3b 0xd5 41650x49 0xef 0x3b 0xd5 41660x69 0xef 0x3b 0xd5 41670x89 0xef 0x3b 0xd5 41680xa9 0xef 0x3b 0xd5 41690xc9 0xef 0x3b 0xd5 4170 4171# CHECK: mrs x12, {{s3_7_c15_c1_5|S3_7_C15_C1_5}} 4172# CHECK: mrs x13, {{s3_2_c11_c15_7|S3_2_C11_C15_7}} 4173# CHECK: msr {{s3_0_c15_c0_0|S3_0_C15_C0_0}}, x12 4174# CHECK: msr {{s3_7_c11_c13_7|S3_7_C11_C13_7}}, x5 41750xac 0xf1 0x3f 0xd5 41760xed 0xbf 0x3a 0xd5 41770x0c 0xf0 0x18 0xd5 41780xe5 0xbd 0x1f 0xd5 4179 4180#------------------------------------------------------------------------------ 4181# Test and branch (immediate) 4182#------------------------------------------------------------------------------ 4183 4184# CHECK: tbz x12, #62, #0 4185# CHECK: tbz x12, #62, #4 4186# CHECK: tbz x12, #62, #-32768 4187# CHECK: tbnz x12, #60, #32764 41880x0c 0x00 0xf0 0xb6 41890x2c 0x00 0xf0 0xb6 41900x0c 0x00 0xf4 0xb6 41910xec 0xff 0xe3 0xb7 4192 4193#------------------------------------------------------------------------------ 4194# Unconditional branch (immediate) 4195#------------------------------------------------------------------------------ 4196 4197# CHECK: b #4 4198# CHECK: b #-4 4199# CHECK: b #134217724 42000x01 0x00 0x00 0x14 42010xff 0xff 0xff 0x17 42020xff 0xff 0xff 0x15 4203 4204#------------------------------------------------------------------------------ 4205# Unconditional branch (register) 4206#------------------------------------------------------------------------------ 4207 4208# CHECK: br x20 4209# CHECK: blr xzr 4210# CHECK: ret x10 42110x80 0x2 0x1f 0xd6 42120xe0 0x3 0x3f 0xd6 42130x40 0x1 0x5f 0xd6 4214 4215# CHECK: ret 4216# CHECK: eret 4217# CHECK: drps 42180xc0 0x3 0x5f 0xd6 42190xe0 0x3 0x9f 0xd6 42200xe0 0x3 0xbf 0xd6 4221 4222