1// RUN: llvm-mc -triple=aarch64 -show-encoding < %s | FileCheck %s 2 .globl _func 3 4// Check that the assembler can handle the documented syntax from the ARM ARM. 5// For complex constructs like shifter operands, check more thoroughly for them 6// once then spot check that following instructions accept the form generally. 7// This gives us good coverage while keeping the overall size of the test 8// more reasonable. 9 10 11_func: 12// CHECK: _func 13 14//------------------------------------------------------------------------------ 15// Add/sub (extended register) 16//------------------------------------------------------------------------------ 17 // Basic extends 64-bit ops 18 add x2, x4, w5, uxtb 19 add x20, sp, w19, uxth 20 add x12, x1, w20, uxtw 21 add x20, x3, x13, uxtx 22 add x17, x25, w20, sxtb 23 add x18, x13, w19, sxth 24 add sp, x2, w3, sxtw 25 add x3, x5, x9, sxtx 26// CHECK: add x2, x4, w5, uxtb // encoding: [0x82,0x00,0x25,0x8b] 27// CHECK: add x20, sp, w19, uxth // encoding: [0xf4,0x23,0x33,0x8b] 28// CHECK: add x12, x1, w20, uxtw // encoding: [0x2c,0x40,0x34,0x8b] 29// CHECK: add x20, x3, x13, uxtx // encoding: [0x74,0x60,0x2d,0x8b] 30// CHECK: add x17, x25, w20, sxtb // encoding: [0x31,0x83,0x34,0x8b] 31// CHECK: add x18, x13, w19, sxth // encoding: [0xb2,0xa1,0x33,0x8b] 32// CHECK: add sp, x2, w3, sxtw // encoding: [0x5f,0xc0,0x23,0x8b] 33// CHECK: add x3, x5, x9, sxtx // encoding: [0xa3,0xe0,0x29,0x8b] 34 35 // Basic extends, 32-bit ops 36 add w2, w5, w7, uxtb 37 add w21, w15, w17, uxth 38 add w30, w29, wzr, uxtw 39 add w19, w17, w1, uxtx // Goodness knows what this means 40 add w2, w5, w1, sxtb 41 add w26, w17, w19, sxth 42 add w0, w2, w3, sxtw 43 add w2, w3, w5, sxtx 44// CHECK: add w2, w5, w7, uxtb // encoding: [0xa2,0x00,0x27,0x0b] 45// CHECK: add w21, w15, w17, uxth // encoding: [0xf5,0x21,0x31,0x0b] 46// CHECK: add w30, w29, wzr, uxtw // encoding: [0xbe,0x43,0x3f,0x0b] 47// CHECK: add w19, w17, w1, uxtx // encoding: [0x33,0x62,0x21,0x0b] 48// CHECK: add w2, w5, w1, sxtb // encoding: [0xa2,0x80,0x21,0x0b] 49// CHECK: add w26, w17, w19, sxth // encoding: [0x3a,0xa2,0x33,0x0b] 50// CHECK: add w0, w2, w3, sxtw // encoding: [0x40,0xc0,0x23,0x0b] 51// CHECK: add w2, w3, w5, sxtx // encoding: [0x62,0xe0,0x25,0x0b] 52 53 // Nonzero shift amounts 54 add x2, x3, w5, sxtb #0 55 add x7, x11, w13, uxth #4 56 add w17, w19, w23, uxtw #2 57 add w29, w23, w17, uxtx #1 58// CHECK: add x2, x3, w5, sxtb // encoding: [0x62,0x80,0x25,0x8b] 59// CHECK: add x7, x11, w13, uxth #4 // encoding: [0x67,0x31,0x2d,0x8b] 60// CHECK: add w17, w19, w23, uxtw #2 // encoding: [0x71,0x4a,0x37,0x0b] 61// CHECK: add w29, w23, w17, uxtx #1 // encoding: [0xfd,0x66,0x31,0x0b] 62 63 // Sub 64 sub x2, x4, w5, uxtb #2 65 sub x20, sp, w19, uxth #4 66 sub x12, x1, w20, uxtw 67 sub x20, x3, x13, uxtx #0 68 sub x17, x25, w20, sxtb 69 sub x18, x13, w19, sxth 70 sub sp, x2, w3, sxtw 71 sub x3, x5, x9, sxtx 72// CHECK: sub x2, x4, w5, uxtb #2 // encoding: [0x82,0x08,0x25,0xcb] 73// CHECK: sub x20, sp, w19, uxth #4 // encoding: [0xf4,0x33,0x33,0xcb] 74// CHECK: sub x12, x1, w20, uxtw // encoding: [0x2c,0x40,0x34,0xcb] 75// CHECK: sub x20, x3, x13, uxtx // encoding: [0x74,0x60,0x2d,0xcb] 76// CHECK: sub x17, x25, w20, sxtb // encoding: [0x31,0x83,0x34,0xcb] 77// CHECK: sub x18, x13, w19, sxth // encoding: [0xb2,0xa1,0x33,0xcb] 78// CHECK: sub sp, x2, w3, sxtw // encoding: [0x5f,0xc0,0x23,0xcb] 79// CHECK: sub x3, x5, x9, sxtx // encoding: [0xa3,0xe0,0x29,0xcb] 80 81 sub w2, w5, w7, uxtb 82 sub w21, w15, w17, uxth 83 sub w30, w29, wzr, uxtw 84 sub w19, w17, w1, uxtx // Goodness knows what this means 85 sub w2, w5, w1, sxtb 86 sub w26, wsp, w19, sxth 87 sub wsp, w2, w3, sxtw 88 sub w2, w3, w5, sxtx 89// CHECK: sub w2, w5, w7, uxtb // encoding: [0xa2,0x00,0x27,0x4b] 90// CHECK: sub w21, w15, w17, uxth // encoding: [0xf5,0x21,0x31,0x4b] 91// CHECK: sub w30, w29, wzr, uxtw // encoding: [0xbe,0x43,0x3f,0x4b] 92// CHECK: sub w19, w17, w1, uxtx // encoding: [0x33,0x62,0x21,0x4b] 93// CHECK: sub w2, w5, w1, sxtb // encoding: [0xa2,0x80,0x21,0x4b] 94// CHECK: sub w26, wsp, w19, sxth // encoding: [0xfa,0xa3,0x33,0x4b] 95// CHECK: sub wsp, w2, w3, sxtw // encoding: [0x5f,0xc0,0x23,0x4b] 96// CHECK: sub w2, w3, w5, sxtx // encoding: [0x62,0xe0,0x25,0x4b] 97 98 // Adds 99 adds x2, x4, w5, uxtb #2 100 adds x20, sp, w19, uxth #4 101 adds x12, x1, w20, uxtw 102 adds x20, x3, x13, uxtx #0 103 adds xzr, x25, w20, sxtb #3 104 adds x18, sp, w19, sxth 105 adds xzr, x2, w3, sxtw 106 adds x3, x5, x9, sxtx #2 107// CHECK: adds x2, x4, w5, uxtb #2 // encoding: [0x82,0x08,0x25,0xab] 108// CHECK: adds x20, sp, w19, uxth #4 // encoding: [0xf4,0x33,0x33,0xab] 109// CHECK: adds x12, x1, w20, uxtw // encoding: [0x2c,0x40,0x34,0xab] 110// CHECK: adds x20, x3, x13, uxtx // encoding: [0x74,0x60,0x2d,0xab] 111// CHECK: adds xzr, x25, w20, sxtb #3 // encoding: [0x3f,0x8f,0x34,0xab] 112// CHECK: adds x18, sp, w19, sxth // encoding: [0xf2,0xa3,0x33,0xab] 113// CHECK: adds xzr, x2, w3, sxtw // encoding: [0x5f,0xc0,0x23,0xab] 114// CHECK: adds x3, x5, x9, sxtx #2 // encoding: [0xa3,0xe8,0x29,0xab] 115 116 adds w2, w5, w7, uxtb 117 adds w21, w15, w17, uxth 118 adds w30, w29, wzr, uxtw 119 adds w19, w17, w1, uxtx // Goodness knows what this means 120 adds w2, w5, w1, sxtb #1 121 adds w26, wsp, w19, sxth 122 adds wzr, w2, w3, sxtw 123 adds w2, w3, w5, sxtx 124// CHECK: adds w2, w5, w7, uxtb // encoding: [0xa2,0x00,0x27,0x2b] 125// CHECK: adds w21, w15, w17, uxth // encoding: [0xf5,0x21,0x31,0x2b] 126// CHECK: adds w30, w29, wzr, uxtw // encoding: [0xbe,0x43,0x3f,0x2b] 127// CHECK: adds w19, w17, w1, uxtx // encoding: [0x33,0x62,0x21,0x2b] 128// CHECK: adds w2, w5, w1, sxtb #1 // encoding: [0xa2,0x84,0x21,0x2b] 129// CHECK: adds w26, wsp, w19, sxth // encoding: [0xfa,0xa3,0x33,0x2b] 130// CHECK: adds wzr, w2, w3, sxtw // encoding: [0x5f,0xc0,0x23,0x2b] 131// CHECK: adds w2, w3, w5, sxtx // encoding: [0x62,0xe0,0x25,0x2b] 132 133 // subs 134 subs x2, x4, w5, uxtb #2 135 subs x20, sp, w19, uxth #4 136 subs x12, x1, w20, uxtw 137 subs x20, x3, x13, uxtx #0 138 subs xzr, x25, w20, sxtb #3 139 subs x18, sp, w19, sxth 140 subs xzr, x2, w3, sxtw 141 subs x3, x5, x9, sxtx #2 142// CHECK: subs x2, x4, w5, uxtb #2 // encoding: [0x82,0x08,0x25,0xeb] 143// CHECK: subs x20, sp, w19, uxth #4 // encoding: [0xf4,0x33,0x33,0xeb] 144// CHECK: subs x12, x1, w20, uxtw // encoding: [0x2c,0x40,0x34,0xeb] 145// CHECK: subs x20, x3, x13, uxtx // encoding: [0x74,0x60,0x2d,0xeb] 146// CHECK: subs xzr, x25, w20, sxtb #3 // encoding: [0x3f,0x8f,0x34,0xeb] 147// CHECK: subs x18, sp, w19, sxth // encoding: [0xf2,0xa3,0x33,0xeb] 148// CHECK: subs xzr, x2, w3, sxtw // encoding: [0x5f,0xc0,0x23,0xeb] 149// CHECK: subs x3, x5, x9, sxtx #2 // encoding: [0xa3,0xe8,0x29,0xeb] 150 151 subs w2, w5, w7, uxtb 152 subs w21, w15, w17, uxth 153 subs w30, w29, wzr, uxtw 154 subs w19, w17, w1, uxtx // Goodness knows what this means 155 subs w2, w5, w1, sxtb #1 156 subs w26, wsp, w19, sxth 157 subs wzr, w2, w3, sxtw 158 subs w2, w3, w5, sxtx 159// CHECK: subs w2, w5, w7, uxtb // encoding: [0xa2,0x00,0x27,0x6b] 160// CHECK: subs w21, w15, w17, uxth // encoding: [0xf5,0x21,0x31,0x6b] 161// CHECK: subs w30, w29, wzr, uxtw // encoding: [0xbe,0x43,0x3f,0x6b] 162// CHECK: subs w19, w17, w1, uxtx // encoding: [0x33,0x62,0x21,0x6b] 163// CHECK: subs w2, w5, w1, sxtb #1 // encoding: [0xa2,0x84,0x21,0x6b] 164// CHECK: subs w26, wsp, w19, sxth // encoding: [0xfa,0xa3,0x33,0x6b] 165// CHECK: subs wzr, w2, w3, sxtw // encoding: [0x5f,0xc0,0x23,0x6b] 166// CHECK: subs w2, w3, w5, sxtx // encoding: [0x62,0xe0,0x25,0x6b] 167 168 // cmp 169 cmp x4, w5, uxtb #2 170 cmp sp, w19, uxth #4 171 cmp x1, w20, uxtw 172 cmp x3, x13, uxtx #0 173 cmp x25, w20, sxtb #3 174 cmp sp, w19, sxth 175 cmp x2, w3, sxtw 176 cmp x5, x9, sxtx #2 177// CHECK: cmp x4, w5, uxtb #2 // encoding: [0x9f,0x08,0x25,0xeb] 178// CHECK: cmp sp, w19, uxth #4 // encoding: [0xff,0x33,0x33,0xeb] 179// CHECK: cmp x1, w20, uxtw // encoding: [0x3f,0x40,0x34,0xeb] 180// CHECK: cmp x3, x13, uxtx // encoding: [0x7f,0x60,0x2d,0xeb] 181// CHECK: cmp x25, w20, sxtb #3 // encoding: [0x3f,0x8f,0x34,0xeb] 182// CHECK: cmp sp, w19, sxth // encoding: [0xff,0xa3,0x33,0xeb] 183// CHECK: cmp x2, w3, sxtw // encoding: [0x5f,0xc0,0x23,0xeb] 184// CHECK: cmp x5, x9, sxtx #2 // encoding: [0xbf,0xe8,0x29,0xeb] 185 186 cmp w5, w7, uxtb 187 cmp w15, w17, uxth 188 cmp w29, wzr, uxtw 189 cmp w17, w1, uxtx // Goodness knows what this means 190 cmp w5, w1, sxtb #1 191 cmp wsp, w19, sxth 192 cmp w2, w3, sxtw 193 cmp w3, w5, sxtx 194// CHECK: cmp w5, w7, uxtb // encoding: [0xbf,0x00,0x27,0x6b] 195// CHECK: cmp w15, w17, uxth // encoding: [0xff,0x21,0x31,0x6b] 196// CHECK: cmp w29, wzr, uxtw // encoding: [0xbf,0x43,0x3f,0x6b] 197// CHECK: cmp w17, w1, uxtx // encoding: [0x3f,0x62,0x21,0x6b] 198// CHECK: cmp w5, w1, sxtb #1 // encoding: [0xbf,0x84,0x21,0x6b] 199// CHECK: cmp wsp, w19, sxth // encoding: [0xff,0xa3,0x33,0x6b] 200// CHECK: cmp w2, w3, sxtw // encoding: [0x5f,0xc0,0x23,0x6b] 201// CHECK: cmp w3, w5, sxtx // encoding: [0x7f,0xe0,0x25,0x6b] 202 203 204 // cmn 205 cmn x4, w5, uxtb #2 206 cmn sp, w19, uxth #4 207 cmn x1, w20, uxtw 208 cmn x3, x13, uxtx #0 209 cmn x25, w20, sxtb #3 210 cmn sp, w19, sxth 211 cmn x2, w3, sxtw 212 cmn x5, x9, sxtx #2 213// CHECK: cmn x4, w5, uxtb #2 // encoding: [0x9f,0x08,0x25,0xab] 214// CHECK: cmn sp, w19, uxth #4 // encoding: [0xff,0x33,0x33,0xab] 215// CHECK: cmn x1, w20, uxtw // encoding: [0x3f,0x40,0x34,0xab] 216// CHECK: cmn x3, x13, uxtx // encoding: [0x7f,0x60,0x2d,0xab] 217// CHECK: cmn x25, w20, sxtb #3 // encoding: [0x3f,0x8f,0x34,0xab] 218// CHECK: cmn sp, w19, sxth // encoding: [0xff,0xa3,0x33,0xab] 219// CHECK: cmn x2, w3, sxtw // encoding: [0x5f,0xc0,0x23,0xab] 220// CHECK: cmn x5, x9, sxtx #2 // encoding: [0xbf,0xe8,0x29,0xab] 221 222 cmn w5, w7, uxtb 223 cmn w15, w17, uxth 224 cmn w29, wzr, uxtw 225 cmn w17, w1, uxtx // Goodness knows what this means 226 cmn w5, w1, sxtb #1 227 cmn wsp, w19, sxth 228 cmn w2, w3, sxtw 229 cmn w3, w5, sxtx 230// CHECK: cmn w5, w7, uxtb // encoding: [0xbf,0x00,0x27,0x2b] 231// CHECK: cmn w15, w17, uxth // encoding: [0xff,0x21,0x31,0x2b] 232// CHECK: cmn w29, wzr, uxtw // encoding: [0xbf,0x43,0x3f,0x2b] 233// CHECK: cmn w17, w1, uxtx // encoding: [0x3f,0x62,0x21,0x2b] 234// CHECK: cmn w5, w1, sxtb #1 // encoding: [0xbf,0x84,0x21,0x2b] 235// CHECK: cmn wsp, w19, sxth // encoding: [0xff,0xa3,0x33,0x2b] 236// CHECK: cmn w2, w3, sxtw // encoding: [0x5f,0xc0,0x23,0x2b] 237// CHECK: cmn w3, w5, sxtx // encoding: [0x7f,0xe0,0x25,0x2b] 238 239 // operands for cmp 240 cmp x20, w29, uxtb #3 241 cmp x12, x13, uxtx #4 242 cmp wsp, w1, uxtb 243 cmn wsp, wzr, sxtw 244// CHECK: cmp x20, w29, uxtb #3 // encoding: [0x9f,0x0e,0x3d,0xeb] 245// CHECK: cmp x12, x13, uxtx #4 // encoding: [0x9f,0x71,0x2d,0xeb] 246// CHECK: cmp wsp, w1, uxtb // encoding: [0xff,0x03,0x21,0x6b] 247// CHECK: cmn wsp, wzr, sxtw // encoding: [0xff,0xc3,0x3f,0x2b] 248 249 // LSL variant if sp involved 250 sub sp, x3, x7, lsl #4 251 add w2, wsp, w3, lsl #1 252 cmp wsp, w9, lsl #0 253 adds wzr, wsp, w3, lsl #4 254 subs x3, sp, x9, lsl #2 255// CHECK: sub sp, x3, x7, lsl #4 // encoding: [0x7f,0x70,0x27,0xcb] 256// CHECK: add w2, wsp, w3, lsl #1 // encoding: [0xe2,0x47,0x23,0x0b] 257// CHECK: cmp wsp, w9 // encoding: [0xff,0x43,0x29,0x6b] 258// CHECK: adds wzr, wsp, w3, lsl #4 // encoding: [0xff,0x53,0x23,0x2b] 259// CHECK: subs x3, sp, x9, lsl #2 // encoding: [0xe3,0x6b,0x29,0xeb] 260 261//------------------------------------------------------------------------------ 262// Add/sub (immediate) 263//------------------------------------------------------------------------------ 264 265// Check basic immediate values: an unsigned 12-bit immediate, optionally 266// shifted left by 12 bits. 267 add w4, w5, #0x0 268 add w2, w3, #4095 269 add w30, w29, #1, lsl #12 270 add w13, w5, #4095, lsl #12 271 add x5, x7, #1638 272// CHECK: add w4, w5, #0 // encoding: [0xa4,0x00,0x00,0x11] 273// CHECK: add w2, w3, #4095 // encoding: [0x62,0xfc,0x3f,0x11] 274// CHECK: add w30, w29, #1, lsl #12 // encoding: [0xbe,0x07,0x40,0x11] 275// CHECK: add w13, w5, #4095, lsl #12 // encoding: [0xad,0xfc,0x7f,0x11] 276// CHECK: add x5, x7, #1638 // encoding: [0xe5,0x98,0x19,0x91] 277 278// All registers involved in the non-S variants have 31 encoding sp rather than zr 279 add w20, wsp, #801, lsl #0 280 add wsp, wsp, #1104 281 add wsp, w30, #4084 282// CHECK: add w20, wsp, #801 // encoding: [0xf4,0x87,0x0c,0x11] 283// CHECK: add wsp, wsp, #1104 // encoding: [0xff,0x43,0x11,0x11] 284// CHECK: add wsp, w30, #4084 // encoding: [0xdf,0xd3,0x3f,0x11] 285 286// A few checks on the sanity of 64-bit versions 287 add x0, x24, #291 288 add x3, x24, #4095, lsl #12 289 add x8, sp, #1074 290 add sp, x29, #3816 291// CHECK: add x0, x24, #291 // encoding: [0x00,0x8f,0x04,0x91] 292// CHECK: add x3, x24, #4095, lsl #12 // encoding: [0x03,0xff,0x7f,0x91] 293// CHECK: add x8, sp, #1074 // encoding: [0xe8,0xcb,0x10,0x91] 294// CHECK: add sp, x29, #3816 // encoding: [0xbf,0xa3,0x3b,0x91] 295 296// And on sub 297 sub w0, wsp, #4077 298 sub w4, w20, #546, lsl #12 299 sub sp, sp, #288 300 sub wsp, w19, #16 301// CHECK: sub w0, wsp, #4077 // encoding: [0xe0,0xb7,0x3f,0x51] 302// CHECK: sub w4, w20, #546, lsl #12 // encoding: [0x84,0x8a,0x48,0x51] 303// CHECK: sub sp, sp, #288 // encoding: [0xff,0x83,0x04,0xd1] 304// CHECK: sub wsp, w19, #16 // encoding: [0x7f,0x42,0x00,0x51] 305 306// ADDS/SUBS accept zr in the Rd position but sp in the Rn position 307 adds w13, w23, #291, lsl #12 308 adds wzr, w2, #4095 // FIXME: canonically should be cmn 309 adds w20, wsp, #0x0 310 adds xzr, x3, #0x1, lsl #12 // FIXME: canonically should be cmn 311// CHECK: adds w13, w23, #291, lsl #12 // encoding: [0xed,0x8e,0x44,0x31] 312// CHECK: adds wzr, w2, #4095 // encoding: [0x5f,0xfc,0x3f,0x31] 313// CHECK: adds w20, wsp, #0 // encoding: [0xf4,0x03,0x00,0x31] 314// CHECK: adds xzr, x3, #1, lsl #12 // encoding: [0x7f,0x04,0x40,0xb1] 315 316// Checks for subs 317 subs xzr, sp, #20, lsl #12 // FIXME: canonically should be cmp 318 subs xzr, x30, #4095, lsl #0 // FIXME: canonically should be cmp 319 subs x4, sp, #3822 320// CHECK: subs xzr, sp, #20, lsl #12 // encoding: [0xff,0x53,0x40,0xf1] 321// CHECK: subs xzr, x30, #4095 // encoding: [0xdf,0xff,0x3f,0xf1] 322// CHECK: subs x4, sp, #3822 // encoding: [0xe4,0xbb,0x3b,0xf1] 323 324// cmn is an alias for adds zr, ... 325 cmn w3, #291, lsl #12 326 cmn wsp, #1365, lsl #0 327 cmn sp, #1092, lsl #12 328// CHECK: cmn w3, #291, lsl #12 // encoding: [0x7f,0x8c,0x44,0x31] 329// CHECK: cmn wsp, #1365 // encoding: [0xff,0x57,0x15,0x31] 330// CHECK: cmn sp, #1092, lsl #12 // encoding: [0xff,0x13,0x51,0xb1] 331 332// cmp is an alias for subs zr, ... (FIXME: should always disassemble as such too). 333 cmp x4, #300, lsl #12 334 cmp wsp, #500 335 cmp sp, #200, lsl #0 336// CHECK: cmp x4, #300, lsl #12 // encoding: [0x9f,0xb0,0x44,0xf1] 337// CHECK: cmp wsp, #500 // encoding: [0xff,0xd3,0x07,0x71] 338// CHECK: cmp sp, #200 // encoding: [0xff,0x23,0x03,0xf1] 339 340// A "MOV" involving sp is encoded in this manner: add Reg, Reg, #0 341 mov sp, x30 342 mov wsp, w20 343 mov x11, sp 344 mov w24, wsp 345// CHECK: mov sp, x30 // encoding: [0xdf,0x03,0x00,0x91] 346// CHECK: mov wsp, w20 // encoding: [0x9f,0x02,0x00,0x11] 347// CHECK: mov x11, sp // encoding: [0xeb,0x03,0x00,0x91] 348// CHECK: mov w24, wsp // encoding: [0xf8,0x03,0x00,0x11] 349 350// A relocation check (default to lo12, which is the only sane relocation anyway really) 351 add x0, x4, #:lo12:var 352// CHECK: add x0, x4, #:lo12:var // encoding: [0x80'A',A,A,0x91'A'] 353// CHECK: // fixup A - offset: 0, value: :lo12:var, kind: fixup_a64_add_lo12 354 355//------------------------------------------------------------------------------ 356// Add-sub (shifted register) 357//------------------------------------------------------------------------------ 358 359// As usual, we don't print the canonical forms of many instructions. 360 361 add w3, w5, w7 362 add wzr, w3, w5 363 add w20, wzr, w4 364 add w4, w6, wzr 365// CHECK: add w3, w5, w7 // encoding: [0xa3,0x00,0x07,0x0b] 366// CHECK: add wzr, w3, w5 // encoding: [0x7f,0x00,0x05,0x0b] 367// CHECK: add w20, wzr, w4 // encoding: [0xf4,0x03,0x04,0x0b] 368// CHECK: add w4, w6, wzr // encoding: [0xc4,0x00,0x1f,0x0b] 369 370 add w11, w13, w15, lsl #0 371 add w9, w3, wzr, lsl #10 372 add w17, w29, w20, lsl #31 373// CHECK: add w11, w13, w15 // encoding: [0xab,0x01,0x0f,0x0b] 374// CHECK: add w9, w3, wzr, lsl #10 // encoding: [0x69,0x28,0x1f,0x0b] 375// CHECK: add w17, w29, w20, lsl #31 // encoding: [0xb1,0x7f,0x14,0x0b] 376 377 add w21, w22, w23, lsr #0 378 add w24, w25, w26, lsr #18 379 add w27, w28, w29, lsr #31 380// CHECK: add w21, w22, w23, lsr #0 // encoding: [0xd5,0x02,0x57,0x0b] 381// CHECK: add w24, w25, w26, lsr #18 // encoding: [0x38,0x4b,0x5a,0x0b] 382// CHECK: add w27, w28, w29, lsr #31 // encoding: [0x9b,0x7f,0x5d,0x0b] 383 384 add w2, w3, w4, asr #0 385 add w5, w6, w7, asr #21 386 add w8, w9, w10, asr #31 387// CHECK: add w2, w3, w4, asr #0 // encoding: [0x62,0x00,0x84,0x0b] 388// CHECK: add w5, w6, w7, asr #21 // encoding: [0xc5,0x54,0x87,0x0b] 389// CHECK: add w8, w9, w10, asr #31 // encoding: [0x28,0x7d,0x8a,0x0b] 390 391 add x3, x5, x7 392 add xzr, x3, x5 393 add x20, xzr, x4 394 add x4, x6, xzr 395// CHECK: add x3, x5, x7 // encoding: [0xa3,0x00,0x07,0x8b] 396// CHECK: add xzr, x3, x5 // encoding: [0x7f,0x00,0x05,0x8b] 397// CHECK: add x20, xzr, x4 // encoding: [0xf4,0x03,0x04,0x8b] 398// CHECK: add x4, x6, xzr // encoding: [0xc4,0x00,0x1f,0x8b] 399 400 add x11, x13, x15, lsl #0 401 add x9, x3, xzr, lsl #10 402 add x17, x29, x20, lsl #63 403// CHECK: add x11, x13, x15 // encoding: [0xab,0x01,0x0f,0x8b] 404// CHECK: add x9, x3, xzr, lsl #10 // encoding: [0x69,0x28,0x1f,0x8b] 405// CHECK: add x17, x29, x20, lsl #63 // encoding: [0xb1,0xff,0x14,0x8b] 406 407 add x21, x22, x23, lsr #0 408 add x24, x25, x26, lsr #18 409 add x27, x28, x29, lsr #63 410// CHECK: add x21, x22, x23, lsr #0 // encoding: [0xd5,0x02,0x57,0x8b] 411// CHECK: add x24, x25, x26, lsr #18 // encoding: [0x38,0x4b,0x5a,0x8b] 412// CHECK: add x27, x28, x29, lsr #63 // encoding: [0x9b,0xff,0x5d,0x8b] 413 414 add x2, x3, x4, asr #0 415 add x5, x6, x7, asr #21 416 add x8, x9, x10, asr #63 417// CHECK: add x2, x3, x4, asr #0 // encoding: [0x62,0x00,0x84,0x8b] 418// CHECK: add x5, x6, x7, asr #21 // encoding: [0xc5,0x54,0x87,0x8b] 419// CHECK: add x8, x9, x10, asr #63 // encoding: [0x28,0xfd,0x8a,0x8b] 420 421 adds w3, w5, w7 422 adds wzr, w3, w5 423 adds w20, wzr, w4 424 adds w4, w6, wzr 425// CHECK: adds w3, w5, w7 // encoding: [0xa3,0x00,0x07,0x2b] 426// CHECK: adds wzr, w3, w5 // encoding: [0x7f,0x00,0x05,0x2b] 427// CHECK: adds w20, wzr, w4 // encoding: [0xf4,0x03,0x04,0x2b] 428// CHECK: adds w4, w6, wzr // encoding: [0xc4,0x00,0x1f,0x2b] 429 430 adds w11, w13, w15, lsl #0 431 adds w9, w3, wzr, lsl #10 432 adds w17, w29, w20, lsl #31 433// CHECK: adds w11, w13, w15 // encoding: [0xab,0x01,0x0f,0x2b] 434// CHECK: adds w9, w3, wzr, lsl #10 // encoding: [0x69,0x28,0x1f,0x2b] 435// CHECK: adds w17, w29, w20, lsl #31 // encoding: [0xb1,0x7f,0x14,0x2b] 436 437 adds w21, w22, w23, lsr #0 438 adds w24, w25, w26, lsr #18 439 adds w27, w28, w29, lsr #31 440// CHECK: adds w21, w22, w23, lsr #0 // encoding: [0xd5,0x02,0x57,0x2b] 441// CHECK: adds w24, w25, w26, lsr #18 // encoding: [0x38,0x4b,0x5a,0x2b] 442// CHECK: adds w27, w28, w29, lsr #31 // encoding: [0x9b,0x7f,0x5d,0x2b] 443 444 adds w2, w3, w4, asr #0 445 adds w5, w6, w7, asr #21 446 adds w8, w9, w10, asr #31 447// CHECK: adds w2, w3, w4, asr #0 // encoding: [0x62,0x00,0x84,0x2b] 448// CHECK: adds w5, w6, w7, asr #21 // encoding: [0xc5,0x54,0x87,0x2b] 449// CHECK: adds w8, w9, w10, asr #31 // encoding: [0x28,0x7d,0x8a,0x2b] 450 451 adds x3, x5, x7 452 adds xzr, x3, x5 453 adds x20, xzr, x4 454 adds x4, x6, xzr 455// CHECK: adds x3, x5, x7 // encoding: [0xa3,0x00,0x07,0xab] 456// CHECK: adds xzr, x3, x5 // encoding: [0x7f,0x00,0x05,0xab] 457// CHECK: adds x20, xzr, x4 // encoding: [0xf4,0x03,0x04,0xab] 458// CHECK: adds x4, x6, xzr // encoding: [0xc4,0x00,0x1f,0xab] 459 460 adds x11, x13, x15, lsl #0 461 adds x9, x3, xzr, lsl #10 462 adds x17, x29, x20, lsl #63 463// CHECK: adds x11, x13, x15 // encoding: [0xab,0x01,0x0f,0xab] 464// CHECK: adds x9, x3, xzr, lsl #10 // encoding: [0x69,0x28,0x1f,0xab] 465// CHECK: adds x17, x29, x20, lsl #63 // encoding: [0xb1,0xff,0x14,0xab] 466 467 adds x21, x22, x23, lsr #0 468 adds x24, x25, x26, lsr #18 469 adds x27, x28, x29, lsr #63 470// CHECK: adds x21, x22, x23, lsr #0 // encoding: [0xd5,0x02,0x57,0xab] 471// CHECK: adds x24, x25, x26, lsr #18 // encoding: [0x38,0x4b,0x5a,0xab] 472// CHECK: adds x27, x28, x29, lsr #63 // encoding: [0x9b,0xff,0x5d,0xab] 473 474 adds x2, x3, x4, asr #0 475 adds x5, x6, x7, asr #21 476 adds x8, x9, x10, asr #63 477// CHECK: adds x2, x3, x4, asr #0 // encoding: [0x62,0x00,0x84,0xab] 478// CHECK: adds x5, x6, x7, asr #21 // encoding: [0xc5,0x54,0x87,0xab] 479// CHECK: adds x8, x9, x10, asr #63 // encoding: [0x28,0xfd,0x8a,0xab] 480 481 sub w3, w5, w7 482 sub wzr, w3, w5 483 sub w20, wzr, w4 484 sub w4, w6, wzr 485// CHECK: sub w3, w5, w7 // encoding: [0xa3,0x00,0x07,0x4b] 486// CHECK: sub wzr, w3, w5 // encoding: [0x7f,0x00,0x05,0x4b] 487// CHECK: sub w20, wzr, w4 // encoding: [0xf4,0x03,0x04,0x4b] 488// CHECK: sub w4, w6, wzr // encoding: [0xc4,0x00,0x1f,0x4b] 489 490 sub w11, w13, w15, lsl #0 491 sub w9, w3, wzr, lsl #10 492 sub w17, w29, w20, lsl #31 493// CHECK: sub w11, w13, w15 // encoding: [0xab,0x01,0x0f,0x4b] 494// CHECK: sub w9, w3, wzr, lsl #10 // encoding: [0x69,0x28,0x1f,0x4b] 495// CHECK: sub w17, w29, w20, lsl #31 // encoding: [0xb1,0x7f,0x14,0x4b] 496 497 sub w21, w22, w23, lsr #0 498 sub w24, w25, w26, lsr #18 499 sub w27, w28, w29, lsr #31 500// CHECK: sub w21, w22, w23, lsr #0 // encoding: [0xd5,0x02,0x57,0x4b] 501// CHECK: sub w24, w25, w26, lsr #18 // encoding: [0x38,0x4b,0x5a,0x4b] 502// CHECK: sub w27, w28, w29, lsr #31 // encoding: [0x9b,0x7f,0x5d,0x4b] 503 504 sub w2, w3, w4, asr #0 505 sub w5, w6, w7, asr #21 506 sub w8, w9, w10, asr #31 507// CHECK: sub w2, w3, w4, asr #0 // encoding: [0x62,0x00,0x84,0x4b] 508// CHECK: sub w5, w6, w7, asr #21 // encoding: [0xc5,0x54,0x87,0x4b] 509// CHECK: sub w8, w9, w10, asr #31 // encoding: [0x28,0x7d,0x8a,0x4b] 510 511 sub x3, x5, x7 512 sub xzr, x3, x5 513 sub x20, xzr, x4 514 sub x4, x6, xzr 515// CHECK: sub x3, x5, x7 // encoding: [0xa3,0x00,0x07,0xcb] 516// CHECK: sub xzr, x3, x5 // encoding: [0x7f,0x00,0x05,0xcb] 517// CHECK: sub x20, xzr, x4 // encoding: [0xf4,0x03,0x04,0xcb] 518// CHECK: sub x4, x6, xzr // encoding: [0xc4,0x00,0x1f,0xcb] 519 520 sub x11, x13, x15, lsl #0 521 sub x9, x3, xzr, lsl #10 522 sub x17, x29, x20, lsl #63 523// CHECK: sub x11, x13, x15 // encoding: [0xab,0x01,0x0f,0xcb] 524// CHECK: sub x9, x3, xzr, lsl #10 // encoding: [0x69,0x28,0x1f,0xcb] 525// CHECK: sub x17, x29, x20, lsl #63 // encoding: [0xb1,0xff,0x14,0xcb] 526 527 sub x21, x22, x23, lsr #0 528 sub x24, x25, x26, lsr #18 529 sub x27, x28, x29, lsr #63 530// CHECK: sub x21, x22, x23, lsr #0 // encoding: [0xd5,0x02,0x57,0xcb] 531// CHECK: sub x24, x25, x26, lsr #18 // encoding: [0x38,0x4b,0x5a,0xcb] 532// CHECK: sub x27, x28, x29, lsr #63 // encoding: [0x9b,0xff,0x5d,0xcb] 533 534 sub x2, x3, x4, asr #0 535 sub x5, x6, x7, asr #21 536 sub x8, x9, x10, asr #63 537// CHECK: sub x2, x3, x4, asr #0 // encoding: [0x62,0x00,0x84,0xcb] 538// CHECK: sub x5, x6, x7, asr #21 // encoding: [0xc5,0x54,0x87,0xcb] 539// CHECK: sub x8, x9, x10, asr #63 // encoding: [0x28,0xfd,0x8a,0xcb] 540 541 subs w3, w5, w7 542 subs wzr, w3, w5 543 subs w20, wzr, w4 544 subs w4, w6, wzr 545// CHECK: subs w3, w5, w7 // encoding: [0xa3,0x00,0x07,0x6b] 546// CHECK: subs wzr, w3, w5 // encoding: [0x7f,0x00,0x05,0x6b] 547// CHECK: subs w20, wzr, w4 // encoding: [0xf4,0x03,0x04,0x6b] 548// CHECK: subs w4, w6, wzr // encoding: [0xc4,0x00,0x1f,0x6b] 549 550 subs w11, w13, w15, lsl #0 551 subs w9, w3, wzr, lsl #10 552 subs w17, w29, w20, lsl #31 553// CHECK: subs w11, w13, w15 // encoding: [0xab,0x01,0x0f,0x6b] 554// CHECK: subs w9, w3, wzr, lsl #10 // encoding: [0x69,0x28,0x1f,0x6b] 555// CHECK: subs w17, w29, w20, lsl #31 // encoding: [0xb1,0x7f,0x14,0x6b] 556 557 subs w21, w22, w23, lsr #0 558 subs w24, w25, w26, lsr #18 559 subs w27, w28, w29, lsr #31 560// CHECK: subs w21, w22, w23, lsr #0 // encoding: [0xd5,0x02,0x57,0x6b] 561// CHECK: subs w24, w25, w26, lsr #18 // encoding: [0x38,0x4b,0x5a,0x6b] 562// CHECK: subs w27, w28, w29, lsr #31 // encoding: [0x9b,0x7f,0x5d,0x6b] 563 564 subs w2, w3, w4, asr #0 565 subs w5, w6, w7, asr #21 566 subs w8, w9, w10, asr #31 567// CHECK: subs w2, w3, w4, asr #0 // encoding: [0x62,0x00,0x84,0x6b] 568// CHECK: subs w5, w6, w7, asr #21 // encoding: [0xc5,0x54,0x87,0x6b] 569// CHECK: subs w8, w9, w10, asr #31 // encoding: [0x28,0x7d,0x8a,0x6b] 570 571 subs x3, x5, x7 572 subs xzr, x3, x5 573 subs x20, xzr, x4 574 subs x4, x6, xzr 575// CHECK: subs x3, x5, x7 // encoding: [0xa3,0x00,0x07,0xeb] 576// CHECK: subs xzr, x3, x5 // encoding: [0x7f,0x00,0x05,0xeb] 577// CHECK: subs x20, xzr, x4 // encoding: [0xf4,0x03,0x04,0xeb] 578// CHECK: subs x4, x6, xzr // encoding: [0xc4,0x00,0x1f,0xeb] 579 580 subs x11, x13, x15, lsl #0 581 subs x9, x3, xzr, lsl #10 582 subs x17, x29, x20, lsl #63 583// CHECK: subs x11, x13, x15 // encoding: [0xab,0x01,0x0f,0xeb] 584// CHECK: subs x9, x3, xzr, lsl #10 // encoding: [0x69,0x28,0x1f,0xeb] 585// CHECK: subs x17, x29, x20, lsl #63 // encoding: [0xb1,0xff,0x14,0xeb] 586 587 subs x21, x22, x23, lsr #0 588 subs x24, x25, x26, lsr #18 589 subs x27, x28, x29, lsr #63 590// CHECK: subs x21, x22, x23, lsr #0 // encoding: [0xd5,0x02,0x57,0xeb] 591// CHECK: subs x24, x25, x26, lsr #18 // encoding: [0x38,0x4b,0x5a,0xeb] 592// CHECK: subs x27, x28, x29, lsr #63 // encoding: [0x9b,0xff,0x5d,0xeb] 593 594 subs x2, x3, x4, asr #0 595 subs x5, x6, x7, asr #21 596 subs x8, x9, x10, asr #63 597// CHECK: subs x2, x3, x4, asr #0 // encoding: [0x62,0x00,0x84,0xeb] 598// CHECK: subs x5, x6, x7, asr #21 // encoding: [0xc5,0x54,0x87,0xeb] 599// CHECK: subs x8, x9, x10, asr #63 // encoding: [0x28,0xfd,0x8a,0xeb] 600 601 cmn w0, w3 602 cmn wzr, w4 603 cmn w5, wzr 604// CHECK: cmn w0, w3 // encoding: [0x1f,0x00,0x03,0x2b] 605// CHECK: cmn wzr, w4 // encoding: [0xff,0x03,0x04,0x2b] 606// CHECK: cmn w5, wzr // encoding: [0xbf,0x00,0x1f,0x2b] 607 608 cmn w6, w7, lsl #0 609 cmn w8, w9, lsl #15 610 cmn w10, w11, lsl #31 611// CHECK: cmn w6, w7 // encoding: [0xdf,0x00,0x07,0x2b] 612// CHECK: cmn w8, w9, lsl #15 // encoding: [0x1f,0x3d,0x09,0x2b] 613// CHECK: cmn w10, w11, lsl #31 // encoding: [0x5f,0x7d,0x0b,0x2b] 614 615 cmn w12, w13, lsr #0 616 cmn w14, w15, lsr #21 617 cmn w16, w17, lsr #31 618// CHECK: cmn w12, w13, lsr #0 // encoding: [0x9f,0x01,0x4d,0x2b] 619// CHECK: cmn w14, w15, lsr #21 // encoding: [0xdf,0x55,0x4f,0x2b] 620// CHECK: cmn w16, w17, lsr #31 // encoding: [0x1f,0x7e,0x51,0x2b] 621 622 cmn w18, w19, asr #0 623 cmn w20, w21, asr #22 624 cmn w22, w23, asr #31 625// CHECK: cmn w18, w19, asr #0 // encoding: [0x5f,0x02,0x93,0x2b] 626// CHECK: cmn w20, w21, asr #22 // encoding: [0x9f,0x5a,0x95,0x2b] 627// CHECK: cmn w22, w23, asr #31 // encoding: [0xdf,0x7e,0x97,0x2b] 628 629 cmn x0, x3 630 cmn xzr, x4 631 cmn x5, xzr 632// CHECK: cmn x0, x3 // encoding: [0x1f,0x00,0x03,0xab] 633// CHECK: cmn xzr, x4 // encoding: [0xff,0x03,0x04,0xab] 634// CHECK: cmn x5, xzr // encoding: [0xbf,0x00,0x1f,0xab] 635 636 cmn x6, x7, lsl #0 637 cmn x8, x9, lsl #15 638 cmn x10, x11, lsl #63 639// CHECK: cmn x6, x7 // encoding: [0xdf,0x00,0x07,0xab] 640// CHECK: cmn x8, x9, lsl #15 // encoding: [0x1f,0x3d,0x09,0xab] 641// CHECK: cmn x10, x11, lsl #63 // encoding: [0x5f,0xfd,0x0b,0xab] 642 643 cmn x12, x13, lsr #0 644 cmn x14, x15, lsr #41 645 cmn x16, x17, lsr #63 646// CHECK: cmn x12, x13, lsr #0 // encoding: [0x9f,0x01,0x4d,0xab] 647// CHECK: cmn x14, x15, lsr #41 // encoding: [0xdf,0xa5,0x4f,0xab] 648// CHECK: cmn x16, x17, lsr #63 // encoding: [0x1f,0xfe,0x51,0xab] 649 650 cmn x18, x19, asr #0 651 cmn x20, x21, asr #55 652 cmn x22, x23, asr #63 653// CHECK: cmn x18, x19, asr #0 // encoding: [0x5f,0x02,0x93,0xab] 654// CHECK: cmn x20, x21, asr #55 // encoding: [0x9f,0xde,0x95,0xab] 655// CHECK: cmn x22, x23, asr #63 // encoding: [0xdf,0xfe,0x97,0xab] 656 657 cmp w0, w3 658 cmp wzr, w4 659 cmp w5, wzr 660// CHECK: cmp w0, w3 // encoding: [0x1f,0x00,0x03,0x6b] 661// CHECK: cmp wzr, w4 // encoding: [0xff,0x03,0x04,0x6b] 662// CHECK: cmp w5, wzr // encoding: [0xbf,0x00,0x1f,0x6b] 663 664 cmp w6, w7, lsl #0 665 cmp w8, w9, lsl #15 666 cmp w10, w11, lsl #31 667// CHECK: cmp w6, w7 // encoding: [0xdf,0x00,0x07,0x6b] 668// CHECK: cmp w8, w9, lsl #15 // encoding: [0x1f,0x3d,0x09,0x6b] 669// CHECK: cmp w10, w11, lsl #31 // encoding: [0x5f,0x7d,0x0b,0x6b] 670 671 cmp w12, w13, lsr #0 672 cmp w14, w15, lsr #21 673 cmp w16, w17, lsr #31 674// CHECK: cmp w12, w13, lsr #0 // encoding: [0x9f,0x01,0x4d,0x6b] 675// CHECK: cmp w14, w15, lsr #21 // encoding: [0xdf,0x55,0x4f,0x6b] 676// CHECK: cmp w16, w17, lsr #31 // encoding: [0x1f,0x7e,0x51,0x6b] 677 678 cmp w18, w19, asr #0 679 cmp w20, w21, asr #22 680 cmp w22, w23, asr #31 681// CHECK: cmp w18, w19, asr #0 // encoding: [0x5f,0x02,0x93,0x6b] 682// CHECK: cmp w20, w21, asr #22 // encoding: [0x9f,0x5a,0x95,0x6b] 683// CHECK: cmp w22, w23, asr #31 // encoding: [0xdf,0x7e,0x97,0x6b] 684 685 cmp x0, x3 686 cmp xzr, x4 687 cmp x5, xzr 688// CHECK: cmp x0, x3 // encoding: [0x1f,0x00,0x03,0xeb] 689// CHECK: cmp xzr, x4 // encoding: [0xff,0x03,0x04,0xeb] 690// CHECK: cmp x5, xzr // encoding: [0xbf,0x00,0x1f,0xeb] 691 692 cmp x6, x7, lsl #0 693 cmp x8, x9, lsl #15 694 cmp x10, x11, lsl #63 695// CHECK: cmp x6, x7 // encoding: [0xdf,0x00,0x07,0xeb] 696// CHECK: cmp x8, x9, lsl #15 // encoding: [0x1f,0x3d,0x09,0xeb] 697// CHECK: cmp x10, x11, lsl #63 // encoding: [0x5f,0xfd,0x0b,0xeb] 698 699 cmp x12, x13, lsr #0 700 cmp x14, x15, lsr #41 701 cmp x16, x17, lsr #63 702// CHECK: cmp x12, x13, lsr #0 // encoding: [0x9f,0x01,0x4d,0xeb] 703// CHECK: cmp x14, x15, lsr #41 // encoding: [0xdf,0xa5,0x4f,0xeb] 704// CHECK: cmp x16, x17, lsr #63 // encoding: [0x1f,0xfe,0x51,0xeb] 705 706 cmp x18, x19, asr #0 707 cmp x20, x21, asr #55 708 cmp x22, x23, asr #63 709// CHECK: cmp x18, x19, asr #0 // encoding: [0x5f,0x02,0x93,0xeb] 710// CHECK: cmp x20, x21, asr #55 // encoding: [0x9f,0xde,0x95,0xeb] 711// CHECK: cmp x22, x23, asr #63 // encoding: [0xdf,0xfe,0x97,0xeb] 712 713 neg w29, w30 714 neg w30, wzr 715 neg wzr, w0 716// CHECK: sub w29, wzr, w30 // encoding: [0xfd,0x03,0x1e,0x4b] 717// CHECK: sub w30, wzr, wzr // encoding: [0xfe,0x03,0x1f,0x4b] 718// CHECK: sub wzr, wzr, w0 // encoding: [0xff,0x03,0x00,0x4b] 719 720 neg w28, w27, lsl #0 721 neg w26, w25, lsl #29 722 neg w24, w23, lsl #31 723// CHECK: sub w28, wzr, w27 // encoding: [0xfc,0x03,0x1b,0x4b] 724// CHECK: sub w26, wzr, w25, lsl #29 // encoding: [0xfa,0x77,0x19,0x4b] 725// CHECK: sub w24, wzr, w23, lsl #31 // encoding: [0xf8,0x7f,0x17,0x4b] 726 727 neg w22, w21, lsr #0 728 neg w20, w19, lsr #1 729 neg w18, w17, lsr #31 730// CHECK: sub w22, wzr, w21, lsr #0 // encoding: [0xf6,0x03,0x55,0x4b] 731// CHECK: sub w20, wzr, w19, lsr #1 // encoding: [0xf4,0x07,0x53,0x4b] 732// CHECK: sub w18, wzr, w17, lsr #31 // encoding: [0xf2,0x7f,0x51,0x4b] 733 734 neg w16, w15, asr #0 735 neg w14, w13, asr #12 736 neg w12, w11, asr #31 737// CHECK: sub w16, wzr, w15, asr #0 // encoding: [0xf0,0x03,0x8f,0x4b] 738// CHECK: sub w14, wzr, w13, asr #12 // encoding: [0xee,0x33,0x8d,0x4b] 739// CHECK: sub w12, wzr, w11, asr #31 // encoding: [0xec,0x7f,0x8b,0x4b] 740 741 neg x29, x30 742 neg x30, xzr 743 neg xzr, x0 744// CHECK: sub x29, xzr, x30 // encoding: [0xfd,0x03,0x1e,0xcb] 745// CHECK: sub x30, xzr, xzr // encoding: [0xfe,0x03,0x1f,0xcb] 746// CHECK: sub xzr, xzr, x0 // encoding: [0xff,0x03,0x00,0xcb] 747 748 neg x28, x27, lsl #0 749 neg x26, x25, lsl #29 750 neg x24, x23, lsl #31 751// CHECK: sub x28, xzr, x27 // encoding: [0xfc,0x03,0x1b,0xcb] 752// CHECK: sub x26, xzr, x25, lsl #29 // encoding: [0xfa,0x77,0x19,0xcb] 753// CHECK: sub x24, xzr, x23, lsl #31 // encoding: [0xf8,0x7f,0x17,0xcb] 754 755 neg x22, x21, lsr #0 756 neg x20, x19, lsr #1 757 neg x18, x17, lsr #31 758// CHECK: sub x22, xzr, x21, lsr #0 // encoding: [0xf6,0x03,0x55,0xcb] 759// CHECK: sub x20, xzr, x19, lsr #1 // encoding: [0xf4,0x07,0x53,0xcb] 760// CHECK: sub x18, xzr, x17, lsr #31 // encoding: [0xf2,0x7f,0x51,0xcb] 761 762 neg x16, x15, asr #0 763 neg x14, x13, asr #12 764 neg x12, x11, asr #31 765// CHECK: sub x16, xzr, x15, asr #0 // encoding: [0xf0,0x03,0x8f,0xcb] 766// CHECK: sub x14, xzr, x13, asr #12 // encoding: [0xee,0x33,0x8d,0xcb] 767// CHECK: sub x12, xzr, x11, asr #31 // encoding: [0xec,0x7f,0x8b,0xcb] 768 769 negs w29, w30 770 negs w30, wzr 771 negs wzr, w0 772// CHECK: subs w29, wzr, w30 // encoding: [0xfd,0x03,0x1e,0x6b] 773// CHECK: subs w30, wzr, wzr // encoding: [0xfe,0x03,0x1f,0x6b] 774// CHECK: subs wzr, wzr, w0 // encoding: [0xff,0x03,0x00,0x6b] 775 776 negs w28, w27, lsl #0 777 negs w26, w25, lsl #29 778 negs w24, w23, lsl #31 779// CHECK: subs w28, wzr, w27 // encoding: [0xfc,0x03,0x1b,0x6b] 780// CHECK: subs w26, wzr, w25, lsl #29 // encoding: [0xfa,0x77,0x19,0x6b] 781// CHECK: subs w24, wzr, w23, lsl #31 // encoding: [0xf8,0x7f,0x17,0x6b] 782 783 negs w22, w21, lsr #0 784 negs w20, w19, lsr #1 785 negs w18, w17, lsr #31 786// CHECK: subs w22, wzr, w21, lsr #0 // encoding: [0xf6,0x03,0x55,0x6b] 787// CHECK: subs w20, wzr, w19, lsr #1 // encoding: [0xf4,0x07,0x53,0x6b] 788// CHECK: subs w18, wzr, w17, lsr #31 // encoding: [0xf2,0x7f,0x51,0x6b] 789 790 negs w16, w15, asr #0 791 negs w14, w13, asr #12 792 negs w12, w11, asr #31 793// CHECK: subs w16, wzr, w15, asr #0 // encoding: [0xf0,0x03,0x8f,0x6b] 794// CHECK: subs w14, wzr, w13, asr #12 // encoding: [0xee,0x33,0x8d,0x6b] 795// CHECK: subs w12, wzr, w11, asr #31 // encoding: [0xec,0x7f,0x8b,0x6b] 796 797 negs x29, x30 798 negs x30, xzr 799 negs xzr, x0 800// CHECK: subs x29, xzr, x30 // encoding: [0xfd,0x03,0x1e,0xeb] 801// CHECK: subs x30, xzr, xzr // encoding: [0xfe,0x03,0x1f,0xeb] 802// CHECK: subs xzr, xzr, x0 // encoding: [0xff,0x03,0x00,0xeb] 803 804 negs x28, x27, lsl #0 805 negs x26, x25, lsl #29 806 negs x24, x23, lsl #31 807// CHECK: subs x28, xzr, x27 // encoding: [0xfc,0x03,0x1b,0xeb] 808// CHECK: subs x26, xzr, x25, lsl #29 // encoding: [0xfa,0x77,0x19,0xeb] 809// CHECK: subs x24, xzr, x23, lsl #31 // encoding: [0xf8,0x7f,0x17,0xeb] 810 811 negs x22, x21, lsr #0 812 negs x20, x19, lsr #1 813 negs x18, x17, lsr #31 814// CHECK: subs x22, xzr, x21, lsr #0 // encoding: [0xf6,0x03,0x55,0xeb] 815// CHECK: subs x20, xzr, x19, lsr #1 // encoding: [0xf4,0x07,0x53,0xeb] 816// CHECK: subs x18, xzr, x17, lsr #31 // encoding: [0xf2,0x7f,0x51,0xeb] 817 818 negs x16, x15, asr #0 819 negs x14, x13, asr #12 820 negs x12, x11, asr #31 821// CHECK: subs x16, xzr, x15, asr #0 // encoding: [0xf0,0x03,0x8f,0xeb] 822// CHECK: subs x14, xzr, x13, asr #12 // encoding: [0xee,0x33,0x8d,0xeb] 823// CHECK: subs x12, xzr, x11, asr #31 // encoding: [0xec,0x7f,0x8b,0xeb] 824 825//------------------------------------------------------------------------------ 826// Add-sub (shifted register) 827//------------------------------------------------------------------------------ 828 adc w29, w27, w25 829 adc wzr, w3, w4 830 adc w9, wzr, w10 831 adc w20, w0, wzr 832// CHECK: adc w29, w27, w25 // encoding: [0x7d,0x03,0x19,0x1a] 833// CHECK: adc wzr, w3, w4 // encoding: [0x7f,0x00,0x04,0x1a] 834// CHECK: adc w9, wzr, w10 // encoding: [0xe9,0x03,0x0a,0x1a] 835// CHECK: adc w20, w0, wzr // encoding: [0x14,0x00,0x1f,0x1a] 836 837 adc x29, x27, x25 838 adc xzr, x3, x4 839 adc x9, xzr, x10 840 adc x20, x0, xzr 841// CHECK: adc x29, x27, x25 // encoding: [0x7d,0x03,0x19,0x9a] 842// CHECK: adc xzr, x3, x4 // encoding: [0x7f,0x00,0x04,0x9a] 843// CHECK: adc x9, xzr, x10 // encoding: [0xe9,0x03,0x0a,0x9a] 844// CHECK: adc x20, x0, xzr // encoding: [0x14,0x00,0x1f,0x9a] 845 846 adcs w29, w27, w25 847 adcs wzr, w3, w4 848 adcs w9, wzr, w10 849 adcs w20, w0, wzr 850// CHECK: adcs w29, w27, w25 // encoding: [0x7d,0x03,0x19,0x3a] 851// CHECK: adcs wzr, w3, w4 // encoding: [0x7f,0x00,0x04,0x3a] 852// CHECK: adcs w9, wzr, w10 // encoding: [0xe9,0x03,0x0a,0x3a] 853// CHECK: adcs w20, w0, wzr // encoding: [0x14,0x00,0x1f,0x3a] 854 855 adcs x29, x27, x25 856 adcs xzr, x3, x4 857 adcs x9, xzr, x10 858 adcs x20, x0, xzr 859// CHECK: adcs x29, x27, x25 // encoding: [0x7d,0x03,0x19,0xba] 860// CHECK: adcs xzr, x3, x4 // encoding: [0x7f,0x00,0x04,0xba] 861// CHECK: adcs x9, xzr, x10 // encoding: [0xe9,0x03,0x0a,0xba] 862// CHECK: adcs x20, x0, xzr // encoding: [0x14,0x00,0x1f,0xba] 863 864 sbc w29, w27, w25 865 sbc wzr, w3, w4 866 sbc w9, wzr, w10 867 sbc w20, w0, wzr 868// CHECK: sbc w29, w27, w25 // encoding: [0x7d,0x03,0x19,0x5a] 869// CHECK: sbc wzr, w3, w4 // encoding: [0x7f,0x00,0x04,0x5a] 870// CHECK: ngc w9, w10 // encoding: [0xe9,0x03,0x0a,0x5a] 871// CHECK: sbc w20, w0, wzr // encoding: [0x14,0x00,0x1f,0x5a] 872 873 sbc x29, x27, x25 874 sbc xzr, x3, x4 875 sbc x9, xzr, x10 876 sbc x20, x0, xzr 877// CHECK: sbc x29, x27, x25 // encoding: [0x7d,0x03,0x19,0xda] 878// CHECK: sbc xzr, x3, x4 // encoding: [0x7f,0x00,0x04,0xda] 879// CHECK: ngc x9, x10 // encoding: [0xe9,0x03,0x0a,0xda] 880// CHECK: sbc x20, x0, xzr // encoding: [0x14,0x00,0x1f,0xda] 881 882 sbcs w29, w27, w25 883 sbcs wzr, w3, w4 884 sbcs w9, wzr, w10 885 sbcs w20, w0, wzr 886// CHECK: sbcs w29, w27, w25 // encoding: [0x7d,0x03,0x19,0x7a] 887// CHECK: sbcs wzr, w3, w4 // encoding: [0x7f,0x00,0x04,0x7a] 888// CHECK: ngcs w9, w10 // encoding: [0xe9,0x03,0x0a,0x7a] 889// CHECK: sbcs w20, w0, wzr // encoding: [0x14,0x00,0x1f,0x7a] 890 891 sbcs x29, x27, x25 892 sbcs xzr, x3, x4 893 sbcs x9, xzr, x10 894 sbcs x20, x0, xzr 895// CHECK: sbcs x29, x27, x25 // encoding: [0x7d,0x03,0x19,0xfa] 896// CHECK: sbcs xzr, x3, x4 // encoding: [0x7f,0x00,0x04,0xfa] 897// CHECK: ngcs x9, x10 // encoding: [0xe9,0x03,0x0a,0xfa] 898// CHECK: sbcs x20, x0, xzr // encoding: [0x14,0x00,0x1f,0xfa] 899 900 ngc w3, w12 901 ngc wzr, w9 902 ngc w23, wzr 903// CHECK: ngc w3, w12 // encoding: [0xe3,0x03,0x0c,0x5a] 904// CHECK: ngc wzr, w9 // encoding: [0xff,0x03,0x09,0x5a] 905// CHECK: ngc w23, wzr // encoding: [0xf7,0x03,0x1f,0x5a] 906 907 ngc x29, x30 908 ngc xzr, x0 909 ngc x0, xzr 910// CHECK: ngc x29, x30 // encoding: [0xfd,0x03,0x1e,0xda] 911// CHECK: ngc xzr, x0 // encoding: [0xff,0x03,0x00,0xda] 912// CHECK: ngc x0, xzr // encoding: [0xe0,0x03,0x1f,0xda] 913 914 ngcs w3, w12 915 ngcs wzr, w9 916 ngcs w23, wzr 917// CHECK: ngcs w3, w12 // encoding: [0xe3,0x03,0x0c,0x7a] 918// CHECK: ngcs wzr, w9 // encoding: [0xff,0x03,0x09,0x7a] 919// CHECK: ngcs w23, wzr // encoding: [0xf7,0x03,0x1f,0x7a] 920 921 ngcs x29, x30 922 ngcs xzr, x0 923 ngcs x0, xzr 924// CHECK: ngcs x29, x30 // encoding: [0xfd,0x03,0x1e,0xfa] 925// CHECK: ngcs xzr, x0 // encoding: [0xff,0x03,0x00,0xfa] 926// CHECK: ngcs x0, xzr // encoding: [0xe0,0x03,0x1f,0xfa] 927 928//------------------------------------------------------------------------------ 929// Bitfield 930//------------------------------------------------------------------------------ 931 932 sbfm x1, x2, #3, #4 933 sbfm x3, x4, #63, #63 934 sbfm wzr, wzr, #31, #31 935 sbfm w12, w9, #0, #0 936// CHECK: sbfm x1, x2, #3, #4 // encoding: [0x41,0x10,0x43,0x93] 937// CHECK: sbfm x3, x4, #63, #63 // encoding: [0x83,0xfc,0x7f,0x93] 938// CHECK: sbfm wzr, wzr, #31, #31 // encoding: [0xff,0x7f,0x1f,0x13] 939// CHECK: sbfm w12, w9, #0, #0 // encoding: [0x2c,0x01,0x00,0x13] 940 941 ubfm x4, x5, #12, #10 942 ubfm xzr, x4, #0, #0 943 ubfm x4, xzr, #63, #5 944 ubfm x5, x6, #12, #63 945// CHECK: ubfm x4, x5, #12, #10 // encoding: [0xa4,0x28,0x4c,0xd3] 946// CHECK: ubfm xzr, x4, #0, #0 // encoding: [0x9f,0x00,0x40,0xd3] 947// CHECK: ubfm x4, xzr, #63, #5 // encoding: [0xe4,0x17,0x7f,0xd3] 948// CHECK: ubfm x5, x6, #12, #63 // encoding: [0xc5,0xfc,0x4c,0xd3] 949 950 bfm x4, x5, #12, #10 951 bfm xzr, x4, #0, #0 952 bfm x4, xzr, #63, #5 953 bfm x5, x6, #12, #63 954// CHECK: bfm x4, x5, #12, #10 // encoding: [0xa4,0x28,0x4c,0xb3] 955// CHECK: bfm xzr, x4, #0, #0 // encoding: [0x9f,0x00,0x40,0xb3] 956// CHECK: bfm x4, xzr, #63, #5 // encoding: [0xe4,0x17,0x7f,0xb3] 957// CHECK: bfm x5, x6, #12, #63 // encoding: [0xc5,0xfc,0x4c,0xb3] 958 959 sxtb w1, w2 960 sxtb xzr, w3 961 sxth w9, w10 962 sxth x0, w1 963 sxtw x3, w30 964// CHECK: sxtb w1, w2 // encoding: [0x41,0x1c,0x00,0x13] 965// CHECK: sxtb xzr, w3 // encoding: [0x7f,0x1c,0x40,0x93] 966// CHECK: sxth w9, w10 // encoding: [0x49,0x3d,0x00,0x13] 967// CHECK: sxth x0, w1 // encoding: [0x20,0x3c,0x40,0x93] 968// CHECK: sxtw x3, w30 // encoding: [0xc3,0x7f,0x40,0x93] 969 970 uxtb w1, w2 971 uxtb xzr, w3 972 uxth w9, w10 973 uxth x0, w1 974// CHECK: uxtb w1, w2 // encoding: [0x41,0x1c,0x00,0x53] 975// CHECK: uxtb xzr, w3 // encoding: [0x7f,0x1c,0x00,0x53] 976// CHECK: uxth w9, w10 // encoding: [0x49,0x3d,0x00,0x53] 977// CHECK: uxth x0, w1 // encoding: [0x20,0x3c,0x00,0x53] 978 979 asr w3, w2, #0 980 asr w9, w10, #31 981 asr x20, x21, #63 982 asr w1, wzr, #3 983// CHECK: asr w3, w2, #0 // encoding: [0x43,0x7c,0x00,0x13] 984// CHECK: asr w9, w10, #31 // encoding: [0x49,0x7d,0x1f,0x13] 985// CHECK: asr x20, x21, #63 // encoding: [0xb4,0xfe,0x7f,0x93] 986// CHECK: asr w1, wzr, #3 // encoding: [0xe1,0x7f,0x03,0x13] 987 988 lsr w3, w2, #0 989 lsr w9, w10, #31 990 lsr x20, x21, #63 991 lsr wzr, wzr, #3 992// CHECK: lsr w3, w2, #0 // encoding: [0x43,0x7c,0x00,0x53] 993// CHECK: lsr w9, w10, #31 // encoding: [0x49,0x7d,0x1f,0x53] 994// CHECK: lsr x20, x21, #63 // encoding: [0xb4,0xfe,0x7f,0xd3] 995// CHECK: lsr wzr, wzr, #3 // encoding: [0xff,0x7f,0x03,0x53] 996 997 lsl w3, w2, #0 998 lsl w9, w10, #31 999 lsl x20, x21, #63 1000 lsl w1, wzr, #3 1001// CHECK: lsl w3, w2, #0 // encoding: [0x43,0x7c,0x00,0x53] 1002// CHECK: lsl w9, w10, #31 // encoding: [0x49,0x01,0x01,0x53] 1003// CHECK: lsl x20, x21, #63 // encoding: [0xb4,0x02,0x41,0xd3] 1004// CHECK: lsl w1, wzr, #3 // encoding: [0xe1,0x73,0x1d,0x53] 1005 1006 sbfiz w9, w10, #0, #1 1007 sbfiz x2, x3, #63, #1 1008 sbfiz x19, x20, #0, #64 1009 sbfiz x9, x10, #5, #59 1010 sbfiz w9, w10, #0, #32 1011 sbfiz w11, w12, #31, #1 1012 sbfiz w13, w14, #29, #3 1013 sbfiz xzr, xzr, #10, #11 1014// CHECK: sbfiz w9, w10, #0, #1 // encoding: [0x49,0x01,0x00,0x13] 1015// CHECK: sbfiz x2, x3, #63, #1 // encoding: [0x62,0x00,0x41,0x93] 1016// CHECK: sbfiz x19, x20, #0, #64 // encoding: [0x93,0xfe,0x40,0x93] 1017// CHECK: sbfiz x9, x10, #5, #59 // encoding: [0x49,0xe9,0x7b,0x93] 1018// CHECK: sbfiz w9, w10, #0, #32 // encoding: [0x49,0x7d,0x00,0x13] 1019// CHECK: sbfiz w11, w12, #31, #1 // encoding: [0x8b,0x01,0x01,0x13] 1020// CHECK: sbfiz w13, w14, #29, #3 // encoding: [0xcd,0x09,0x03,0x13] 1021// CHECK: sbfiz xzr, xzr, #10, #11 // encoding: [0xff,0x2b,0x76,0x93] 1022 1023 sbfx w9, w10, #0, #1 1024 sbfx x2, x3, #63, #1 1025 sbfx x19, x20, #0, #64 1026 sbfx x9, x10, #5, #59 1027 sbfx w9, w10, #0, #32 1028 sbfx w11, w12, #31, #1 1029 sbfx w13, w14, #29, #3 1030 sbfx xzr, xzr, #10, #11 1031// CHECK: sbfx w9, w10, #0, #1 // encoding: [0x49,0x01,0x00,0x13] 1032// CHECK: sbfx x2, x3, #63, #1 // encoding: [0x62,0xfc,0x7f,0x93] 1033// CHECK: sbfx x19, x20, #0, #64 // encoding: [0x93,0xfe,0x40,0x93] 1034// CHECK: sbfx x9, x10, #5, #59 // encoding: [0x49,0xfd,0x45,0x93] 1035// CHECK: sbfx w9, w10, #0, #32 // encoding: [0x49,0x7d,0x00,0x13] 1036// CHECK: sbfx w11, w12, #31, #1 // encoding: [0x8b,0x7d,0x1f,0x13] 1037// CHECK: sbfx w13, w14, #29, #3 // encoding: [0xcd,0x7d,0x1d,0x13] 1038// CHECK: sbfx xzr, xzr, #10, #11 // encoding: [0xff,0x53,0x4a,0x93] 1039 1040 bfi w9, w10, #0, #1 1041 bfi x2, x3, #63, #1 1042 bfi x19, x20, #0, #64 1043 bfi x9, x10, #5, #59 1044 bfi w9, w10, #0, #32 1045 bfi w11, w12, #31, #1 1046 bfi w13, w14, #29, #3 1047 bfi xzr, xzr, #10, #11 1048// CHECK: bfi w9, w10, #0, #1 // encoding: [0x49,0x01,0x00,0x33] 1049// CHECK: bfi x2, x3, #63, #1 // encoding: [0x62,0x00,0x41,0xb3] 1050// CHECK: bfi x19, x20, #0, #64 // encoding: [0x93,0xfe,0x40,0xb3] 1051// CHECK: bfi x9, x10, #5, #59 // encoding: [0x49,0xe9,0x7b,0xb3] 1052// CHECK: bfi w9, w10, #0, #32 // encoding: [0x49,0x7d,0x00,0x33] 1053// CHECK: bfi w11, w12, #31, #1 // encoding: [0x8b,0x01,0x01,0x33] 1054// CHECK: bfi w13, w14, #29, #3 // encoding: [0xcd,0x09,0x03,0x33] 1055// CHECK: bfi xzr, xzr, #10, #11 // encoding: [0xff,0x2b,0x76,0xb3] 1056 1057 bfxil w9, w10, #0, #1 1058 bfxil x2, x3, #63, #1 1059 bfxil x19, x20, #0, #64 1060 bfxil x9, x10, #5, #59 1061 bfxil w9, w10, #0, #32 1062 bfxil w11, w12, #31, #1 1063 bfxil w13, w14, #29, #3 1064 bfxil xzr, xzr, #10, #11 1065// CHECK: bfxil w9, w10, #0, #1 // encoding: [0x49,0x01,0x00,0x33] 1066// CHECK: bfxil x2, x3, #63, #1 // encoding: [0x62,0xfc,0x7f,0xb3] 1067// CHECK: bfxil x19, x20, #0, #64 // encoding: [0x93,0xfe,0x40,0xb3] 1068// CHECK: bfxil x9, x10, #5, #59 // encoding: [0x49,0xfd,0x45,0xb3] 1069// CHECK: bfxil w9, w10, #0, #32 // encoding: [0x49,0x7d,0x00,0x33] 1070// CHECK: bfxil w11, w12, #31, #1 // encoding: [0x8b,0x7d,0x1f,0x33] 1071// CHECK: bfxil w13, w14, #29, #3 // encoding: [0xcd,0x7d,0x1d,0x33] 1072// CHECK: bfxil xzr, xzr, #10, #11 // encoding: [0xff,0x53,0x4a,0xb3] 1073 1074 ubfiz w9, w10, #0, #1 1075 ubfiz x2, x3, #63, #1 1076 ubfiz x19, x20, #0, #64 1077 ubfiz x9, x10, #5, #59 1078 ubfiz w9, w10, #0, #32 1079 ubfiz w11, w12, #31, #1 1080 ubfiz w13, w14, #29, #3 1081 ubfiz xzr, xzr, #10, #11 1082// CHECK: ubfiz w9, w10, #0, #1 // encoding: [0x49,0x01,0x00,0x53] 1083// CHECK: ubfiz x2, x3, #63, #1 // encoding: [0x62,0x00,0x41,0xd3] 1084// CHECK: ubfiz x19, x20, #0, #64 // encoding: [0x93,0xfe,0x40,0xd3] 1085// CHECK: ubfiz x9, x10, #5, #59 // encoding: [0x49,0xe9,0x7b,0xd3] 1086// CHECK: ubfiz w9, w10, #0, #32 // encoding: [0x49,0x7d,0x00,0x53] 1087// CHECK: ubfiz w11, w12, #31, #1 // encoding: [0x8b,0x01,0x01,0x53] 1088// CHECK: ubfiz w13, w14, #29, #3 // encoding: [0xcd,0x09,0x03,0x53] 1089// CHECK: ubfiz xzr, xzr, #10, #11 // encoding: [0xff,0x2b,0x76,0xd3] 1090 1091 ubfx w9, w10, #0, #1 1092 ubfx x2, x3, #63, #1 1093 ubfx x19, x20, #0, #64 1094 ubfx x9, x10, #5, #59 1095 ubfx w9, w10, #0, #32 1096 ubfx w11, w12, #31, #1 1097 ubfx w13, w14, #29, #3 1098 ubfx xzr, xzr, #10, #11 1099// CHECK: ubfx w9, w10, #0, #1 // encoding: [0x49,0x01,0x00,0x53] 1100// CHECK: ubfx x2, x3, #63, #1 // encoding: [0x62,0xfc,0x7f,0xd3] 1101// CHECK: ubfx x19, x20, #0, #64 // encoding: [0x93,0xfe,0x40,0xd3] 1102// CHECK: ubfx x9, x10, #5, #59 // encoding: [0x49,0xfd,0x45,0xd3] 1103// CHECK: ubfx w9, w10, #0, #32 // encoding: [0x49,0x7d,0x00,0x53] 1104// CHECK: ubfx w11, w12, #31, #1 // encoding: [0x8b,0x7d,0x1f,0x53] 1105// CHECK: ubfx w13, w14, #29, #3 // encoding: [0xcd,0x7d,0x1d,0x53] 1106// CHECK: ubfx xzr, xzr, #10, #11 // encoding: [0xff,0x53,0x4a,0xd3] 1107 1108//------------------------------------------------------------------------------ 1109// Compare & branch (immediate) 1110//------------------------------------------------------------------------------ 1111 1112 cbz w5, lbl 1113 cbz x5, lbl 1114 cbnz x2, lbl 1115 cbnz x26, lbl 1116// CHECK: cbz w5, lbl // encoding: [0x05'A',A,A,0x34'A'] 1117// CHECK: // fixup A - offset: 0, value: lbl, kind: fixup_a64_condbr 1118// CHECK: cbz x5, lbl // encoding: [0x05'A',A,A,0xb4'A'] 1119// CHECK: // fixup A - offset: 0, value: lbl, kind: fixup_a64_condbr 1120// CHECK: cbnz x2, lbl // encoding: [0x02'A',A,A,0xb5'A'] 1121// CHECK: // fixup A - offset: 0, value: lbl, kind: fixup_a64_condbr 1122// CHECK: cbnz x26, lbl // encoding: [0x1a'A',A,A,0xb5'A'] 1123// CHECK: // fixup A - offset: 0, value: lbl, kind: fixup_a64_condbr 1124 1125 cbz wzr, lbl 1126 cbnz xzr, lbl 1127// CHECK: cbz wzr, lbl // encoding: [0x1f'A',A,A,0x34'A'] 1128// CHECK: // fixup A - offset: 0, value: lbl, kind: fixup_a64_condbr 1129// CHECK: cbnz xzr, lbl // encoding: [0x1f'A',A,A,0xb5'A'] 1130// CHECK: // fixup A - offset: 0, value: lbl, kind: fixup_a64_condbr 1131 1132 cbz w5, #0 1133 cbnz x3, #-4 1134 cbz w20, #1048572 1135 cbnz xzr, #-1048576 1136// CHECK: cbz w5, #0 // encoding: [0x05,0x00,0x00,0x34] 1137// CHECK: cbnz x3, #-4 // encoding: [0xe3,0xff,0xff,0xb5] 1138// CHECK: cbz w20, #1048572 // encoding: [0xf4,0xff,0x7f,0x34] 1139// CHECK: cbnz xzr, #-1048576 // encoding: [0x1f,0x00,0x80,0xb5] 1140 1141//------------------------------------------------------------------------------ 1142// Conditional branch (immediate) 1143//------------------------------------------------------------------------------ 1144 1145 b.eq lbl 1146 b.ne lbl 1147 b.cs lbl 1148 b.hs lbl 1149 b.lo lbl 1150 b.cc lbl 1151 b.mi lbl 1152 b.pl lbl 1153 b.vs lbl 1154 b.vc lbl 1155 b.hi lbl 1156 b.ls lbl 1157 b.ge lbl 1158 b.lt lbl 1159 b.gt lbl 1160 b.le lbl 1161 b.al lbl 1162// CHECK: b.eq lbl // encoding: [A,A,A,0x54'A'] 1163// CHECK: // fixup A - offset: 0, value: lbl, kind: fixup_a64_condbr 1164// CHECK: b.ne lbl // encoding: [0x01'A',A,A,0x54'A'] 1165// CHECK: // fixup A - offset: 0, value: lbl, kind: fixup_a64_condbr 1166// CHECK: b.hs lbl // encoding: [0x02'A',A,A,0x54'A'] 1167// CHECK: // fixup A - offset: 0, value: lbl, kind: fixup_a64_condbr 1168// CHECK: b.hs lbl // encoding: [0x02'A',A,A,0x54'A'] 1169// CHECK: // fixup A - offset: 0, value: lbl, kind: fixup_a64_condbr 1170// CHECK: b.lo lbl // encoding: [0x03'A',A,A,0x54'A'] 1171// CHECK: // fixup A - offset: 0, value: lbl, kind: fixup_a64_condbr 1172// CHECK: b.lo lbl // encoding: [0x03'A',A,A,0x54'A'] 1173// CHECK: // fixup A - offset: 0, value: lbl, kind: fixup_a64_condbr 1174// CHECK: b.mi lbl // encoding: [0x04'A',A,A,0x54'A'] 1175// CHECK: // fixup A - offset: 0, value: lbl, kind: fixup_a64_condbr 1176// CHECK: b.pl lbl // encoding: [0x05'A',A,A,0x54'A'] 1177// CHECK: // fixup A - offset: 0, value: lbl, kind: fixup_a64_condbr 1178// CHECK: b.vs lbl // encoding: [0x06'A',A,A,0x54'A'] 1179// CHECK: // fixup A - offset: 0, value: lbl, kind: fixup_a64_condbr 1180// CHECK: b.vc lbl // encoding: [0x07'A',A,A,0x54'A'] 1181// CHECK: // fixup A - offset: 0, value: lbl, kind: fixup_a64_condbr 1182// CHECK: b.hi lbl // encoding: [0x08'A',A,A,0x54'A'] 1183// CHECK: // fixup A - offset: 0, value: lbl, kind: fixup_a64_condbr 1184// CHECK: b.ls lbl // encoding: [0x09'A',A,A,0x54'A'] 1185// CHECK: // fixup A - offset: 0, value: lbl, kind: fixup_a64_condbr 1186// CHECK: b.ge lbl // encoding: [0x0a'A',A,A,0x54'A'] 1187// CHECK: // fixup A - offset: 0, value: lbl, kind: fixup_a64_condbr 1188// CHECK: b.lt lbl // encoding: [0x0b'A',A,A,0x54'A'] 1189// CHECK: // fixup A - offset: 0, value: lbl, kind: fixup_a64_condbr 1190// CHECK: b.gt lbl // encoding: [0x0c'A',A,A,0x54'A'] 1191// CHECK: // fixup A - offset: 0, value: lbl, kind: fixup_a64_condbr 1192// CHECK: b.le lbl // encoding: [0x0d'A',A,A,0x54'A'] 1193// CHECK: // fixup A - offset: 0, value: lbl, kind: fixup_a64_condbr 1194// CHECK: b.al lbl // encoding: [0x0e'A',A,A,0x54'A'] 1195// CHECK: // fixup A - offset: 0, value: lbl, kind: fixup_a64_condbr 1196 1197 b.eq #0 1198 b.lt #-4 1199 b.cc #1048572 1200// CHECK: b.eq #0 // encoding: [0x00,0x00,0x00,0x54] 1201// CHECK: b.lt #-4 // encoding: [0xeb,0xff,0xff,0x54] 1202// CHECK: b.lo #1048572 // encoding: [0xe3,0xff,0x7f,0x54] 1203 1204//------------------------------------------------------------------------------ 1205// Conditional compare (immediate) 1206//------------------------------------------------------------------------------ 1207 1208 ccmp w1, #31, #0, eq 1209 ccmp w3, #0, #15, hs 1210 ccmp wzr, #15, #13, cs 1211// CHECK: ccmp w1, #31, #0, eq // encoding: [0x20,0x08,0x5f,0x7a] 1212// CHECK: ccmp w3, #0, #15, hs // encoding: [0x6f,0x28,0x40,0x7a] 1213// CHECK: ccmp wzr, #15, #13, hs // encoding: [0xed,0x2b,0x4f,0x7a] 1214 1215 ccmp x9, #31, #0, le 1216 ccmp x3, #0, #15, gt 1217 ccmp xzr, #5, #7, ne 1218// CHECK: ccmp x9, #31, #0, le // encoding: [0x20,0xd9,0x5f,0xfa] 1219// CHECK: ccmp x3, #0, #15, gt // encoding: [0x6f,0xc8,0x40,0xfa] 1220// CHECK: ccmp xzr, #5, #7, ne // encoding: [0xe7,0x1b,0x45,0xfa] 1221 1222 ccmn w1, #31, #0, eq 1223 ccmn w3, #0, #15, hs 1224 ccmn wzr, #15, #13, cs 1225// CHECK: ccmn w1, #31, #0, eq // encoding: [0x20,0x08,0x5f,0x3a] 1226// CHECK: ccmn w3, #0, #15, hs // encoding: [0x6f,0x28,0x40,0x3a] 1227// CHECK: ccmn wzr, #15, #13, hs // encoding: [0xed,0x2b,0x4f,0x3a] 1228 1229 ccmn x9, #31, #0, le 1230 ccmn x3, #0, #15, gt 1231 ccmn xzr, #5, #7, ne 1232// CHECK: ccmn x9, #31, #0, le // encoding: [0x20,0xd9,0x5f,0xba] 1233// CHECK: ccmn x3, #0, #15, gt // encoding: [0x6f,0xc8,0x40,0xba] 1234// CHECK: ccmn xzr, #5, #7, ne // encoding: [0xe7,0x1b,0x45,0xba] 1235 1236//------------------------------------------------------------------------------ 1237// Conditional compare (register) 1238//------------------------------------------------------------------------------ 1239 1240 ccmp w1, wzr, #0, eq 1241 ccmp w3, w0, #15, hs 1242 ccmp wzr, w15, #13, cs 1243// CHECK: ccmp w1, wzr, #0, eq // encoding: [0x20,0x00,0x5f,0x7a] 1244// CHECK: ccmp w3, w0, #15, hs // encoding: [0x6f,0x20,0x40,0x7a] 1245// CHECK: ccmp wzr, w15, #13, hs // encoding: [0xed,0x23,0x4f,0x7a] 1246 1247 ccmp x9, xzr, #0, le 1248 ccmp x3, x0, #15, gt 1249 ccmp xzr, x5, #7, ne 1250// CHECK: ccmp x9, xzr, #0, le // encoding: [0x20,0xd1,0x5f,0xfa] 1251// CHECK: ccmp x3, x0, #15, gt // encoding: [0x6f,0xc0,0x40,0xfa] 1252// CHECK: ccmp xzr, x5, #7, ne // encoding: [0xe7,0x13,0x45,0xfa] 1253 1254 ccmn w1, wzr, #0, eq 1255 ccmn w3, w0, #15, hs 1256 ccmn wzr, w15, #13, cs 1257// CHECK: ccmn w1, wzr, #0, eq // encoding: [0x20,0x00,0x5f,0x3a] 1258// CHECK: ccmn w3, w0, #15, hs // encoding: [0x6f,0x20,0x40,0x3a] 1259// CHECK: ccmn wzr, w15, #13, hs // encoding: [0xed,0x23,0x4f,0x3a] 1260 1261 ccmn x9, xzr, #0, le 1262 ccmn x3, x0, #15, gt 1263 ccmn xzr, x5, #7, ne 1264// CHECK: ccmn x9, xzr, #0, le // encoding: [0x20,0xd1,0x5f,0xba] 1265// CHECK: ccmn x3, x0, #15, gt // encoding: [0x6f,0xc0,0x40,0xba] 1266// CHECK: ccmn xzr, x5, #7, ne // encoding: [0xe7,0x13,0x45,0xba] 1267 1268//------------------------------------------------------------------------------ 1269// Conditional select 1270//------------------------------------------------------------------------------ 1271 csel w1, w0, w19, ne 1272 csel wzr, w5, w9, eq 1273 csel w9, wzr, w30, gt 1274 csel w1, w28, wzr, mi 1275// CHECK: csel w1, w0, w19, ne // encoding: [0x01,0x10,0x93,0x1a] 1276// CHECK: csel wzr, w5, w9, eq // encoding: [0xbf,0x00,0x89,0x1a] 1277// CHECK: csel w9, wzr, w30, gt // encoding: [0xe9,0xc3,0x9e,0x1a] 1278// CHECK: csel w1, w28, wzr, mi // encoding: [0x81,0x43,0x9f,0x1a] 1279 1280 csel x19, x23, x29, lt 1281 csel xzr, x3, x4, ge 1282 csel x5, xzr, x6, cs 1283 csel x7, x8, xzr, cc 1284// CHECK: csel x19, x23, x29, lt // encoding: [0xf3,0xb2,0x9d,0x9a] 1285// CHECK: csel xzr, x3, x4, ge // encoding: [0x7f,0xa0,0x84,0x9a] 1286// CHECK: csel x5, xzr, x6, hs // encoding: [0xe5,0x23,0x86,0x9a] 1287// CHECK: csel x7, x8, xzr, lo // encoding: [0x07,0x31,0x9f,0x9a] 1288 1289 csinc w1, w0, w19, ne 1290 csinc wzr, w5, w9, eq 1291 csinc w9, wzr, w30, gt 1292 csinc w1, w28, wzr, mi 1293// CHECK: csinc w1, w0, w19, ne // encoding: [0x01,0x14,0x93,0x1a] 1294// CHECK: csinc wzr, w5, w9, eq // encoding: [0xbf,0x04,0x89,0x1a] 1295// CHECK: csinc w9, wzr, w30, gt // encoding: [0xe9,0xc7,0x9e,0x1a] 1296// CHECK: csinc w1, w28, wzr, mi // encoding: [0x81,0x47,0x9f,0x1a] 1297 1298 csinc x19, x23, x29, lt 1299 csinc xzr, x3, x4, ge 1300 csinc x5, xzr, x6, cs 1301 csinc x7, x8, xzr, cc 1302// CHECK: csinc x19, x23, x29, lt // encoding: [0xf3,0xb6,0x9d,0x9a] 1303// CHECK: csinc xzr, x3, x4, ge // encoding: [0x7f,0xa4,0x84,0x9a] 1304// CHECK: csinc x5, xzr, x6, hs // encoding: [0xe5,0x27,0x86,0x9a] 1305// CHECK: csinc x7, x8, xzr, lo // encoding: [0x07,0x35,0x9f,0x9a] 1306 1307 csinv w1, w0, w19, ne 1308 csinv wzr, w5, w9, eq 1309 csinv w9, wzr, w30, gt 1310 csinv w1, w28, wzr, mi 1311// CHECK: csinv w1, w0, w19, ne // encoding: [0x01,0x10,0x93,0x5a] 1312// CHECK: csinv wzr, w5, w9, eq // encoding: [0xbf,0x00,0x89,0x5a] 1313// CHECK: csinv w9, wzr, w30, gt // encoding: [0xe9,0xc3,0x9e,0x5a] 1314// CHECK: csinv w1, w28, wzr, mi // encoding: [0x81,0x43,0x9f,0x5a] 1315 1316 csinv x19, x23, x29, lt 1317 csinv xzr, x3, x4, ge 1318 csinv x5, xzr, x6, cs 1319 csinv x7, x8, xzr, cc 1320// CHECK: csinv x19, x23, x29, lt // encoding: [0xf3,0xb2,0x9d,0xda] 1321// CHECK: csinv xzr, x3, x4, ge // encoding: [0x7f,0xa0,0x84,0xda] 1322// CHECK: csinv x5, xzr, x6, hs // encoding: [0xe5,0x23,0x86,0xda] 1323// CHECK: csinv x7, x8, xzr, lo // encoding: [0x07,0x31,0x9f,0xda] 1324 1325 csneg w1, w0, w19, ne 1326 csneg wzr, w5, w9, eq 1327 csneg w9, wzr, w30, gt 1328 csneg w1, w28, wzr, mi 1329// CHECK: csneg w1, w0, w19, ne // encoding: [0x01,0x14,0x93,0x5a] 1330// CHECK: csneg wzr, w5, w9, eq // encoding: [0xbf,0x04,0x89,0x5a] 1331// CHECK: csneg w9, wzr, w30, gt // encoding: [0xe9,0xc7,0x9e,0x5a] 1332// CHECK: csneg w1, w28, wzr, mi // encoding: [0x81,0x47,0x9f,0x5a] 1333 1334 csneg x19, x23, x29, lt 1335 csneg xzr, x3, x4, ge 1336 csneg x5, xzr, x6, cs 1337 csneg x7, x8, xzr, cc 1338// CHECK: csneg x19, x23, x29, lt // encoding: [0xf3,0xb6,0x9d,0xda] 1339// CHECK: csneg xzr, x3, x4, ge // encoding: [0x7f,0xa4,0x84,0xda] 1340// CHECK: csneg x5, xzr, x6, hs // encoding: [0xe5,0x27,0x86,0xda] 1341// CHECK: csneg x7, x8, xzr, lo // encoding: [0x07,0x35,0x9f,0xda] 1342 1343 cset w3, eq 1344 cset x9, pl 1345// CHECK: csinc w3, wzr, wzr, ne // encoding: [0xe3,0x17,0x9f,0x1a] 1346// CHECK: csinc x9, xzr, xzr, mi // encoding: [0xe9,0x47,0x9f,0x9a] 1347 1348 csetm w20, ne 1349 csetm x30, ge 1350// CHECK: csinv w20, wzr, wzr, eq // encoding: [0xf4,0x03,0x9f,0x5a] 1351// CHECK: csinv x30, xzr, xzr, lt // encoding: [0xfe,0xb3,0x9f,0xda] 1352 1353 cinc w3, w5, gt 1354 cinc wzr, w4, le 1355 cinc w9, wzr, lt 1356// CHECK: csinc w3, w5, w5, le // encoding: [0xa3,0xd4,0x85,0x1a] 1357// CHECK: csinc wzr, w4, w4, gt // encoding: [0x9f,0xc4,0x84,0x1a] 1358// CHECK: csinc w9, wzr, wzr, ge // encoding: [0xe9,0xa7,0x9f,0x1a] 1359 1360 cinc x3, x5, gt 1361 cinc xzr, x4, le 1362 cinc x9, xzr, lt 1363// CHECK: csinc x3, x5, x5, le // encoding: [0xa3,0xd4,0x85,0x9a] 1364// CHECK: csinc xzr, x4, x4, gt // encoding: [0x9f,0xc4,0x84,0x9a] 1365// CHECK: csinc x9, xzr, xzr, ge // encoding: [0xe9,0xa7,0x9f,0x9a] 1366 1367 cinv w3, w5, gt 1368 cinv wzr, w4, le 1369 cinv w9, wzr, lt 1370// CHECK: csinv w3, w5, w5, le // encoding: [0xa3,0xd0,0x85,0x5a] 1371// CHECK: csinv wzr, w4, w4, gt // encoding: [0x9f,0xc0,0x84,0x5a] 1372// CHECK: csinv w9, wzr, wzr, ge // encoding: [0xe9,0xa3,0x9f,0x5a] 1373 1374 cinv x3, x5, gt 1375 cinv xzr, x4, le 1376 cinv x9, xzr, lt 1377// CHECK: csinv x3, x5, x5, le // encoding: [0xa3,0xd0,0x85,0xda] 1378// CHECK: csinv xzr, x4, x4, gt // encoding: [0x9f,0xc0,0x84,0xda] 1379// CHECK: csinv x9, xzr, xzr, ge // encoding: [0xe9,0xa3,0x9f,0xda] 1380 1381 cneg w3, w5, gt 1382 cneg wzr, w4, le 1383 cneg w9, wzr, lt 1384// CHECK: csneg w3, w5, w5, le // encoding: [0xa3,0xd4,0x85,0x5a] 1385// CHECK: csneg wzr, w4, w4, gt // encoding: [0x9f,0xc4,0x84,0x5a] 1386// CHECK: csneg w9, wzr, wzr, ge // encoding: [0xe9,0xa7,0x9f,0x5a] 1387 1388 cneg x3, x5, gt 1389 cneg xzr, x4, le 1390 cneg x9, xzr, lt 1391// CHECK: csneg x3, x5, x5, le // encoding: [0xa3,0xd4,0x85,0xda] 1392// CHECK: csneg xzr, x4, x4, gt // encoding: [0x9f,0xc4,0x84,0xda] 1393// CHECK: csneg x9, xzr, xzr, ge // encoding: [0xe9,0xa7,0x9f,0xda] 1394 1395//------------------------------------------------------------------------------ 1396// Data-processing (1 source) 1397//------------------------------------------------------------------------------ 1398 1399 rbit w0, w7 1400 rbit x18, x3 1401 rev16 w17, w1 1402 rev16 x5, x2 1403 rev w18, w0 1404 rev32 x20, x1 1405 rev32 x20, xzr 1406// CHECK: rbit w0, w7 // encoding: [0xe0,0x00,0xc0,0x5a] 1407// CHECK: rbit x18, x3 // encoding: [0x72,0x00,0xc0,0xda] 1408// CHECK: rev16 w17, w1 // encoding: [0x31,0x04,0xc0,0x5a] 1409// CHECK: rev16 x5, x2 // encoding: [0x45,0x04,0xc0,0xda] 1410// CHECK: rev w18, w0 // encoding: [0x12,0x08,0xc0,0x5a] 1411// CHECK: rev32 x20, x1 // encoding: [0x34,0x08,0xc0,0xda] 1412// CHECK: rev32 x20, xzr // encoding: [0xf4,0x0b,0xc0,0xda] 1413 1414 rev x22, x2 1415 rev x18, xzr 1416 rev w7, wzr 1417 clz w24, w3 1418 clz x26, x4 1419 cls w3, w5 1420 cls x20, x5 1421// CHECK: rev x22, x2 // encoding: [0x56,0x0c,0xc0,0xda] 1422// CHECK: rev x18, xzr // encoding: [0xf2,0x0f,0xc0,0xda] 1423// CHECK: rev w7, wzr // encoding: [0xe7,0x0b,0xc0,0x5a] 1424// CHECK: clz w24, w3 // encoding: [0x78,0x10,0xc0,0x5a] 1425// CHECK: clz x26, x4 // encoding: [0x9a,0x10,0xc0,0xda] 1426// CHECK: cls w3, w5 // encoding: [0xa3,0x14,0xc0,0x5a] 1427// CHECK: cls x20, x5 // encoding: [0xb4,0x14,0xc0,0xda] 1428 1429 clz w24, wzr 1430 rev x22, xzr 1431// CHECK: clz w24, wzr // encoding: [0xf8,0x13,0xc0,0x5a] 1432// CHECK: rev x22, xzr // encoding: [0xf6,0x0f,0xc0,0xda] 1433 1434//------------------------------------------------------------------------------ 1435// Data-processing (2 source) 1436//------------------------------------------------------------------------------ 1437 1438 crc32b w5, w7, w20 1439 crc32h w28, wzr, w30 1440 crc32w w0, w1, w2 1441 crc32x w7, w9, x20 1442 crc32cb w9, w5, w4 1443 crc32ch w13, w17, w25 1444 crc32cw wzr, w3, w5 1445 crc32cx w18, w16, xzr 1446// CHECK: crc32b w5, w7, w20 // encoding: [0xe5,0x40,0xd4,0x1a] 1447// CHECK: crc32h w28, wzr, w30 // encoding: [0xfc,0x47,0xde,0x1a] 1448// CHECK: crc32w w0, w1, w2 // encoding: [0x20,0x48,0xc2,0x1a] 1449// CHECK: crc32x w7, w9, x20 // encoding: [0x27,0x4d,0xd4,0x9a] 1450// CHECK: crc32cb w9, w5, w4 // encoding: [0xa9,0x50,0xc4,0x1a] 1451// CHECK: crc32ch w13, w17, w25 // encoding: [0x2d,0x56,0xd9,0x1a] 1452// CHECK: crc32cw wzr, w3, w5 // encoding: [0x7f,0x58,0xc5,0x1a] 1453// CHECK: crc32cx w18, w16, xzr // encoding: [0x12,0x5e,0xdf,0x9a] 1454 1455 udiv w0, w7, w10 1456 udiv x9, x22, x4 1457 sdiv w12, w21, w0 1458 sdiv x13, x2, x1 1459 lslv w11, w12, w13 1460 lslv x14, x15, x16 1461 lsrv w17, w18, w19 1462 lsrv x20, x21, x22 1463 asrv w23, w24, w25 1464 asrv x26, x27, x28 1465 rorv w0, w1, w2 1466 rorv x3, x4, x5 1467 1468 1469// CHECK: udiv w0, w7, w10 // encoding: [0xe0,0x08,0xca,0x1a] 1470// CHECK: udiv x9, x22, x4 // encoding: [0xc9,0x0a,0xc4,0x9a] 1471// CHECK: sdiv w12, w21, w0 // encoding: [0xac,0x0e,0xc0,0x1a] 1472// CHECK: sdiv x13, x2, x1 // encoding: [0x4d,0x0c,0xc1,0x9a] 1473// CHECK: lsl w11, w12, w13 // encoding: [0x8b,0x21,0xcd,0x1a] 1474// CHECK: lsl x14, x15, x16 // encoding: [0xee,0x21,0xd0,0x9a] 1475// CHECK: lsr w17, w18, w19 // encoding: [0x51,0x26,0xd3,0x1a] 1476// CHECK: lsr x20, x21, x22 // encoding: [0xb4,0x26,0xd6,0x9a] 1477// CHECK: asr w23, w24, w25 // encoding: [0x17,0x2b,0xd9,0x1a] 1478// CHECK: asr x26, x27, x28 // encoding: [0x7a,0x2b,0xdc,0x9a] 1479// CHECK: ror w0, w1, w2 // encoding: [0x20,0x2c,0xc2,0x1a] 1480// CHECK: ror x3, x4, x5 // encoding: [0x83,0x2c,0xc5,0x9a] 1481 1482 1483 lsl w6, w7, w8 1484 lsl x9, x10, x11 1485 lsr w12, w13, w14 1486 lsr x15, x16, x17 1487 asr w18, w19, w20 1488 asr x21, x22, x23 1489 ror w24, w25, w26 1490 ror x27, x28, x29 1491// CHECK: lsl w6, w7, w8 // encoding: [0xe6,0x20,0xc8,0x1a] 1492// CHECK: lsl x9, x10, x11 // encoding: [0x49,0x21,0xcb,0x9a] 1493// CHECK: lsr w12, w13, w14 // encoding: [0xac,0x25,0xce,0x1a] 1494// CHECK: lsr x15, x16, x17 // encoding: [0x0f,0x26,0xd1,0x9a] 1495// CHECK: asr w18, w19, w20 // encoding: [0x72,0x2a,0xd4,0x1a] 1496// CHECK: asr x21, x22, x23 // encoding: [0xd5,0x2a,0xd7,0x9a] 1497// CHECK: ror w24, w25, w26 // encoding: [0x38,0x2f,0xda,0x1a] 1498// CHECK: ror x27, x28, x29 // encoding: [0x9b,0x2f,0xdd,0x9a] 1499 1500 madd w1, w3, w7, w4 1501 madd wzr, w0, w9, w11 1502 madd w13, wzr, w4, w4 1503 madd w19, w30, wzr, w29 1504 madd w4, w5, w6, wzr 1505// CHECK: madd w1, w3, w7, w4 // encoding: [0x61,0x10,0x07,0x1b] 1506// CHECK: madd wzr, w0, w9, w11 // encoding: [0x1f,0x2c,0x09,0x1b] 1507// CHECK: madd w13, wzr, w4, w4 // encoding: [0xed,0x13,0x04,0x1b] 1508// CHECK: madd w19, w30, wzr, w29 // encoding: [0xd3,0x77,0x1f,0x1b] 1509// CHECK: mul w4, w5, w6 // encoding: [0xa4,0x7c,0x06,0x1b] 1510 1511 madd x1, x3, x7, x4 1512 madd xzr, x0, x9, x11 1513 madd x13, xzr, x4, x4 1514 madd x19, x30, xzr, x29 1515 madd x4, x5, x6, xzr 1516// CHECK: madd x1, x3, x7, x4 // encoding: [0x61,0x10,0x07,0x9b] 1517// CHECK: madd xzr, x0, x9, x11 // encoding: [0x1f,0x2c,0x09,0x9b] 1518// CHECK: madd x13, xzr, x4, x4 // encoding: [0xed,0x13,0x04,0x9b] 1519// CHECK: madd x19, x30, xzr, x29 // encoding: [0xd3,0x77,0x1f,0x9b] 1520// CHECK: mul x4, x5, x6 // encoding: [0xa4,0x7c,0x06,0x9b] 1521 1522 msub w1, w3, w7, w4 1523 msub wzr, w0, w9, w11 1524 msub w13, wzr, w4, w4 1525 msub w19, w30, wzr, w29 1526 msub w4, w5, w6, wzr 1527// CHECK: msub w1, w3, w7, w4 // encoding: [0x61,0x90,0x07,0x1b] 1528// CHECK: msub wzr, w0, w9, w11 // encoding: [0x1f,0xac,0x09,0x1b] 1529// CHECK: msub w13, wzr, w4, w4 // encoding: [0xed,0x93,0x04,0x1b] 1530// CHECK: msub w19, w30, wzr, w29 // encoding: [0xd3,0xf7,0x1f,0x1b] 1531// CHECK: mneg w4, w5, w6 // encoding: [0xa4,0xfc,0x06,0x1b] 1532 1533 msub x1, x3, x7, x4 1534 msub xzr, x0, x9, x11 1535 msub x13, xzr, x4, x4 1536 msub x19, x30, xzr, x29 1537 msub x4, x5, x6, xzr 1538// CHECK: msub x1, x3, x7, x4 // encoding: [0x61,0x90,0x07,0x9b] 1539// CHECK: msub xzr, x0, x9, x11 // encoding: [0x1f,0xac,0x09,0x9b] 1540// CHECK: msub x13, xzr, x4, x4 // encoding: [0xed,0x93,0x04,0x9b] 1541// CHECK: msub x19, x30, xzr, x29 // encoding: [0xd3,0xf7,0x1f,0x9b] 1542// CHECK: mneg x4, x5, x6 // encoding: [0xa4,0xfc,0x06,0x9b] 1543 1544 smaddl x3, w5, w2, x9 1545 smaddl xzr, w10, w11, x12 1546 smaddl x13, wzr, w14, x15 1547 smaddl x16, w17, wzr, x18 1548 smaddl x19, w20, w21, xzr 1549// CHECK: smaddl x3, w5, w2, x9 // encoding: [0xa3,0x24,0x22,0x9b] 1550// CHECK: smaddl xzr, w10, w11, x12 // encoding: [0x5f,0x31,0x2b,0x9b] 1551// CHECK: smaddl x13, wzr, w14, x15 // encoding: [0xed,0x3f,0x2e,0x9b] 1552// CHECK: smaddl x16, w17, wzr, x18 // encoding: [0x30,0x4a,0x3f,0x9b] 1553// CHECK: smull x19, w20, w21 // encoding: [0x93,0x7e,0x35,0x9b] 1554 1555 smsubl x3, w5, w2, x9 1556 smsubl xzr, w10, w11, x12 1557 smsubl x13, wzr, w14, x15 1558 smsubl x16, w17, wzr, x18 1559 smsubl x19, w20, w21, xzr 1560// CHECK: smsubl x3, w5, w2, x9 // encoding: [0xa3,0xa4,0x22,0x9b] 1561// CHECK: smsubl xzr, w10, w11, x12 // encoding: [0x5f,0xb1,0x2b,0x9b] 1562// CHECK: smsubl x13, wzr, w14, x15 // encoding: [0xed,0xbf,0x2e,0x9b] 1563// CHECK: smsubl x16, w17, wzr, x18 // encoding: [0x30,0xca,0x3f,0x9b] 1564// CHECK: smnegl x19, w20, w21 // encoding: [0x93,0xfe,0x35,0x9b] 1565 1566 umaddl x3, w5, w2, x9 1567 umaddl xzr, w10, w11, x12 1568 umaddl x13, wzr, w14, x15 1569 umaddl x16, w17, wzr, x18 1570 umaddl x19, w20, w21, xzr 1571// CHECK: umaddl x3, w5, w2, x9 // encoding: [0xa3,0x24,0xa2,0x9b] 1572// CHECK: umaddl xzr, w10, w11, x12 // encoding: [0x5f,0x31,0xab,0x9b] 1573// CHECK: umaddl x13, wzr, w14, x15 // encoding: [0xed,0x3f,0xae,0x9b] 1574// CHECK: umaddl x16, w17, wzr, x18 // encoding: [0x30,0x4a,0xbf,0x9b] 1575// CHECK: umull x19, w20, w21 // encoding: [0x93,0x7e,0xb5,0x9b] 1576 1577 1578 1579 umsubl x3, w5, w2, x9 1580 umsubl xzr, w10, w11, x12 1581 umsubl x13, wzr, w14, x15 1582 umsubl x16, w17, wzr, x18 1583 umsubl x19, w20, w21, xzr 1584// CHECK: umsubl x3, w5, w2, x9 // encoding: [0xa3,0xa4,0xa2,0x9b] 1585// CHECK: umsubl xzr, w10, w11, x12 // encoding: [0x5f,0xb1,0xab,0x9b] 1586// CHECK: umsubl x13, wzr, w14, x15 // encoding: [0xed,0xbf,0xae,0x9b] 1587// CHECK: umsubl x16, w17, wzr, x18 // encoding: [0x30,0xca,0xbf,0x9b] 1588// CHECK: umnegl x19, w20, w21 // encoding: [0x93,0xfe,0xb5,0x9b] 1589 1590 smulh x30, x29, x28 1591 smulh xzr, x27, x26 1592 smulh x25, xzr, x24 1593 smulh x23, x22, xzr 1594// CHECK: smulh x30, x29, x28 // encoding: [0xbe,0x7f,0x5c,0x9b] 1595// CHECK: smulh xzr, x27, x26 // encoding: [0x7f,0x7f,0x5a,0x9b] 1596// CHECK: smulh x25, xzr, x24 // encoding: [0xf9,0x7f,0x58,0x9b] 1597// CHECK: smulh x23, x22, xzr // encoding: [0xd7,0x7e,0x5f,0x9b] 1598 1599 umulh x30, x29, x28 1600 umulh xzr, x27, x26 1601 umulh x25, xzr, x24 1602 umulh x23, x22, xzr 1603// CHECK: umulh x30, x29, x28 // encoding: [0xbe,0x7f,0xdc,0x9b] 1604// CHECK: umulh xzr, x27, x26 // encoding: [0x7f,0x7f,0xda,0x9b] 1605// CHECK: umulh x25, xzr, x24 // encoding: [0xf9,0x7f,0xd8,0x9b] 1606// CHECK: umulh x23, x22, xzr // encoding: [0xd7,0x7e,0xdf,0x9b] 1607 1608 mul w3, w4, w5 1609 mul wzr, w6, w7 1610 mul w8, wzr, w9 1611 mul w10, w11, wzr 1612 1613 mul x12, x13, x14 1614 mul xzr, x15, x16 1615 mul x17, xzr, x18 1616 mul x19, x20, xzr 1617 1618 mneg w21, w22, w23 1619 mneg wzr, w24, w25 1620 mneg w26, wzr, w27 1621 mneg w28, w29, wzr 1622 1623 smull x11, w13, w17 1624 umull x11, w13, w17 1625 smnegl x11, w13, w17 1626 umnegl x11, w13, w17 1627// CHECK: mul w3, w4, w5 // encoding: [0x83,0x7c,0x05,0x1b] 1628// CHECK: mul wzr, w6, w7 // encoding: [0xdf,0x7c,0x07,0x1b] 1629// CHECK: mul w8, wzr, w9 // encoding: [0xe8,0x7f,0x09,0x1b] 1630// CHECK: mul w10, w11, wzr // encoding: [0x6a,0x7d,0x1f,0x1b] 1631// CHECK: mul x12, x13, x14 // encoding: [0xac,0x7d,0x0e,0x9b] 1632// CHECK: mul xzr, x15, x16 // encoding: [0xff,0x7d,0x10,0x9b] 1633// CHECK: mul x17, xzr, x18 // encoding: [0xf1,0x7f,0x12,0x9b] 1634// CHECK: mul x19, x20, xzr // encoding: [0x93,0x7e,0x1f,0x9b] 1635// CHECK: mneg w21, w22, w23 // encoding: [0xd5,0xfe,0x17,0x1b] 1636// CHECK: mneg wzr, w24, w25 // encoding: [0x1f,0xff,0x19,0x1b] 1637// CHECK: mneg w26, wzr, w27 // encoding: [0xfa,0xff,0x1b,0x1b] 1638// CHECK: mneg w28, w29, wzr // encoding: [0xbc,0xff,0x1f,0x1b] 1639// CHECK: smull x11, w13, w17 // encoding: [0xab,0x7d,0x31,0x9b] 1640// CHECK: umull x11, w13, w17 // encoding: [0xab,0x7d,0xb1,0x9b] 1641// CHECK: smnegl x11, w13, w17 // encoding: [0xab,0xfd,0x31,0x9b] 1642// CHECK: umnegl x11, w13, w17 // encoding: [0xab,0xfd,0xb1,0x9b] 1643 1644//------------------------------------------------------------------------------ 1645// Exception generation 1646//------------------------------------------------------------------------------ 1647 svc #0 1648 svc #65535 1649// CHECK: svc #0 // encoding: [0x01,0x00,0x00,0xd4] 1650// CHECK: svc #65535 // encoding: [0xe1,0xff,0x1f,0xd4] 1651 1652 hvc #1 1653 smc #12000 1654 brk #12 1655 hlt #123 1656// CHECK: hvc #1 // encoding: [0x22,0x00,0x00,0xd4] 1657// CHECK: smc #12000 // encoding: [0x03,0xdc,0x05,0xd4] 1658// CHECK: brk #12 // encoding: [0x80,0x01,0x20,0xd4] 1659// CHECK: hlt #123 // encoding: [0x60,0x0f,0x40,0xd4] 1660 1661 dcps1 #42 1662 dcps2 #9 1663 dcps3 #1000 1664// CHECK: dcps1 #42 // encoding: [0x41,0x05,0xa0,0xd4] 1665// CHECK: dcps2 #9 // encoding: [0x22,0x01,0xa0,0xd4] 1666// CHECK: dcps3 #1000 // encoding: [0x03,0x7d,0xa0,0xd4] 1667 1668 dcps1 1669 dcps2 1670 dcps3 1671// CHECK: dcps1 // encoding: [0x01,0x00,0xa0,0xd4] 1672// CHECK: dcps2 // encoding: [0x02,0x00,0xa0,0xd4] 1673// CHECK: dcps3 // encoding: [0x03,0x00,0xa0,0xd4] 1674 1675//------------------------------------------------------------------------------ 1676// Extract (immediate) 1677//------------------------------------------------------------------------------ 1678 1679 extr w3, w5, w7, #0 1680 extr w11, w13, w17, #31 1681// CHECK: extr w3, w5, w7, #0 // encoding: [0xa3,0x00,0x87,0x13] 1682// CHECK: extr w11, w13, w17, #31 // encoding: [0xab,0x7d,0x91,0x13] 1683 1684 extr x3, x5, x7, #15 1685 extr x11, x13, x17, #63 1686// CHECK: extr x3, x5, x7, #15 // encoding: [0xa3,0x3c,0xc7,0x93] 1687// CHECK: extr x11, x13, x17, #63 // encoding: [0xab,0xfd,0xd1,0x93] 1688 1689 ror x19, x23, #24 1690 ror x29, xzr, #63 1691// CHECK: extr x19, x23, x23, #24 // encoding: [0xf3,0x62,0xd7,0x93] 1692// CHECK: extr x29, xzr, xzr, #63 // encoding: [0xfd,0xff,0xdf,0x93] 1693 1694 ror w9, w13, #31 1695// CHECK: extr w9, w13, w13, #31 // encoding: [0xa9,0x7d,0x8d,0x13] 1696 1697//------------------------------------------------------------------------------ 1698// Floating-point compare 1699//------------------------------------------------------------------------------ 1700 1701 fcmp s3, s5 1702 fcmp s31, #0.0 1703// CHECK: fcmp s3, s5 // encoding: [0x60,0x20,0x25,0x1e] 1704// CHECK: fcmp s31, #0.0 // encoding: [0xe8,0x23,0x20,0x1e] 1705 1706 fcmpe s29, s30 1707 fcmpe s15, #0.0 1708// CHECK: fcmpe s29, s30 // encoding: [0xb0,0x23,0x3e,0x1e] 1709// CHECK: fcmpe s15, #0.0 // encoding: [0xf8,0x21,0x20,0x1e] 1710 1711 fcmp d4, d12 1712 fcmp d23, #0.0 1713// CHECK: fcmp d4, d12 // encoding: [0x80,0x20,0x6c,0x1e] 1714// CHECK: fcmp d23, #0.0 // encoding: [0xe8,0x22,0x60,0x1e] 1715 1716 fcmpe d26, d22 1717 fcmpe d29, #0.0 1718// CHECK: fcmpe d26, d22 // encoding: [0x50,0x23,0x76,0x1e] 1719// CHECK: fcmpe d29, #0.0 // encoding: [0xb8,0x23,0x60,0x1e] 1720 1721//------------------------------------------------------------------------------ 1722// Floating-point conditional compare 1723//------------------------------------------------------------------------------ 1724 1725 fccmp s1, s31, #0, eq 1726 fccmp s3, s0, #15, hs 1727 fccmp s31, s15, #13, cs 1728// CHECK: fccmp s1, s31, #0, eq // encoding: [0x20,0x04,0x3f,0x1e] 1729// CHECK: fccmp s3, s0, #15, hs // encoding: [0x6f,0x24,0x20,0x1e] 1730// CHECK: fccmp s31, s15, #13, hs // encoding: [0xed,0x27,0x2f,0x1e] 1731 1732 fccmp d9, d31, #0, le 1733 fccmp d3, d0, #15, gt 1734 fccmp d31, d5, #7, ne 1735// CHECK: fccmp d9, d31, #0, le // encoding: [0x20,0xd5,0x7f,0x1e] 1736// CHECK: fccmp d3, d0, #15, gt // encoding: [0x6f,0xc4,0x60,0x1e] 1737// CHECK: fccmp d31, d5, #7, ne // encoding: [0xe7,0x17,0x65,0x1e] 1738 1739 fccmpe s1, s31, #0, eq 1740 fccmpe s3, s0, #15, hs 1741 fccmpe s31, s15, #13, cs 1742// CHECK: fccmpe s1, s31, #0, eq // encoding: [0x30,0x04,0x3f,0x1e] 1743// CHECK: fccmpe s3, s0, #15, hs // encoding: [0x7f,0x24,0x20,0x1e] 1744// CHECK: fccmpe s31, s15, #13, hs // encoding: [0xfd,0x27,0x2f,0x1e] 1745 1746 fccmpe d9, d31, #0, le 1747 fccmpe d3, d0, #15, gt 1748 fccmpe d31, d5, #7, ne 1749// CHECK: fccmpe d9, d31, #0, le // encoding: [0x30,0xd5,0x7f,0x1e] 1750// CHECK: fccmpe d3, d0, #15, gt // encoding: [0x7f,0xc4,0x60,0x1e] 1751// CHECK: fccmpe d31, d5, #7, ne // encoding: [0xf7,0x17,0x65,0x1e] 1752 1753//------------------------------------------------------------------------------ 1754// Floating-point conditional compare 1755//------------------------------------------------------------------------------ 1756 1757 fcsel s3, s20, s9, pl 1758 fcsel d9, d10, d11, mi 1759// CHECK: fcsel s3, s20, s9, pl // encoding: [0x83,0x5e,0x29,0x1e] 1760// CHECK: fcsel d9, d10, d11, mi // encoding: [0x49,0x4d,0x6b,0x1e] 1761 1762//------------------------------------------------------------------------------ 1763// Floating-point data-processing (1 source) 1764//------------------------------------------------------------------------------ 1765 1766 fmov s0, s1 1767 fabs s2, s3 1768 fneg s4, s5 1769 fsqrt s6, s7 1770 fcvt d8, s9 1771 fcvt h10, s11 1772 frintn s12, s13 1773 frintp s14, s15 1774 frintm s16, s17 1775 frintz s18, s19 1776 frinta s20, s21 1777 frintx s22, s23 1778 frinti s24, s25 1779// CHECK: fmov s0, s1 // encoding: [0x20,0x40,0x20,0x1e] 1780// CHECK: fabs s2, s3 // encoding: [0x62,0xc0,0x20,0x1e] 1781// CHECK: fneg s4, s5 // encoding: [0xa4,0x40,0x21,0x1e] 1782// CHECK: fsqrt s6, s7 // encoding: [0xe6,0xc0,0x21,0x1e] 1783// CHECK: fcvt d8, s9 // encoding: [0x28,0xc1,0x22,0x1e] 1784// CHECK: fcvt h10, s11 // encoding: [0x6a,0xc1,0x23,0x1e] 1785// CHECK: frintn s12, s13 // encoding: [0xac,0x41,0x24,0x1e] 1786// CHECK: frintp s14, s15 // encoding: [0xee,0xc1,0x24,0x1e] 1787// CHECK: frintm s16, s17 // encoding: [0x30,0x42,0x25,0x1e] 1788// CHECK: frintz s18, s19 // encoding: [0x72,0xc2,0x25,0x1e] 1789// CHECK: frinta s20, s21 // encoding: [0xb4,0x42,0x26,0x1e] 1790// CHECK: frintx s22, s23 // encoding: [0xf6,0x42,0x27,0x1e] 1791// CHECK: frinti s24, s25 // encoding: [0x38,0xc3,0x27,0x1e] 1792 1793 fmov d0, d1 1794 fabs d2, d3 1795 fneg d4, d5 1796 fsqrt d6, d7 1797 fcvt s8, d9 1798 fcvt h10, d11 1799 frintn d12, d13 1800 frintp d14, d15 1801 frintm d16, d17 1802 frintz d18, d19 1803 frinta d20, d21 1804 frintx d22, d23 1805 frinti d24, d25 1806// CHECK: fmov d0, d1 // encoding: [0x20,0x40,0x60,0x1e] 1807// CHECK: fabs d2, d3 // encoding: [0x62,0xc0,0x60,0x1e] 1808// CHECK: fneg d4, d5 // encoding: [0xa4,0x40,0x61,0x1e] 1809// CHECK: fsqrt d6, d7 // encoding: [0xe6,0xc0,0x61,0x1e] 1810// CHECK: fcvt s8, d9 // encoding: [0x28,0x41,0x62,0x1e] 1811// CHECK: fcvt h10, d11 // encoding: [0x6a,0xc1,0x63,0x1e] 1812// CHECK: frintn d12, d13 // encoding: [0xac,0x41,0x64,0x1e] 1813// CHECK: frintp d14, d15 // encoding: [0xee,0xc1,0x64,0x1e] 1814// CHECK: frintm d16, d17 // encoding: [0x30,0x42,0x65,0x1e] 1815// CHECK: frintz d18, d19 // encoding: [0x72,0xc2,0x65,0x1e] 1816// CHECK: frinta d20, d21 // encoding: [0xb4,0x42,0x66,0x1e] 1817// CHECK: frintx d22, d23 // encoding: [0xf6,0x42,0x67,0x1e] 1818// CHECK: frinti d24, d25 // encoding: [0x38,0xc3,0x67,0x1e] 1819 1820 fcvt s26, h27 1821 fcvt d28, h29 1822// CHECK: fcvt s26, h27 // encoding: [0x7a,0x43,0xe2,0x1e] 1823// CHECK: fcvt d28, h29 // encoding: [0xbc,0xc3,0xe2,0x1e] 1824 1825//------------------------------------------------------------------------------ 1826// Floating-point data-processing (2 sources) 1827//------------------------------------------------------------------------------ 1828 1829 fmul s20, s19, s17 1830 fdiv s1, s2, s3 1831 fadd s4, s5, s6 1832 fsub s7, s8, s9 1833 fmax s10, s11, s12 1834 fmin s13, s14, s15 1835 fmaxnm s16, s17, s18 1836 fminnm s19, s20, s21 1837 fnmul s22, s23, s24 1838// CHECK: fmul s20, s19, s17 // encoding: [0x74,0x0a,0x31,0x1e] 1839// CHECK: fdiv s1, s2, s3 // encoding: [0x41,0x18,0x23,0x1e] 1840// CHECK: fadd s4, s5, s6 // encoding: [0xa4,0x28,0x26,0x1e] 1841// CHECK: fsub s7, s8, s9 // encoding: [0x07,0x39,0x29,0x1e] 1842// CHECK: fmax s10, s11, s12 // encoding: [0x6a,0x49,0x2c,0x1e] 1843// CHECK: fmin s13, s14, s15 // encoding: [0xcd,0x59,0x2f,0x1e] 1844// CHECK: fmaxnm s16, s17, s18 // encoding: [0x30,0x6a,0x32,0x1e] 1845// CHECK: fminnm s19, s20, s21 // encoding: [0x93,0x7a,0x35,0x1e] 1846// CHECK: fnmul s22, s23, s24 // encoding: [0xf6,0x8a,0x38,0x1e] 1847 1848 fmul d20, d19, d17 1849 fdiv d1, d2, d3 1850 fadd d4, d5, d6 1851 fsub d7, d8, d9 1852 fmax d10, d11, d12 1853 fmin d13, d14, d15 1854 fmaxnm d16, d17, d18 1855 fminnm d19, d20, d21 1856 fnmul d22, d23, d24 1857// CHECK: fmul d20, d19, d17 // encoding: [0x74,0x0a,0x71,0x1e] 1858// CHECK: fdiv d1, d2, d3 // encoding: [0x41,0x18,0x63,0x1e] 1859// CHECK: fadd d4, d5, d6 // encoding: [0xa4,0x28,0x66,0x1e] 1860// CHECK: fsub d7, d8, d9 // encoding: [0x07,0x39,0x69,0x1e] 1861// CHECK: fmax d10, d11, d12 // encoding: [0x6a,0x49,0x6c,0x1e] 1862// CHECK: fmin d13, d14, d15 // encoding: [0xcd,0x59,0x6f,0x1e] 1863// CHECK: fmaxnm d16, d17, d18 // encoding: [0x30,0x6a,0x72,0x1e] 1864// CHECK: fminnm d19, d20, d21 // encoding: [0x93,0x7a,0x75,0x1e] 1865// CHECK: fnmul d22, d23, d24 // encoding: [0xf6,0x8a,0x78,0x1e] 1866 1867//------------------------------------------------------------------------------ 1868// Floating-point data-processing (3 sources) 1869//------------------------------------------------------------------------------ 1870 1871 fmadd s3, s5, s6, s31 1872 fmadd d3, d13, d0, d23 1873 fmsub s3, s5, s6, s31 1874 fmsub d3, d13, d0, d23 1875 fnmadd s3, s5, s6, s31 1876 fnmadd d3, d13, d0, d23 1877 fnmsub s3, s5, s6, s31 1878 fnmsub d3, d13, d0, d23 1879// CHECK: fmadd s3, s5, s6, s31 // encoding: [0xa3,0x7c,0x06,0x1f] 1880// CHECK: fmadd d3, d13, d0, d23 // encoding: [0xa3,0x5d,0x40,0x1f] 1881// CHECK: fmsub s3, s5, s6, s31 // encoding: [0xa3,0xfc,0x06,0x1f] 1882// CHECK: fmsub d3, d13, d0, d23 // encoding: [0xa3,0xdd,0x40,0x1f] 1883// CHECK: fnmadd s3, s5, s6, s31 // encoding: [0xa3,0x7c,0x26,0x1f] 1884// CHECK: fnmadd d3, d13, d0, d23 // encoding: [0xa3,0x5d,0x60,0x1f] 1885// CHECK: fnmsub s3, s5, s6, s31 // encoding: [0xa3,0xfc,0x26,0x1f] 1886// CHECK: fnmsub d3, d13, d0, d23 // encoding: [0xa3,0xdd,0x60,0x1f] 1887 1888//------------------------------------------------------------------------------ 1889// Floating-point <-> fixed-point conversion 1890//------------------------------------------------------------------------------ 1891 1892 fcvtzs w3, s5, #1 1893 fcvtzs wzr, s20, #13 1894 fcvtzs w19, s0, #32 1895// CHECK: fcvtzs w3, s5, #1 // encoding: [0xa3,0xfc,0x18,0x1e] 1896// CHECK: fcvtzs wzr, s20, #13 // encoding: [0x9f,0xce,0x18,0x1e] 1897// CHECK: fcvtzs w19, s0, #32 // encoding: [0x13,0x80,0x18,0x1e] 1898 1899 fcvtzs x3, s5, #1 1900 fcvtzs x12, s30, #45 1901 fcvtzs x19, s0, #64 1902// CHECK: fcvtzs x3, s5, #1 // encoding: [0xa3,0xfc,0x18,0x9e] 1903// CHECK: fcvtzs x12, s30, #45 // encoding: [0xcc,0x4f,0x18,0x9e] 1904// CHECK: fcvtzs x19, s0, #64 // encoding: [0x13,0x00,0x18,0x9e] 1905 1906 fcvtzs w3, d5, #1 1907 fcvtzs wzr, d20, #13 1908 fcvtzs w19, d0, #32 1909// CHECK: fcvtzs w3, d5, #1 // encoding: [0xa3,0xfc,0x58,0x1e] 1910// CHECK: fcvtzs wzr, d20, #13 // encoding: [0x9f,0xce,0x58,0x1e] 1911// CHECK: fcvtzs w19, d0, #32 // encoding: [0x13,0x80,0x58,0x1e] 1912 1913 fcvtzs x3, d5, #1 1914 fcvtzs x12, d30, #45 1915 fcvtzs x19, d0, #64 1916// CHECK: fcvtzs x3, d5, #1 // encoding: [0xa3,0xfc,0x58,0x9e] 1917// CHECK: fcvtzs x12, d30, #45 // encoding: [0xcc,0x4f,0x58,0x9e] 1918// CHECK: fcvtzs x19, d0, #64 // encoding: [0x13,0x00,0x58,0x9e] 1919 1920 fcvtzu w3, s5, #1 1921 fcvtzu wzr, s20, #13 1922 fcvtzu w19, s0, #32 1923// CHECK: fcvtzu w3, s5, #1 // encoding: [0xa3,0xfc,0x19,0x1e] 1924// CHECK: fcvtzu wzr, s20, #13 // encoding: [0x9f,0xce,0x19,0x1e] 1925// CHECK: fcvtzu w19, s0, #32 // encoding: [0x13,0x80,0x19,0x1e] 1926 1927 fcvtzu x3, s5, #1 1928 fcvtzu x12, s30, #45 1929 fcvtzu x19, s0, #64 1930// CHECK: fcvtzu x3, s5, #1 // encoding: [0xa3,0xfc,0x19,0x9e] 1931// CHECK: fcvtzu x12, s30, #45 // encoding: [0xcc,0x4f,0x19,0x9e] 1932// CHECK: fcvtzu x19, s0, #64 // encoding: [0x13,0x00,0x19,0x9e] 1933 1934 fcvtzu w3, d5, #1 1935 fcvtzu wzr, d20, #13 1936 fcvtzu w19, d0, #32 1937// CHECK: fcvtzu w3, d5, #1 // encoding: [0xa3,0xfc,0x59,0x1e] 1938// CHECK: fcvtzu wzr, d20, #13 // encoding: [0x9f,0xce,0x59,0x1e] 1939// CHECK: fcvtzu w19, d0, #32 // encoding: [0x13,0x80,0x59,0x1e] 1940 1941 fcvtzu x3, d5, #1 1942 fcvtzu x12, d30, #45 1943 fcvtzu x19, d0, #64 1944// CHECK: fcvtzu x3, d5, #1 // encoding: [0xa3,0xfc,0x59,0x9e] 1945// CHECK: fcvtzu x12, d30, #45 // encoding: [0xcc,0x4f,0x59,0x9e] 1946// CHECK: fcvtzu x19, d0, #64 // encoding: [0x13,0x00,0x59,0x9e] 1947 1948 scvtf s23, w19, #1 1949 scvtf s31, wzr, #20 1950 scvtf s14, w0, #32 1951// CHECK: scvtf s23, w19, #1 // encoding: [0x77,0xfe,0x02,0x1e] 1952// CHECK: scvtf s31, wzr, #20 // encoding: [0xff,0xb3,0x02,0x1e] 1953// CHECK: scvtf s14, w0, #32 // encoding: [0x0e,0x80,0x02,0x1e] 1954 1955 scvtf s23, x19, #1 1956 scvtf s31, xzr, #20 1957 scvtf s14, x0, #64 1958// CHECK: scvtf s23, x19, #1 // encoding: [0x77,0xfe,0x02,0x9e] 1959// CHECK: scvtf s31, xzr, #20 // encoding: [0xff,0xb3,0x02,0x9e] 1960// CHECK: scvtf s14, x0, #64 // encoding: [0x0e,0x00,0x02,0x9e] 1961 1962 scvtf d23, w19, #1 1963 scvtf d31, wzr, #20 1964 scvtf d14, w0, #32 1965// CHECK: scvtf d23, w19, #1 // encoding: [0x77,0xfe,0x42,0x1e] 1966// CHECK: scvtf d31, wzr, #20 // encoding: [0xff,0xb3,0x42,0x1e] 1967// CHECK: scvtf d14, w0, #32 // encoding: [0x0e,0x80,0x42,0x1e] 1968 1969 scvtf d23, x19, #1 1970 scvtf d31, xzr, #20 1971 scvtf d14, x0, #64 1972// CHECK: scvtf d23, x19, #1 // encoding: [0x77,0xfe,0x42,0x9e] 1973// CHECK: scvtf d31, xzr, #20 // encoding: [0xff,0xb3,0x42,0x9e] 1974// CHECK: scvtf d14, x0, #64 // encoding: [0x0e,0x00,0x42,0x9e] 1975 1976 ucvtf s23, w19, #1 1977 ucvtf s31, wzr, #20 1978 ucvtf s14, w0, #32 1979// CHECK: ucvtf s23, w19, #1 // encoding: [0x77,0xfe,0x03,0x1e] 1980// CHECK: ucvtf s31, wzr, #20 // encoding: [0xff,0xb3,0x03,0x1e] 1981// CHECK: ucvtf s14, w0, #32 // encoding: [0x0e,0x80,0x03,0x1e] 1982 1983 ucvtf s23, x19, #1 1984 ucvtf s31, xzr, #20 1985 ucvtf s14, x0, #64 1986// CHECK: ucvtf s23, x19, #1 // encoding: [0x77,0xfe,0x03,0x9e] 1987// CHECK: ucvtf s31, xzr, #20 // encoding: [0xff,0xb3,0x03,0x9e] 1988// CHECK: ucvtf s14, x0, #64 // encoding: [0x0e,0x00,0x03,0x9e] 1989 1990 ucvtf d23, w19, #1 1991 ucvtf d31, wzr, #20 1992 ucvtf d14, w0, #32 1993// CHECK: ucvtf d23, w19, #1 // encoding: [0x77,0xfe,0x43,0x1e] 1994// CHECK: ucvtf d31, wzr, #20 // encoding: [0xff,0xb3,0x43,0x1e] 1995// CHECK: ucvtf d14, w0, #32 // encoding: [0x0e,0x80,0x43,0x1e] 1996 1997 ucvtf d23, x19, #1 1998 ucvtf d31, xzr, #20 1999 ucvtf d14, x0, #64 2000// CHECK: ucvtf d23, x19, #1 // encoding: [0x77,0xfe,0x43,0x9e] 2001// CHECK: ucvtf d31, xzr, #20 // encoding: [0xff,0xb3,0x43,0x9e] 2002// CHECK: ucvtf d14, x0, #64 // encoding: [0x0e,0x00,0x43,0x9e] 2003 2004//------------------------------------------------------------------------------ 2005// Floating-point <-> integer conversion 2006//------------------------------------------------------------------------------ 2007 fcvtns w3, s31 2008 fcvtns xzr, s12 2009 fcvtnu wzr, s12 2010 fcvtnu x0, s0 2011// CHECK: fcvtns w3, s31 // encoding: [0xe3,0x03,0x20,0x1e] 2012// CHECK: fcvtns xzr, s12 // encoding: [0x9f,0x01,0x20,0x9e] 2013// CHECK: fcvtnu wzr, s12 // encoding: [0x9f,0x01,0x21,0x1e] 2014// CHECK: fcvtnu x0, s0 // encoding: [0x00,0x00,0x21,0x9e] 2015 2016 fcvtps wzr, s9 2017 fcvtps x12, s20 2018 fcvtpu w30, s23 2019 fcvtpu x29, s3 2020// CHECK: fcvtps wzr, s9 // encoding: [0x3f,0x01,0x28,0x1e] 2021// CHECK: fcvtps x12, s20 // encoding: [0x8c,0x02,0x28,0x9e] 2022// CHECK: fcvtpu w30, s23 // encoding: [0xfe,0x02,0x29,0x1e] 2023// CHECK: fcvtpu x29, s3 // encoding: [0x7d,0x00,0x29,0x9e] 2024 2025 fcvtms w2, s3 2026 fcvtms x4, s5 2027 fcvtmu w6, s7 2028 fcvtmu x8, s9 2029// CHECK: fcvtms w2, s3 // encoding: [0x62,0x00,0x30,0x1e] 2030// CHECK: fcvtms x4, s5 // encoding: [0xa4,0x00,0x30,0x9e] 2031// CHECK: fcvtmu w6, s7 // encoding: [0xe6,0x00,0x31,0x1e] 2032// CHECK: fcvtmu x8, s9 // encoding: [0x28,0x01,0x31,0x9e] 2033 2034 fcvtzs w10, s11 2035 fcvtzs x12, s13 2036 fcvtzu w14, s15 2037 fcvtzu x15, s16 2038// CHECK: fcvtzs w10, s11 // encoding: [0x6a,0x01,0x38,0x1e] 2039// CHECK: fcvtzs x12, s13 // encoding: [0xac,0x01,0x38,0x9e] 2040// CHECK: fcvtzu w14, s15 // encoding: [0xee,0x01,0x39,0x1e] 2041// CHECK: fcvtzu x15, s16 // encoding: [0x0f,0x02,0x39,0x9e] 2042 2043 scvtf s17, w18 2044 scvtf s19, x20 2045 ucvtf s21, w22 2046 scvtf s23, x24 2047// CHECK: scvtf s17, w18 // encoding: [0x51,0x02,0x22,0x1e] 2048// CHECK: scvtf s19, x20 // encoding: [0x93,0x02,0x22,0x9e] 2049// CHECK: ucvtf s21, w22 // encoding: [0xd5,0x02,0x23,0x1e] 2050// CHECK: scvtf s23, x24 // encoding: [0x17,0x03,0x22,0x9e] 2051 2052 fcvtas w25, s26 2053 fcvtas x27, s28 2054 fcvtau w29, s30 2055 fcvtau xzr, s0 2056// CHECK: fcvtas w25, s26 // encoding: [0x59,0x03,0x24,0x1e] 2057// CHECK: fcvtas x27, s28 // encoding: [0x9b,0x03,0x24,0x9e] 2058// CHECK: fcvtau w29, s30 // encoding: [0xdd,0x03,0x25,0x1e] 2059// CHECK: fcvtau xzr, s0 // encoding: [0x1f,0x00,0x25,0x9e] 2060 2061 fcvtns w3, d31 2062 fcvtns xzr, d12 2063 fcvtnu wzr, d12 2064 fcvtnu x0, d0 2065// CHECK: fcvtns w3, d31 // encoding: [0xe3,0x03,0x60,0x1e] 2066// CHECK: fcvtns xzr, d12 // encoding: [0x9f,0x01,0x60,0x9e] 2067// CHECK: fcvtnu wzr, d12 // encoding: [0x9f,0x01,0x61,0x1e] 2068// CHECK: fcvtnu x0, d0 // encoding: [0x00,0x00,0x61,0x9e] 2069 2070 fcvtps wzr, d9 2071 fcvtps x12, d20 2072 fcvtpu w30, d23 2073 fcvtpu x29, d3 2074// CHECK: fcvtps wzr, d9 // encoding: [0x3f,0x01,0x68,0x1e] 2075// CHECK: fcvtps x12, d20 // encoding: [0x8c,0x02,0x68,0x9e] 2076// CHECK: fcvtpu w30, d23 // encoding: [0xfe,0x02,0x69,0x1e] 2077// CHECK: fcvtpu x29, d3 // encoding: [0x7d,0x00,0x69,0x9e] 2078 2079 fcvtms w2, d3 2080 fcvtms x4, d5 2081 fcvtmu w6, d7 2082 fcvtmu x8, d9 2083// CHECK: fcvtms w2, d3 // encoding: [0x62,0x00,0x70,0x1e] 2084// CHECK: fcvtms x4, d5 // encoding: [0xa4,0x00,0x70,0x9e] 2085// CHECK: fcvtmu w6, d7 // encoding: [0xe6,0x00,0x71,0x1e] 2086// CHECK: fcvtmu x8, d9 // encoding: [0x28,0x01,0x71,0x9e] 2087 2088 fcvtzs w10, d11 2089 fcvtzs x12, d13 2090 fcvtzu w14, d15 2091 fcvtzu x15, d16 2092// CHECK: fcvtzs w10, d11 // encoding: [0x6a,0x01,0x78,0x1e] 2093// CHECK: fcvtzs x12, d13 // encoding: [0xac,0x01,0x78,0x9e] 2094// CHECK: fcvtzu w14, d15 // encoding: [0xee,0x01,0x79,0x1e] 2095// CHECK: fcvtzu x15, d16 // encoding: [0x0f,0x02,0x79,0x9e] 2096 2097 scvtf d17, w18 2098 scvtf d19, x20 2099 ucvtf d21, w22 2100 ucvtf d23, x24 2101// CHECK: scvtf d17, w18 // encoding: [0x51,0x02,0x62,0x1e] 2102// CHECK: scvtf d19, x20 // encoding: [0x93,0x02,0x62,0x9e] 2103// CHECK: ucvtf d21, w22 // encoding: [0xd5,0x02,0x63,0x1e] 2104// CHECK: ucvtf d23, x24 // encoding: [0x17,0x03,0x63,0x9e] 2105 2106 fcvtas w25, d26 2107 fcvtas x27, d28 2108 fcvtau w29, d30 2109 fcvtau xzr, d0 2110// CHECK: fcvtas w25, d26 // encoding: [0x59,0x03,0x64,0x1e] 2111// CHECK: fcvtas x27, d28 // encoding: [0x9b,0x03,0x64,0x9e] 2112// CHECK: fcvtau w29, d30 // encoding: [0xdd,0x03,0x65,0x1e] 2113// CHECK: fcvtau xzr, d0 // encoding: [0x1f,0x00,0x65,0x9e] 2114 2115 fmov w3, s9 2116 fmov s9, w3 2117// CHECK: fmov w3, s9 // encoding: [0x23,0x01,0x26,0x1e] 2118// CHECK: fmov s9, w3 // encoding: [0x69,0x00,0x27,0x1e] 2119 2120 fmov x20, d31 2121 fmov d1, x15 2122// CHECK: fmov x20, d31 // encoding: [0xf4,0x03,0x66,0x9e] 2123// CHECK: fmov d1, x15 // encoding: [0xe1,0x01,0x67,0x9e] 2124 2125 fmov x3, v12.d[1] 2126 fmov v1.d[1], x19 2127 fmov v3.2d[1], xzr 2128// CHECK: fmov x3, v12.d[1] // encoding: [0x83,0x01,0xae,0x9e] 2129// CHECK: fmov v1.d[1], x19 // encoding: [0x61,0x02,0xaf,0x9e] 2130// CHECK: fmov v3.d[1], xzr // encoding: [0xe3,0x03,0xaf,0x9e] 2131 2132//------------------------------------------------------------------------------ 2133// Floating-point immediate 2134//------------------------------------------------------------------------------ 2135 2136 fmov s2, #0.125 2137 fmov s3, #1.0 2138 fmov d30, #16.0 2139// CHECK: fmov s2, #0.12500000 // encoding: [0x02,0x10,0x28,0x1e] 2140// CHECK: fmov s3, #1.00000000 // encoding: [0x03,0x10,0x2e,0x1e] 2141// CHECK: fmov d30, #16.00000000 // encoding: [0x1e,0x10,0x66,0x1e] 2142 2143 fmov s4, #1.0625 2144 fmov d10, #1.9375 2145// CHECK: fmov s4, #1.06250000 // encoding: [0x04,0x30,0x2e,0x1e] 2146// CHECK: fmov d10, #1.93750000 // encoding: [0x0a,0xf0,0x6f,0x1e] 2147 2148 fmov s12, #-1.0 2149// CHECK: fmov s12, #-1.00000000 // encoding: [0x0c,0x10,0x3e,0x1e] 2150 2151 fmov d16, #8.5 2152// CHECK: fmov d16, #8.50000000 // encoding: [0x10,0x30,0x64,0x1e] 2153 2154//------------------------------------------------------------------------------ 2155// Load-register (literal) 2156//------------------------------------------------------------------------------ 2157 ldr w3, here 2158 ldr x29, there 2159 ldrsw xzr, everywhere 2160// CHECK: ldr w3, here // encoding: [0x03'A',A,A,0x18'A'] 2161// CHECK: // fixup A - offset: 0, value: here, kind: fixup_a64_ld_prel 2162// CHECK: ldr x29, there // encoding: [0x1d'A',A,A,0x58'A'] 2163// CHECK: // fixup A - offset: 0, value: there, kind: fixup_a64_ld_prel 2164// CHECK: ldrsw xzr, everywhere // encoding: [0x1f'A',A,A,0x98'A'] 2165// CHECK: // fixup A - offset: 0, value: everywhere, kind: fixup_a64_ld_prel 2166 2167 ldr s0, who_knows 2168 ldr d0, i_dont 2169 ldr q0, there_must_be_a_better_way 2170// CHECK: ldr s0, who_knows // encoding: [A,A,A,0x1c'A'] 2171// CHECK: // fixup A - offset: 0, value: who_knows, kind: fixup_a64_ld_prel 2172// CHECK: ldr d0, i_dont // encoding: [A,A,A,0x5c'A'] 2173// CHECK: // fixup A - offset: 0, value: i_dont, kind: fixup_a64_ld_prel 2174// CHECK: ldr q0, there_must_be_a_better_way // encoding: [A,A,A,0x9c'A'] 2175// CHECK: // fixup A - offset: 0, value: there_must_be_a_better_way, kind: fixup_a64_ld_prel 2176 2177 ldr w0, #1048572 2178 ldr x10, #-1048576 2179// CHECK: ldr w0, #1048572 // encoding: [0xe0,0xff,0x7f,0x18] 2180// CHECK: ldr x10, #-1048576 // encoding: [0x0a,0x00,0x80,0x58] 2181 2182 prfm pldl1strm, nowhere 2183 prfm #22, somewhere 2184// CHECK: prfm pldl1strm, nowhere // encoding: [0x01'A',A,A,0xd8'A'] 2185// CHECK: // fixup A - offset: 0, value: nowhere, kind: fixup_a64_ld_prel 2186// CHECK: prfm #22, somewhere // encoding: [0x16'A',A,A,0xd8'A'] 2187// CHECK: // fixup A - offset: 0, value: somewhere, kind: fixup_a64_ld_prel 2188 2189//------------------------------------------------------------------------------ 2190// Floating-point immediate 2191//------------------------------------------------------------------------------ 2192 2193 fmov s2, #0.125 2194 fmov s3, #1.0 2195 fmov d30, #16.0 2196// CHECK: fmov s2, #0.12500000 // encoding: [0x02,0x10,0x28,0x1e] 2197// CHECK: fmov s3, #1.00000000 // encoding: [0x03,0x10,0x2e,0x1e] 2198// CHECK: fmov d30, #16.00000000 // encoding: [0x1e,0x10,0x66,0x1e] 2199 2200 fmov s4, #1.0625 2201 fmov d10, #1.9375 2202// CHECK: fmov s4, #1.06250000 // encoding: [0x04,0x30,0x2e,0x1e] 2203// CHECK: fmov d10, #1.93750000 // encoding: [0x0a,0xf0,0x6f,0x1e] 2204 2205 fmov s12, #-1.0 2206// CHECK: fmov s12, #-1.00000000 // encoding: [0x0c,0x10,0x3e,0x1e] 2207 2208 fmov d16, #8.5 2209// CHECK: fmov d16, #8.50000000 // encoding: [0x10,0x30,0x64,0x1e] 2210 2211//------------------------------------------------------------------------------ 2212// Load/store exclusive 2213//------------------------------------------------------------------------------ 2214 2215 stxrb w1, w2, [x3, #0] 2216 stxrh w2, w3, [x4] 2217 stxr wzr, w4, [sp] 2218 stxr w5, x6, [x7] 2219// CHECK: stxrb w1, w2, [x3] // encoding: [0x62,0x7c,0x01,0x08] 2220// CHECK: stxrh w2, w3, [x4] // encoding: [0x83,0x7c,0x02,0x48] 2221// CHECK: stxr wzr, w4, [sp] // encoding: [0xe4,0x7f,0x1f,0x88] 2222// CHECK: stxr w5, x6, [x7] // encoding: [0xe6,0x7c,0x05,0xc8] 2223 2224 ldxrb w7, [x9] 2225 ldxrh wzr, [x10] 2226 ldxr w9, [sp] 2227 ldxr x10, [x11] 2228// CHECK: ldxrb w7, [x9] // encoding: [0x27,0x7d,0x5f,0x08] 2229// CHECK: ldxrh wzr, [x10] // encoding: [0x5f,0x7d,0x5f,0x48] 2230// CHECK: ldxr w9, [sp] // encoding: [0xe9,0x7f,0x5f,0x88] 2231// CHECK: ldxr x10, [x11] // encoding: [0x6a,0x7d,0x5f,0xc8] 2232 2233 stxp w11, w12, w13, [x14] 2234 stxp wzr, x23, x14, [x15] 2235// CHECK: stxp w11, w12, w13, [x14] // encoding: [0xcc,0x35,0x2b,0x88] 2236// CHECK: stxp wzr, x23, x14, [x15] // encoding: [0xf7,0x39,0x3f,0xc8] 2237 2238 ldxp w12, wzr, [sp] 2239 ldxp x13, x14, [x15] 2240// CHECK: ldxp w12, wzr, [sp] // encoding: [0xec,0x7f,0x7f,0x88] 2241// CHECK: ldxp x13, x14, [x15] // encoding: [0xed,0x39,0x7f,0xc8] 2242 2243 stlxrb w14, w15, [x16] 2244 stlxrh w15, w16, [x17,#0] 2245 stlxr wzr, w17, [sp] 2246 stlxr w18, x19, [x20] 2247// CHECK: stlxrb w14, w15, [x16] // encoding: [0x0f,0xfe,0x0e,0x08] 2248// CHECK: stlxrh w15, w16, [x17] // encoding: [0x30,0xfe,0x0f,0x48] 2249// CHECK: stlxr wzr, w17, [sp] // encoding: [0xf1,0xff,0x1f,0x88] 2250// CHECK: stlxr w18, x19, [x20] // encoding: [0x93,0xfe,0x12,0xc8] 2251 2252 ldaxrb w19, [x21] 2253 ldaxrh w20, [sp] 2254 ldaxr wzr, [x22] 2255 ldaxr x21, [x23] 2256// CHECK: ldaxrb w19, [x21] // encoding: [0xb3,0xfe,0x5f,0x08] 2257// CHECK: ldaxrh w20, [sp] // encoding: [0xf4,0xff,0x5f,0x48] 2258// CHECK: ldaxr wzr, [x22] // encoding: [0xdf,0xfe,0x5f,0x88] 2259// CHECK: ldaxr x21, [x23] // encoding: [0xf5,0xfe,0x5f,0xc8] 2260 2261 stlxp wzr, w22, w23, [x24] 2262 stlxp w25, x26, x27, [sp] 2263// CHECK: stlxp wzr, w22, w23, [x24] // encoding: [0x16,0xdf,0x3f,0x88] 2264// CHECK: stlxp w25, x26, x27, [sp] // encoding: [0xfa,0xef,0x39,0xc8] 2265 2266 ldaxp w26, wzr, [sp] 2267 ldaxp x27, x28, [x30] 2268// CHECK: ldaxp w26, wzr, [sp] // encoding: [0xfa,0xff,0x7f,0x88] 2269// CHECK: ldaxp x27, x28, [x30] // encoding: [0xdb,0xf3,0x7f,0xc8] 2270 2271 stlrb w27, [sp] 2272 stlrh w28, [x0] 2273 stlr wzr, [x1] 2274 stlr x30, [x2] 2275// CHECK: stlrb w27, [sp] // encoding: [0xfb,0xff,0x9f,0x08] 2276// CHECK: stlrh w28, [x0] // encoding: [0x1c,0xfc,0x9f,0x48] 2277// CHECK: stlr wzr, [x1] // encoding: [0x3f,0xfc,0x9f,0x88] 2278// CHECK: stlr x30, [x2] // encoding: [0x5e,0xfc,0x9f,0xc8] 2279 2280 ldarb w29, [sp] 2281 ldarh w30, [x0] 2282 ldar wzr, [x1] 2283 ldar x1, [x2] 2284// CHECK: ldarb w29, [sp] // encoding: [0xfd,0xff,0xdf,0x08] 2285// CHECK: ldarh w30, [x0] // encoding: [0x1e,0xfc,0xdf,0x48] 2286// CHECK: ldar wzr, [x1] // encoding: [0x3f,0xfc,0xdf,0x88] 2287// CHECK: ldar x1, [x2] // encoding: [0x41,0xfc,0xdf,0xc8] 2288 2289 stlxp wzr, w22, w23, [x24,#0] 2290// CHECK: stlxp wzr, w22, w23, [x24] // encoding: [0x16,0xdf,0x3f,0x88] 2291 2292//------------------------------------------------------------------------------ 2293// Load/store (unaligned immediate) 2294//------------------------------------------------------------------------------ 2295 2296 sturb w9, [sp, #0] 2297 sturh wzr, [x12, #255] 2298 stur w16, [x0, #-256] 2299 stur x28, [x14, #1] 2300// CHECK: sturb w9, [sp] // encoding: [0xe9,0x03,0x00,0x38] 2301// CHECK: sturh wzr, [x12, #255] // encoding: [0x9f,0xf1,0x0f,0x78] 2302// CHECK: stur w16, [x0, #-256] // encoding: [0x10,0x00,0x10,0xb8] 2303// CHECK: stur x28, [x14, #1] // encoding: [0xdc,0x11,0x00,0xf8] 2304 2305 ldurb w1, [x20, #255] 2306 ldurh w20, [x1, #255] 2307 ldur w12, [sp, #255] 2308 ldur xzr, [x12, #255] 2309// CHECK: ldurb w1, [x20, #255] // encoding: [0x81,0xf2,0x4f,0x38] 2310// CHECK: ldurh w20, [x1, #255] // encoding: [0x34,0xf0,0x4f,0x78] 2311// CHECK: ldur w12, [sp, #255] // encoding: [0xec,0xf3,0x4f,0xb8] 2312// CHECK: ldur xzr, [x12, #255] // encoding: [0x9f,0xf1,0x4f,0xf8] 2313 2314 ldursb x9, [x7, #-256] 2315 ldursh x17, [x19, #-256] 2316 ldursw x20, [x15, #-256] 2317 ldursw x13, [x2] 2318 prfum pldl2keep, [sp, #-256] 2319 ldursb w19, [x1, #-256] 2320 ldursh w15, [x21, #-256] 2321// CHECK: ldursb x9, [x7, #-256] // encoding: [0xe9,0x00,0x90,0x38] 2322// CHECK: ldursh x17, [x19, #-256] // encoding: [0x71,0x02,0x90,0x78] 2323// CHECK: ldursw x20, [x15, #-256] // encoding: [0xf4,0x01,0x90,0xb8] 2324// CHECK: ldursw x13, [x2] // encoding: [0x4d,0x00,0x80,0xb8] 2325// CHECK: prfum pldl2keep, [sp, #-256] // encoding: [0xe2,0x03,0x90,0xf8] 2326// CHECK: ldursb w19, [x1, #-256] // encoding: [0x33,0x00,0xd0,0x38] 2327// CHECK: ldursh w15, [x21, #-256] // encoding: [0xaf,0x02,0xd0,0x78] 2328 2329 stur b0, [sp, #1] 2330 stur h12, [x12, #-1] 2331 stur s15, [x0, #255] 2332 stur d31, [x5, #25] 2333 stur q9, [x5] 2334// CHECK: stur b0, [sp, #1] // encoding: [0xe0,0x13,0x00,0x3c] 2335// CHECK: stur h12, [x12, #-1] // encoding: [0x8c,0xf1,0x1f,0x7c] 2336// CHECK: stur s15, [x0, #255] // encoding: [0x0f,0xf0,0x0f,0xbc] 2337// CHECK: stur d31, [x5, #25] // encoding: [0xbf,0x90,0x01,0xfc] 2338// CHECK: stur q9, [x5] // encoding: [0xa9,0x00,0x80,0x3c] 2339 2340 ldur b3, [sp] 2341 ldur h5, [x4, #-256] 2342 ldur s7, [x12, #-1] 2343 ldur d11, [x19, #4] 2344 ldur q13, [x1, #2] 2345// CHECK: ldur b3, [sp] // encoding: [0xe3,0x03,0x40,0x3c] 2346// CHECK: ldur h5, [x4, #-256] // encoding: [0x85,0x00,0x50,0x7c] 2347// CHECK: ldur s7, [x12, #-1] // encoding: [0x87,0xf1,0x5f,0xbc] 2348// CHECK: ldur d11, [x19, #4] // encoding: [0x6b,0x42,0x40,0xfc] 2349// CHECK: ldur q13, [x1, #2] // encoding: [0x2d,0x20,0xc0,0x3c] 2350 2351//------------------------------------------------------------------------------ 2352// Load/store (unsigned immediate) 2353//------------------------------------------------------------------------------ 2354 2355//// Basic addressing mode limits: 8 byte access 2356 ldr x0, [x0] 2357 ldr x4, [x29, #0] 2358 ldr x30, [x12, #32760] 2359 ldr x20, [sp, #8] 2360// CHECK: ldr x0, [x0] // encoding: [0x00,0x00,0x40,0xf9] 2361// CHECK: ldr x4, [x29] // encoding: [0xa4,0x03,0x40,0xf9] 2362// CHECK: ldr x30, [x12, #32760] // encoding: [0x9e,0xfd,0x7f,0xf9] 2363// CHECK: ldr x20, [sp, #8] // encoding: [0xf4,0x07,0x40,0xf9] 2364 2365//// Rt treats 31 as zero-register 2366 ldr xzr, [sp] 2367// CHECK: ldr xzr, [sp] // encoding: [0xff,0x03,0x40,0xf9] 2368 2369 //// 4-byte load, check still 64-bit address, limits 2370 ldr w2, [sp] 2371 ldr w17, [sp, #16380] 2372 ldr w13, [x2, #4] 2373// CHECK: ldr w2, [sp] // encoding: [0xe2,0x03,0x40,0xb9] 2374// CHECK: ldr w17, [sp, #16380] // encoding: [0xf1,0xff,0x7f,0xb9] 2375// CHECK: ldr w13, [x2, #4] // encoding: [0x4d,0x04,0x40,0xb9] 2376 2377//// Signed 4-byte load. Limits. 2378 ldrsw x2, [x5,#4] 2379 ldrsw x23, [sp, #16380] 2380// CHECK: ldrsw x2, [x5, #4] // encoding: [0xa2,0x04,0x80,0xb9] 2381// CHECK: ldrsw x23, [sp, #16380] // encoding: [0xf7,0xff,0xbf,0xb9] 2382 2383//// 2-byte loads 2384 ldrh w2, [x4] 2385 ldrsh w23, [x6, #8190] 2386 ldrsh wzr, [sp, #2] 2387 ldrsh x29, [x2, #2] 2388// CHECK: ldrh w2, [x4] // encoding: [0x82,0x00,0x40,0x79] 2389// CHECK: ldrsh w23, [x6, #8190] // encoding: [0xd7,0xfc,0xff,0x79] 2390// CHECK: ldrsh wzr, [sp, #2] // encoding: [0xff,0x07,0xc0,0x79] 2391// CHECK: ldrsh x29, [x2, #2] // encoding: [0x5d,0x04,0x80,0x79] 2392 2393//// 1-byte loads 2394 ldrb w26, [x3, #121] 2395 ldrb w12, [x2, #0] 2396 ldrsb w27, [sp, #4095] 2397 ldrsb xzr, [x15] 2398// CHECK: ldrb w26, [x3, #121] // encoding: [0x7a,0xe4,0x41,0x39] 2399// CHECK: ldrb w12, [x2] // encoding: [0x4c,0x00,0x40,0x39] 2400// CHECK: ldrsb w27, [sp, #4095] // encoding: [0xfb,0xff,0xff,0x39] 2401// CHECK: ldrsb xzr, [x15] // encoding: [0xff,0x01,0x80,0x39] 2402 2403//// Stores 2404 str x30, [sp] 2405 str w20, [x4, #16380] 2406 strh w20, [x10, #14] 2407 strh w17, [sp, #8190] 2408 strb w23, [x3, #4095] 2409 strb wzr, [x2] 2410// CHECK: str x30, [sp] // encoding: [0xfe,0x03,0x00,0xf9] 2411// CHECK: str w20, [x4, #16380] // encoding: [0x94,0xfc,0x3f,0xb9] 2412// CHECK: strh w20, [x10, #14] // encoding: [0x54,0x1d,0x00,0x79] 2413// CHECK: strh w17, [sp, #8190] // encoding: [0xf1,0xff,0x3f,0x79] 2414// CHECK: strb w23, [x3, #4095] // encoding: [0x77,0xfc,0x3f,0x39] 2415// CHECK: strb wzr, [x2] // encoding: [0x5f,0x00,0x00,0x39] 2416 2417//// Relocations 2418 str x15, [x5, #:lo12:sym] 2419 ldrb w15, [x5, #:lo12:sym] 2420 ldrsh x15, [x5, #:lo12:sym] 2421 ldrsw x15, [x5, #:lo12:sym] 2422 ldr x15, [x5, #:lo12:sym] 2423 ldr q3, [x2, #:lo12:sym] 2424// CHECK: str x15, [x5, #:lo12:sym] // encoding: [0xaf'A',A,A,0xf9'A'] 2425// CHECK: // fixup A - offset: 0, value: :lo12:sym, kind: fixup_a64_ldst64_lo12 2426// CHECK: ldrb w15, [x5, #:lo12:sym] // encoding: [0xaf'A',A,0x40'A',0x39'A'] 2427// CHECK: // fixup A - offset: 0, value: :lo12:sym, kind: fixup_a64_ldst8_lo12 2428// CHECK: ldrsh x15, [x5, #:lo12:sym] // encoding: [0xaf'A',A,0x80'A',0x79'A'] 2429// CHECK: // fixup A - offset: 0, value: :lo12:sym, kind: fixup_a64_ldst16_lo12 2430// CHECK: ldrsw x15, [x5, #:lo12:sym] // encoding: [0xaf'A',A,0x80'A',0xb9'A'] 2431// CHECK: // fixup A - offset: 0, value: :lo12:sym, kind: fixup_a64_ldst32_lo12 2432// CHECK: ldr x15, [x5, #:lo12:sym] // encoding: [0xaf'A',A,0x40'A',0xf9'A'] 2433// CHECK: // fixup A - offset: 0, value: :lo12:sym, kind: fixup_a64_ldst64_lo12 2434// CHECK: ldr q3, [x2, #:lo12:sym] // encoding: [0x43'A',A,0xc0'A',0x3d'A'] 2435// CHECK: // fixup A - offset: 0, value: :lo12:sym, kind: fixup_a64_ldst128_lo12 2436 2437 prfm pldl1keep, [sp, #8] 2438 prfm pldl1strm, [x3] 2439 prfm pldl2keep, [x5,#16] 2440 prfm pldl2strm, [x2] 2441 prfm pldl3keep, [x5] 2442 prfm pldl3strm, [x6] 2443 prfm plil1keep, [sp, #8] 2444 prfm plil1strm, [x3] 2445 prfm plil2keep, [x5,#16] 2446 prfm plil2strm, [x2] 2447 prfm plil3keep, [x5] 2448 prfm plil3strm, [x6] 2449 prfm pstl1keep, [sp, #8] 2450 prfm pstl1strm, [x3] 2451 prfm pstl2keep, [x5,#16] 2452 prfm pstl2strm, [x2] 2453 prfm pstl3keep, [x5] 2454 prfm pstl3strm, [x6] 2455 prfm #15, [sp] 2456// CHECK: prfm pldl1keep, [sp, #8] // encoding: [0xe0,0x07,0x80,0xf9] 2457// CHECK: prfm pldl1strm, [x3, #0] // encoding: [0x61,0x00,0x80,0xf9] 2458// CHECK: prfm pldl2keep, [x5, #16] // encoding: [0xa2,0x08,0x80,0xf9] 2459// CHECK: prfm pldl2strm, [x2, #0] // encoding: [0x43,0x00,0x80,0xf9] 2460// CHECK: prfm pldl3keep, [x5, #0] // encoding: [0xa4,0x00,0x80,0xf9] 2461// CHECK: prfm pldl3strm, [x6, #0] // encoding: [0xc5,0x00,0x80,0xf9] 2462// CHECK: prfm plil1keep, [sp, #8] // encoding: [0xe8,0x07,0x80,0xf9] 2463// CHECK: prfm plil1strm, [x3, #0] // encoding: [0x69,0x00,0x80,0xf9] 2464// CHECK: prfm plil2keep, [x5, #16] // encoding: [0xaa,0x08,0x80,0xf9] 2465// CHECK: prfm plil2strm, [x2, #0] // encoding: [0x4b,0x00,0x80,0xf9] 2466// CHECK: prfm plil3keep, [x5, #0] // encoding: [0xac,0x00,0x80,0xf9] 2467// CHECK: prfm plil3strm, [x6, #0] // encoding: [0xcd,0x00,0x80,0xf9] 2468// CHECK: prfm pstl1keep, [sp, #8] // encoding: [0xf0,0x07,0x80,0xf9] 2469// CHECK: prfm pstl1strm, [x3, #0] // encoding: [0x71,0x00,0x80,0xf9] 2470// CHECK: prfm pstl2keep, [x5, #16] // encoding: [0xb2,0x08,0x80,0xf9] 2471// CHECK: prfm pstl2strm, [x2, #0] // encoding: [0x53,0x00,0x80,0xf9] 2472// CHECK: prfm pstl3keep, [x5, #0] // encoding: [0xb4,0x00,0x80,0xf9] 2473// CHECK: prfm pstl3strm, [x6, #0] // encoding: [0xd5,0x00,0x80,0xf9] 2474// CHECK: prfm #15, [sp, #0] // encoding: [0xef,0x03,0x80,0xf9] 2475 2476//// Floating-point versions 2477 2478 ldr b31, [sp, #4095] 2479 ldr h20, [x2, #8190] 2480 ldr s10, [x19, #16380] 2481 ldr d3, [x10, #32760] 2482 str q12, [sp, #65520] 2483// CHECK: ldr b31, [sp, #4095] // encoding: [0xff,0xff,0x7f,0x3d] 2484// CHECK: ldr h20, [x2, #8190] // encoding: [0x54,0xfc,0x7f,0x7d] 2485// CHECK: ldr s10, [x19, #16380] // encoding: [0x6a,0xfe,0x7f,0xbd] 2486// CHECK: ldr d3, [x10, #32760] // encoding: [0x43,0xfd,0x7f,0xfd] 2487// CHECK: str q12, [sp, #65520] // encoding: [0xec,0xff,0xbf,0x3d] 2488 2489//------------------------------------------------------------------------------ 2490// Load/store register (register offset) 2491//------------------------------------------------------------------------------ 2492 2493 ldrb w3, [sp, x5] 2494 ldrb w9, [x27, x6, lsl #0] 2495 ldrsb w10, [x30, x7] 2496 ldrb w11, [x29, x3, sxtx] 2497 strb w12, [x28, xzr, sxtx #0] 2498 ldrb w14, [x26, w6, uxtw] 2499 ldrsb w15, [x25, w7, uxtw #0] 2500 ldrb w17, [x23, w9, sxtw] 2501 ldrsb x18, [x22, w10, sxtw #0] 2502// CHECK: ldrb w3, [sp, x5] // encoding: [0xe3,0x6b,0x65,0x38] 2503// CHECK: ldrb w9, [x27, x6, lsl #0] // encoding: [0x69,0x7b,0x66,0x38] 2504// CHECK: ldrsb w10, [x30, x7] // encoding: [0xca,0x6b,0xe7,0x38] 2505// CHECK: ldrb w11, [x29, x3, sxtx] // encoding: [0xab,0xeb,0x63,0x38] 2506// CHECK: strb w12, [x28, xzr, sxtx #0] // encoding: [0x8c,0xfb,0x3f,0x38] 2507// CHECK: ldrb w14, [x26, w6, uxtw] // encoding: [0x4e,0x4b,0x66,0x38] 2508// CHECK: ldrsb w15, [x25, w7, uxtw #0] // encoding: [0x2f,0x5b,0xe7,0x38] 2509// CHECK: ldrb w17, [x23, w9, sxtw] // encoding: [0xf1,0xca,0x69,0x38] 2510// CHECK: ldrsb x18, [x22, w10, sxtw #0] // encoding: [0xd2,0xda,0xaa,0x38] 2511 2512 ldrsh w3, [sp, x5] 2513 ldrsh w9, [x27, x6, lsl #0] 2514 ldrh w10, [x30, x7, lsl #1] 2515 strh w11, [x29, x3, sxtx] 2516 ldrh w12, [x28, xzr, sxtx #0] 2517 ldrsh x13, [x27, x5, sxtx #1] 2518 ldrh w14, [x26, w6, uxtw] 2519 ldrh w15, [x25, w7, uxtw #0] 2520 ldrsh w16, [x24, w8, uxtw #1] 2521 ldrh w17, [x23, w9, sxtw] 2522 ldrh w18, [x22, w10, sxtw #0] 2523 strh w19, [x21, wzr, sxtw #1] 2524// CHECK: ldrsh w3, [sp, x5] // encoding: [0xe3,0x6b,0xe5,0x78] 2525// CHECK: ldrsh w9, [x27, x6] // encoding: [0x69,0x6b,0xe6,0x78] 2526// CHECK: ldrh w10, [x30, x7, lsl #1] // encoding: [0xca,0x7b,0x67,0x78] 2527// CHECK: strh w11, [x29, x3, sxtx] // encoding: [0xab,0xeb,0x23,0x78] 2528// CHECK: ldrh w12, [x28, xzr, sxtx] // encoding: [0x8c,0xeb,0x7f,0x78] 2529// CHECK: ldrsh x13, [x27, x5, sxtx #1] // encoding: [0x6d,0xfb,0xa5,0x78] 2530// CHECK: ldrh w14, [x26, w6, uxtw] // encoding: [0x4e,0x4b,0x66,0x78] 2531// CHECK: ldrh w15, [x25, w7, uxtw] // encoding: [0x2f,0x4b,0x67,0x78] 2532// CHECK: ldrsh w16, [x24, w8, uxtw #1] // encoding: [0x10,0x5b,0xe8,0x78] 2533// CHECK: ldrh w17, [x23, w9, sxtw] // encoding: [0xf1,0xca,0x69,0x78] 2534// CHECK: ldrh w18, [x22, w10, sxtw] // encoding: [0xd2,0xca,0x6a,0x78] 2535// CHECK: strh w19, [x21, wzr, sxtw #1] // encoding: [0xb3,0xda,0x3f,0x78] 2536 2537 ldr w3, [sp, x5] 2538 ldr s9, [x27, x6, lsl #0] 2539 ldr w10, [x30, x7, lsl #2] 2540 ldr w11, [x29, x3, sxtx] 2541 str s12, [x28, xzr, sxtx #0] 2542 str w13, [x27, x5, sxtx #2] 2543 str w14, [x26, w6, uxtw] 2544 ldr w15, [x25, w7, uxtw #0] 2545 ldr w16, [x24, w8, uxtw #2] 2546 ldrsw x17, [x23, w9, sxtw] 2547 ldr w18, [x22, w10, sxtw #0] 2548 ldrsw x19, [x21, wzr, sxtw #2] 2549// CHECK: ldr w3, [sp, x5] // encoding: [0xe3,0x6b,0x65,0xb8] 2550// CHECK: ldr s9, [x27, x6] // encoding: [0x69,0x6b,0x66,0xbc] 2551// CHECK: ldr w10, [x30, x7, lsl #2] // encoding: [0xca,0x7b,0x67,0xb8] 2552// CHECK: ldr w11, [x29, x3, sxtx] // encoding: [0xab,0xeb,0x63,0xb8] 2553// CHECK: str s12, [x28, xzr, sxtx] // encoding: [0x8c,0xeb,0x3f,0xbc] 2554// CHECK: str w13, [x27, x5, sxtx #2] // encoding: [0x6d,0xfb,0x25,0xb8] 2555// CHECK: str w14, [x26, w6, uxtw] // encoding: [0x4e,0x4b,0x26,0xb8] 2556// CHECK: ldr w15, [x25, w7, uxtw] // encoding: [0x2f,0x4b,0x67,0xb8] 2557// CHECK: ldr w16, [x24, w8, uxtw #2] // encoding: [0x10,0x5b,0x68,0xb8] 2558// CHECK: ldrsw x17, [x23, w9, sxtw] // encoding: [0xf1,0xca,0xa9,0xb8] 2559// CHECK: ldr w18, [x22, w10, sxtw] // encoding: [0xd2,0xca,0x6a,0xb8] 2560// CHECK: ldrsw x19, [x21, wzr, sxtw #2] // encoding: [0xb3,0xda,0xbf,0xb8] 2561 2562 ldr x3, [sp, x5] 2563 str x9, [x27, x6, lsl #0] 2564 ldr d10, [x30, x7, lsl #3] 2565 str x11, [x29, x3, sxtx] 2566 ldr x12, [x28, xzr, sxtx #0] 2567 ldr x13, [x27, x5, sxtx #3] 2568 prfm pldl1keep, [x26, w6, uxtw] 2569 ldr x15, [x25, w7, uxtw #0] 2570 ldr x16, [x24, w8, uxtw #3] 2571 ldr x17, [x23, w9, sxtw] 2572 ldr x18, [x22, w10, sxtw #0] 2573 str d19, [x21, wzr, sxtw #3] 2574 prfm #6, [x0, x5] 2575// CHECK: ldr x3, [sp, x5] // encoding: [0xe3,0x6b,0x65,0xf8] 2576// CHECK: str x9, [x27, x6] // encoding: [0x69,0x6b,0x26,0xf8] 2577// CHECK: ldr d10, [x30, x7, lsl #3] // encoding: [0xca,0x7b,0x67,0xfc] 2578// CHECK: str x11, [x29, x3, sxtx] // encoding: [0xab,0xeb,0x23,0xf8] 2579// CHECK: ldr x12, [x28, xzr, sxtx] // encoding: [0x8c,0xeb,0x7f,0xf8] 2580// CHECK: ldr x13, [x27, x5, sxtx #3] // encoding: [0x6d,0xfb,0x65,0xf8] 2581// CHECK: prfm pldl1keep, [x26, w6, uxtw] // encoding: [0x40,0x4b,0xa6,0xf8] 2582// CHECK: ldr x15, [x25, w7, uxtw] // encoding: [0x2f,0x4b,0x67,0xf8] 2583// CHECK: ldr x16, [x24, w8, uxtw #3] // encoding: [0x10,0x5b,0x68,0xf8] 2584// CHECK: ldr x17, [x23, w9, sxtw] // encoding: [0xf1,0xca,0x69,0xf8] 2585// CHECK: ldr x18, [x22, w10, sxtw] // encoding: [0xd2,0xca,0x6a,0xf8] 2586// CHECK: str d19, [x21, wzr, sxtw #3] // encoding: [0xb3,0xda,0x3f,0xfc] 2587// CHECK: prfm #6, [x0, x5, lsl #0] // encoding: [0x06,0x68,0xa5,0xf8] 2588 2589 ldr q3, [sp, x5] 2590 ldr q9, [x27, x6, lsl #0] 2591 ldr q10, [x30, x7, lsl #4] 2592 str q11, [x29, x3, sxtx] 2593 str q12, [x28, xzr, sxtx #0] 2594 str q13, [x27, x5, sxtx #4] 2595 ldr q14, [x26, w6, uxtw] 2596 ldr q15, [x25, w7, uxtw #0] 2597 ldr q16, [x24, w8, uxtw #4] 2598 ldr q17, [x23, w9, sxtw] 2599 str q18, [x22, w10, sxtw #0] 2600 ldr q19, [x21, wzr, sxtw #4] 2601// CHECK: ldr q3, [sp, x5] // encoding: [0xe3,0x6b,0xe5,0x3c] 2602// CHECK: ldr q9, [x27, x6] // encoding: [0x69,0x6b,0xe6,0x3c] 2603// CHECK: ldr q10, [x30, x7, lsl #4] // encoding: [0xca,0x7b,0xe7,0x3c] 2604// CHECK: str q11, [x29, x3, sxtx] // encoding: [0xab,0xeb,0xa3,0x3c] 2605// CHECK: str q12, [x28, xzr, sxtx] // encoding: [0x8c,0xeb,0xbf,0x3c] 2606// CHECK: str q13, [x27, x5, sxtx #4] // encoding: [0x6d,0xfb,0xa5,0x3c] 2607// CHECK: ldr q14, [x26, w6, uxtw] // encoding: [0x4e,0x4b,0xe6,0x3c] 2608// CHECK: ldr q15, [x25, w7, uxtw] // encoding: [0x2f,0x4b,0xe7,0x3c] 2609// CHECK: ldr q16, [x24, w8, uxtw #4] // encoding: [0x10,0x5b,0xe8,0x3c] 2610// CHECK: ldr q17, [x23, w9, sxtw] // encoding: [0xf1,0xca,0xe9,0x3c] 2611// CHECK: str q18, [x22, w10, sxtw] // encoding: [0xd2,0xca,0xaa,0x3c] 2612// CHECK: ldr q19, [x21, wzr, sxtw #4] // encoding: [0xb3,0xda,0xff,0x3c] 2613 2614//------------------------------------------------------------------------------ 2615// Load/store register (immediate post-indexed) 2616//------------------------------------------------------------------------------ 2617 2618 strb w9, [x2], #255 2619 strb w10, [x3], #1 2620 strb w10, [x3], #-256 2621 strh w9, [x2], #255 2622 strh w9, [x2], #1 2623 strh w10, [x3], #-256 2624// CHECK: strb w9, [x2], #255 // encoding: [0x49,0xf4,0x0f,0x38] 2625// CHECK: strb w10, [x3], #1 // encoding: [0x6a,0x14,0x00,0x38] 2626// CHECK: strb w10, [x3], #-256 // encoding: [0x6a,0x04,0x10,0x38] 2627// CHECK: strh w9, [x2], #255 // encoding: [0x49,0xf4,0x0f,0x78] 2628// CHECK: strh w9, [x2], #1 // encoding: [0x49,0x14,0x00,0x78] 2629// CHECK: strh w10, [x3], #-256 // encoding: [0x6a,0x04,0x10,0x78] 2630 2631 str w19, [sp], #255 2632 str w20, [x30], #1 2633 str w21, [x12], #-256 2634 str xzr, [x9], #255 2635 str x2, [x3], #1 2636 str x19, [x12], #-256 2637// CHECK: str w19, [sp], #255 // encoding: [0xf3,0xf7,0x0f,0xb8] 2638// CHECK: str w20, [x30], #1 // encoding: [0xd4,0x17,0x00,0xb8] 2639// CHECK: str w21, [x12], #-256 // encoding: [0x95,0x05,0x10,0xb8] 2640// CHECK: str xzr, [x9], #255 // encoding: [0x3f,0xf5,0x0f,0xf8] 2641// CHECK: str x2, [x3], #1 // encoding: [0x62,0x14,0x00,0xf8] 2642// CHECK: str x19, [x12], #-256 // encoding: [0x93,0x05,0x10,0xf8] 2643 2644 ldrb w9, [x2], #255 2645 ldrb w10, [x3], #1 2646 ldrb w10, [x3], #-256 2647 ldrh w9, [x2], #255 2648 ldrh w9, [x2], #1 2649 ldrh w10, [x3], #-256 2650// CHECK: ldrb w9, [x2], #255 // encoding: [0x49,0xf4,0x4f,0x38] 2651// CHECK: ldrb w10, [x3], #1 // encoding: [0x6a,0x14,0x40,0x38] 2652// CHECK: ldrb w10, [x3], #-256 // encoding: [0x6a,0x04,0x50,0x38] 2653// CHECK: ldrh w9, [x2], #255 // encoding: [0x49,0xf4,0x4f,0x78] 2654// CHECK: ldrh w9, [x2], #1 // encoding: [0x49,0x14,0x40,0x78] 2655// CHECK: ldrh w10, [x3], #-256 // encoding: [0x6a,0x04,0x50,0x78] 2656 2657 ldr w19, [sp], #255 2658 ldr w20, [x30], #1 2659 ldr w21, [x12], #-256 2660 ldr xzr, [x9], #255 2661 ldr x2, [x3], #1 2662 ldr x19, [x12], #-256 2663// CHECK: ldr w19, [sp], #255 // encoding: [0xf3,0xf7,0x4f,0xb8] 2664// CHECK: ldr w20, [x30], #1 // encoding: [0xd4,0x17,0x40,0xb8] 2665// CHECK: ldr w21, [x12], #-256 // encoding: [0x95,0x05,0x50,0xb8] 2666// CHECK: ldr xzr, [x9], #255 // encoding: [0x3f,0xf5,0x4f,0xf8] 2667// CHECK: ldr x2, [x3], #1 // encoding: [0x62,0x14,0x40,0xf8] 2668// CHECK: ldr x19, [x12], #-256 // encoding: [0x93,0x05,0x50,0xf8] 2669 2670 ldrsb xzr, [x9], #255 2671 ldrsb x2, [x3], #1 2672 ldrsb x19, [x12], #-256 2673 ldrsh xzr, [x9], #255 2674 ldrsh x2, [x3], #1 2675 ldrsh x19, [x12], #-256 2676 ldrsw xzr, [x9], #255 2677 ldrsw x2, [x3], #1 2678 ldrsw x19, [x12], #-256 2679// CHECK: ldrsb xzr, [x9], #255 // encoding: [0x3f,0xf5,0x8f,0x38] 2680// CHECK: ldrsb x2, [x3], #1 // encoding: [0x62,0x14,0x80,0x38] 2681// CHECK: ldrsb x19, [x12], #-256 // encoding: [0x93,0x05,0x90,0x38] 2682// CHECK: ldrsh xzr, [x9], #255 // encoding: [0x3f,0xf5,0x8f,0x78] 2683// CHECK: ldrsh x2, [x3], #1 // encoding: [0x62,0x14,0x80,0x78] 2684// CHECK: ldrsh x19, [x12], #-256 // encoding: [0x93,0x05,0x90,0x78] 2685// CHECK: ldrsw xzr, [x9], #255 // encoding: [0x3f,0xf5,0x8f,0xb8] 2686// CHECK: ldrsw x2, [x3], #1 // encoding: [0x62,0x14,0x80,0xb8] 2687// CHECK: ldrsw x19, [x12], #-256 // encoding: [0x93,0x05,0x90,0xb8] 2688 2689 ldrsb wzr, [x9], #255 2690 ldrsb w2, [x3], #1 2691 ldrsb w19, [x12], #-256 2692 ldrsh wzr, [x9], #255 2693 ldrsh w2, [x3], #1 2694 ldrsh w19, [x12], #-256 2695// CHECK: ldrsb wzr, [x9], #255 // encoding: [0x3f,0xf5,0xcf,0x38] 2696// CHECK: ldrsb w2, [x3], #1 // encoding: [0x62,0x14,0xc0,0x38] 2697// CHECK: ldrsb w19, [x12], #-256 // encoding: [0x93,0x05,0xd0,0x38] 2698// CHECK: ldrsh wzr, [x9], #255 // encoding: [0x3f,0xf5,0xcf,0x78] 2699// CHECK: ldrsh w2, [x3], #1 // encoding: [0x62,0x14,0xc0,0x78] 2700// CHECK: ldrsh w19, [x12], #-256 // encoding: [0x93,0x05,0xd0,0x78] 2701 2702 str b0, [x0], #255 2703 str b3, [x3], #1 2704 str b5, [sp], #-256 2705 str h10, [x10], #255 2706 str h13, [x23], #1 2707 str h15, [sp], #-256 2708 str s20, [x20], #255 2709 str s23, [x23], #1 2710 str s25, [x0], #-256 2711 str d20, [x20], #255 2712 str d23, [x23], #1 2713 str d25, [x0], #-256 2714// CHECK: str b0, [x0], #255 // encoding: [0x00,0xf4,0x0f,0x3c] 2715// CHECK: str b3, [x3], #1 // encoding: [0x63,0x14,0x00,0x3c] 2716// CHECK: str b5, [sp], #-256 // encoding: [0xe5,0x07,0x10,0x3c] 2717// CHECK: str h10, [x10], #255 // encoding: [0x4a,0xf5,0x0f,0x7c] 2718// CHECK: str h13, [x23], #1 // encoding: [0xed,0x16,0x00,0x7c] 2719// CHECK: str h15, [sp], #-256 // encoding: [0xef,0x07,0x10,0x7c] 2720// CHECK: str s20, [x20], #255 // encoding: [0x94,0xf6,0x0f,0xbc] 2721// CHECK: str s23, [x23], #1 // encoding: [0xf7,0x16,0x00,0xbc] 2722// CHECK: str s25, [x0], #-256 // encoding: [0x19,0x04,0x10,0xbc] 2723// CHECK: str d20, [x20], #255 // encoding: [0x94,0xf6,0x0f,0xfc] 2724// CHECK: str d23, [x23], #1 // encoding: [0xf7,0x16,0x00,0xfc] 2725// CHECK: str d25, [x0], #-256 // encoding: [0x19,0x04,0x10,0xfc] 2726 2727 ldr b0, [x0], #255 2728 ldr b3, [x3], #1 2729 ldr b5, [sp], #-256 2730 ldr h10, [x10], #255 2731 ldr h13, [x23], #1 2732 ldr h15, [sp], #-256 2733 ldr s20, [x20], #255 2734 ldr s23, [x23], #1 2735 ldr s25, [x0], #-256 2736 ldr d20, [x20], #255 2737 ldr d23, [x23], #1 2738 ldr d25, [x0], #-256 2739// CHECK: ldr b0, [x0], #255 // encoding: [0x00,0xf4,0x4f,0x3c] 2740// CHECK: ldr b3, [x3], #1 // encoding: [0x63,0x14,0x40,0x3c] 2741// CHECK: ldr b5, [sp], #-256 // encoding: [0xe5,0x07,0x50,0x3c] 2742// CHECK: ldr h10, [x10], #255 // encoding: [0x4a,0xf5,0x4f,0x7c] 2743// CHECK: ldr h13, [x23], #1 // encoding: [0xed,0x16,0x40,0x7c] 2744// CHECK: ldr h15, [sp], #-256 // encoding: [0xef,0x07,0x50,0x7c] 2745// CHECK: ldr s20, [x20], #255 // encoding: [0x94,0xf6,0x4f,0xbc] 2746// CHECK: ldr s23, [x23], #1 // encoding: [0xf7,0x16,0x40,0xbc] 2747// CHECK: ldr s25, [x0], #-256 // encoding: [0x19,0x04,0x50,0xbc] 2748// CHECK: ldr d20, [x20], #255 // encoding: [0x94,0xf6,0x4f,0xfc] 2749// CHECK: ldr d23, [x23], #1 // encoding: [0xf7,0x16,0x40,0xfc] 2750// CHECK: ldr d25, [x0], #-256 // encoding: [0x19,0x04,0x50,0xfc] 2751 2752 ldr q20, [x1], #255 2753 ldr q23, [x9], #1 2754 ldr q25, [x20], #-256 2755 str q10, [x1], #255 2756 str q22, [sp], #1 2757 str q21, [x20], #-256 2758// CHECK: ldr q20, [x1], #255 // encoding: [0x34,0xf4,0xcf,0x3c] 2759// CHECK: ldr q23, [x9], #1 // encoding: [0x37,0x15,0xc0,0x3c] 2760// CHECK: ldr q25, [x20], #-256 // encoding: [0x99,0x06,0xd0,0x3c] 2761// CHECK: str q10, [x1], #255 // encoding: [0x2a,0xf4,0x8f,0x3c] 2762// CHECK: str q22, [sp], #1 // encoding: [0xf6,0x17,0x80,0x3c] 2763// CHECK: str q21, [x20], #-256 // encoding: [0x95,0x06,0x90,0x3c] 2764 2765//------------------------------------------------------------------------------ 2766// Load/store register (immediate pre-indexed) 2767//------------------------------------------------------------------------------ 2768 2769 ldr x3, [x4, #0]! 2770 ldr xzr, [sp, #0]! 2771// CHECK: ldr x3, [x4, #0]! // encoding: [0x83,0x0c,0x40,0xf8] 2772// CHECK: ldr xzr, [sp, #0]! // encoding: [0xff,0x0f,0x40,0xf8] 2773 2774 strb w9, [x2, #255]! 2775 strb w10, [x3, #1]! 2776 strb w10, [x3, #-256]! 2777 strh w9, [x2, #255]! 2778 strh w9, [x2, #1]! 2779 strh w10, [x3, #-256]! 2780// CHECK: strb w9, [x2, #255]! // encoding: [0x49,0xfc,0x0f,0x38] 2781// CHECK: strb w10, [x3, #1]! // encoding: [0x6a,0x1c,0x00,0x38] 2782// CHECK: strb w10, [x3, #-256]! // encoding: [0x6a,0x0c,0x10,0x38] 2783// CHECK: strh w9, [x2, #255]! // encoding: [0x49,0xfc,0x0f,0x78] 2784// CHECK: strh w9, [x2, #1]! // encoding: [0x49,0x1c,0x00,0x78] 2785// CHECK: strh w10, [x3, #-256]! // encoding: [0x6a,0x0c,0x10,0x78] 2786 2787 str w19, [sp, #255]! 2788 str w20, [x30, #1]! 2789 str w21, [x12, #-256]! 2790 str xzr, [x9, #255]! 2791 str x2, [x3, #1]! 2792 str x19, [x12, #-256]! 2793// CHECK: str w19, [sp, #255]! // encoding: [0xf3,0xff,0x0f,0xb8] 2794// CHECK: str w20, [x30, #1]! // encoding: [0xd4,0x1f,0x00,0xb8] 2795// CHECK: str w21, [x12, #-256]! // encoding: [0x95,0x0d,0x10,0xb8] 2796// CHECK: str xzr, [x9, #255]! // encoding: [0x3f,0xfd,0x0f,0xf8] 2797// CHECK: str x2, [x3, #1]! // encoding: [0x62,0x1c,0x00,0xf8] 2798// CHECK: str x19, [x12, #-256]! // encoding: [0x93,0x0d,0x10,0xf8] 2799 2800 ldrb w9, [x2, #255]! 2801 ldrb w10, [x3, #1]! 2802 ldrb w10, [x3, #-256]! 2803 ldrh w9, [x2, #255]! 2804 ldrh w9, [x2, #1]! 2805 ldrh w10, [x3, #-256]! 2806// CHECK: ldrb w9, [x2, #255]! // encoding: [0x49,0xfc,0x4f,0x38] 2807// CHECK: ldrb w10, [x3, #1]! // encoding: [0x6a,0x1c,0x40,0x38] 2808// CHECK: ldrb w10, [x3, #-256]! // encoding: [0x6a,0x0c,0x50,0x38] 2809// CHECK: ldrh w9, [x2, #255]! // encoding: [0x49,0xfc,0x4f,0x78] 2810// CHECK: ldrh w9, [x2, #1]! // encoding: [0x49,0x1c,0x40,0x78] 2811// CHECK: ldrh w10, [x3, #-256]! // encoding: [0x6a,0x0c,0x50,0x78] 2812 2813 ldr w19, [sp, #255]! 2814 ldr w20, [x30, #1]! 2815 ldr w21, [x12, #-256]! 2816 ldr xzr, [x9, #255]! 2817 ldr x2, [x3, #1]! 2818 ldr x19, [x12, #-256]! 2819// CHECK: ldr w19, [sp, #255]! // encoding: [0xf3,0xff,0x4f,0xb8] 2820// CHECK: ldr w20, [x30, #1]! // encoding: [0xd4,0x1f,0x40,0xb8] 2821// CHECK: ldr w21, [x12, #-256]! // encoding: [0x95,0x0d,0x50,0xb8] 2822// CHECK: ldr xzr, [x9, #255]! // encoding: [0x3f,0xfd,0x4f,0xf8] 2823// CHECK: ldr x2, [x3, #1]! // encoding: [0x62,0x1c,0x40,0xf8] 2824// CHECK: ldr x19, [x12, #-256]! // encoding: [0x93,0x0d,0x50,0xf8] 2825 2826 ldrsb xzr, [x9, #255]! 2827 ldrsb x2, [x3, #1]! 2828 ldrsb x19, [x12, #-256]! 2829 ldrsh xzr, [x9, #255]! 2830 ldrsh x2, [x3, #1]! 2831 ldrsh x19, [x12, #-256]! 2832 ldrsw xzr, [x9, #255]! 2833 ldrsw x2, [x3, #1]! 2834 ldrsw x19, [x12, #-256]! 2835// CHECK: ldrsb xzr, [x9, #255]! // encoding: [0x3f,0xfd,0x8f,0x38] 2836// CHECK: ldrsb x2, [x3, #1]! // encoding: [0x62,0x1c,0x80,0x38] 2837// CHECK: ldrsb x19, [x12, #-256]! // encoding: [0x93,0x0d,0x90,0x38] 2838// CHECK: ldrsh xzr, [x9, #255]! // encoding: [0x3f,0xfd,0x8f,0x78] 2839// CHECK: ldrsh x2, [x3, #1]! // encoding: [0x62,0x1c,0x80,0x78] 2840// CHECK: ldrsh x19, [x12, #-256]! // encoding: [0x93,0x0d,0x90,0x78] 2841// CHECK: ldrsw xzr, [x9, #255]! // encoding: [0x3f,0xfd,0x8f,0xb8] 2842// CHECK: ldrsw x2, [x3, #1]! // encoding: [0x62,0x1c,0x80,0xb8] 2843// CHECK: ldrsw x19, [x12, #-256]! // encoding: [0x93,0x0d,0x90,0xb8] 2844 2845 ldrsb wzr, [x9, #255]! 2846 ldrsb w2, [x3, #1]! 2847 ldrsb w19, [x12, #-256]! 2848 ldrsh wzr, [x9, #255]! 2849 ldrsh w2, [x3, #1]! 2850 ldrsh w19, [x12, #-256]! 2851// CHECK: ldrsb wzr, [x9, #255]! // encoding: [0x3f,0xfd,0xcf,0x38] 2852// CHECK: ldrsb w2, [x3, #1]! // encoding: [0x62,0x1c,0xc0,0x38] 2853// CHECK: ldrsb w19, [x12, #-256]! // encoding: [0x93,0x0d,0xd0,0x38] 2854// CHECK: ldrsh wzr, [x9, #255]! // encoding: [0x3f,0xfd,0xcf,0x78] 2855// CHECK: ldrsh w2, [x3, #1]! // encoding: [0x62,0x1c,0xc0,0x78] 2856// CHECK: ldrsh w19, [x12, #-256]! // encoding: [0x93,0x0d,0xd0,0x78] 2857 2858 str b0, [x0, #255]! 2859 str b3, [x3, #1]! 2860 str b5, [sp, #-256]! 2861 str h10, [x10, #255]! 2862 str h13, [x23, #1]! 2863 str h15, [sp, #-256]! 2864 str s20, [x20, #255]! 2865 str s23, [x23, #1]! 2866 str s25, [x0, #-256]! 2867 str d20, [x20, #255]! 2868 str d23, [x23, #1]! 2869 str d25, [x0, #-256]! 2870// CHECK: str b0, [x0, #255]! // encoding: [0x00,0xfc,0x0f,0x3c] 2871// CHECK: str b3, [x3, #1]! // encoding: [0x63,0x1c,0x00,0x3c] 2872// CHECK: str b5, [sp, #-256]! // encoding: [0xe5,0x0f,0x10,0x3c] 2873// CHECK: str h10, [x10, #255]! // encoding: [0x4a,0xfd,0x0f,0x7c] 2874// CHECK: str h13, [x23, #1]! // encoding: [0xed,0x1e,0x00,0x7c] 2875// CHECK: str h15, [sp, #-256]! // encoding: [0xef,0x0f,0x10,0x7c] 2876// CHECK: str s20, [x20, #255]! // encoding: [0x94,0xfe,0x0f,0xbc] 2877// CHECK: str s23, [x23, #1]! // encoding: [0xf7,0x1e,0x00,0xbc] 2878// CHECK: str s25, [x0, #-256]! // encoding: [0x19,0x0c,0x10,0xbc] 2879// CHECK: str d20, [x20, #255]! // encoding: [0x94,0xfe,0x0f,0xfc] 2880// CHECK: str d23, [x23, #1]! // encoding: [0xf7,0x1e,0x00,0xfc] 2881// CHECK: str d25, [x0, #-256]! // encoding: [0x19,0x0c,0x10,0xfc] 2882 2883 ldr b0, [x0, #255]! 2884 ldr b3, [x3, #1]! 2885 ldr b5, [sp, #-256]! 2886 ldr h10, [x10, #255]! 2887 ldr h13, [x23, #1]! 2888 ldr h15, [sp, #-256]! 2889 ldr s20, [x20, #255]! 2890 ldr s23, [x23, #1]! 2891 ldr s25, [x0, #-256]! 2892 ldr d20, [x20, #255]! 2893 ldr d23, [x23, #1]! 2894 ldr d25, [x0, #-256]! 2895// CHECK: ldr b0, [x0, #255]! // encoding: [0x00,0xfc,0x4f,0x3c] 2896// CHECK: ldr b3, [x3, #1]! // encoding: [0x63,0x1c,0x40,0x3c] 2897// CHECK: ldr b5, [sp, #-256]! // encoding: [0xe5,0x0f,0x50,0x3c] 2898// CHECK: ldr h10, [x10, #255]! // encoding: [0x4a,0xfd,0x4f,0x7c] 2899// CHECK: ldr h13, [x23, #1]! // encoding: [0xed,0x1e,0x40,0x7c] 2900// CHECK: ldr h15, [sp, #-256]! // encoding: [0xef,0x0f,0x50,0x7c] 2901// CHECK: ldr s20, [x20, #255]! // encoding: [0x94,0xfe,0x4f,0xbc] 2902// CHECK: ldr s23, [x23, #1]! // encoding: [0xf7,0x1e,0x40,0xbc] 2903// CHECK: ldr s25, [x0, #-256]! // encoding: [0x19,0x0c,0x50,0xbc] 2904// CHECK: ldr d20, [x20, #255]! // encoding: [0x94,0xfe,0x4f,0xfc] 2905// CHECK: ldr d23, [x23, #1]! // encoding: [0xf7,0x1e,0x40,0xfc] 2906// CHECK: ldr d25, [x0, #-256]! // encoding: [0x19,0x0c,0x50,0xfc] 2907 2908 ldr q20, [x1, #255]! 2909 ldr q23, [x9, #1]! 2910 ldr q25, [x20, #-256]! 2911 str q10, [x1, #255]! 2912 str q22, [sp, #1]! 2913 str q21, [x20, #-256]! 2914// CHECK: ldr q20, [x1, #255]! // encoding: [0x34,0xfc,0xcf,0x3c] 2915// CHECK: ldr q23, [x9, #1]! // encoding: [0x37,0x1d,0xc0,0x3c] 2916// CHECK: ldr q25, [x20, #-256]! // encoding: [0x99,0x0e,0xd0,0x3c] 2917// CHECK: str q10, [x1, #255]! // encoding: [0x2a,0xfc,0x8f,0x3c] 2918// CHECK: str q22, [sp, #1]! // encoding: [0xf6,0x1f,0x80,0x3c] 2919// CHECK: str q21, [x20, #-256]! // encoding: [0x95,0x0e,0x90,0x3c] 2920 2921//------------------------------------------------------------------------------ 2922// Load/store (unprivileged) 2923//------------------------------------------------------------------------------ 2924 2925 sttrb w9, [sp, #0] 2926 sttrh wzr, [x12, #255] 2927 sttr w16, [x0, #-256] 2928 sttr x28, [x14, #1] 2929// CHECK: sttrb w9, [sp] // encoding: [0xe9,0x0b,0x00,0x38] 2930// CHECK: sttrh wzr, [x12, #255] // encoding: [0x9f,0xf9,0x0f,0x78] 2931// CHECK: sttr w16, [x0, #-256] // encoding: [0x10,0x08,0x10,0xb8] 2932// CHECK: sttr x28, [x14, #1] // encoding: [0xdc,0x19,0x00,0xf8] 2933 2934 ldtrb w1, [x20, #255] 2935 ldtrh w20, [x1, #255] 2936 ldtr w12, [sp, #255] 2937 ldtr xzr, [x12, #255] 2938// CHECK: ldtrb w1, [x20, #255] // encoding: [0x81,0xfa,0x4f,0x38] 2939// CHECK: ldtrh w20, [x1, #255] // encoding: [0x34,0xf8,0x4f,0x78] 2940// CHECK: ldtr w12, [sp, #255] // encoding: [0xec,0xfb,0x4f,0xb8] 2941// CHECK: ldtr xzr, [x12, #255] // encoding: [0x9f,0xf9,0x4f,0xf8] 2942 2943 ldtrsb x9, [x7, #-256] 2944 ldtrsh x17, [x19, #-256] 2945 ldtrsw x20, [x15, #-256] 2946 ldtrsb w19, [x1, #-256] 2947 ldtrsh w15, [x21, #-256] 2948// CHECK: ldtrsb x9, [x7, #-256] // encoding: [0xe9,0x08,0x90,0x38] 2949// CHECK: ldtrsh x17, [x19, #-256] // encoding: [0x71,0x0a,0x90,0x78] 2950// CHECK: ldtrsw x20, [x15, #-256] // encoding: [0xf4,0x09,0x90,0xb8] 2951// CHECK: ldtrsb w19, [x1, #-256] // encoding: [0x33,0x08,0xd0,0x38] 2952// CHECK: ldtrsh w15, [x21, #-256] // encoding: [0xaf,0x0a,0xd0,0x78] 2953 2954//------------------------------------------------------------------------------ 2955// Load/store register pair (offset) 2956//------------------------------------------------------------------------------ 2957 2958 ldp w3, w5, [sp] 2959 stp wzr, w9, [sp, #252] 2960 ldp w2, wzr, [sp, #-256] 2961 ldp w9, w10, [sp, #4] 2962// CHECK: ldp w3, w5, [sp] // encoding: [0xe3,0x17,0x40,0x29] 2963// CHECK: stp wzr, w9, [sp, #252] // encoding: [0xff,0xa7,0x1f,0x29] 2964// CHECK: ldp w2, wzr, [sp, #-256] // encoding: [0xe2,0x7f,0x60,0x29] 2965// CHECK: ldp w9, w10, [sp, #4] // encoding: [0xe9,0xab,0x40,0x29] 2966 2967 ldpsw x9, x10, [sp, #4] 2968 ldpsw x9, x10, [x2, #-256] 2969 ldpsw x20, x30, [sp, #252] 2970// CHECK: ldpsw x9, x10, [sp, #4] // encoding: [0xe9,0xab,0x40,0x69] 2971// CHECK: ldpsw x9, x10, [x2, #-256] // encoding: [0x49,0x28,0x60,0x69] 2972// CHECK: ldpsw x20, x30, [sp, #252] // encoding: [0xf4,0xfb,0x5f,0x69] 2973 2974 ldp x21, x29, [x2, #504] 2975 ldp x22, x23, [x3, #-512] 2976 ldp x24, x25, [x4, #8] 2977// CHECK: ldp x21, x29, [x2, #504] // encoding: [0x55,0xf4,0x5f,0xa9] 2978// CHECK: ldp x22, x23, [x3, #-512] // encoding: [0x76,0x5c,0x60,0xa9] 2979// CHECK: ldp x24, x25, [x4, #8] // encoding: [0x98,0xe4,0x40,0xa9] 2980 2981 ldp s29, s28, [sp, #252] 2982 stp s27, s26, [sp, #-256] 2983 ldp s1, s2, [x3, #44] 2984// CHECK: ldp s29, s28, [sp, #252] // encoding: [0xfd,0xf3,0x5f,0x2d] 2985// CHECK: stp s27, s26, [sp, #-256] // encoding: [0xfb,0x6b,0x20,0x2d] 2986// CHECK: ldp s1, s2, [x3, #44] // encoding: [0x61,0x88,0x45,0x2d] 2987 2988 stp d3, d5, [x9, #504] 2989 stp d7, d11, [x10, #-512] 2990 ldp d2, d3, [x30, #-8] 2991// CHECK: stp d3, d5, [x9, #504] // encoding: [0x23,0x95,0x1f,0x6d] 2992// CHECK: stp d7, d11, [x10, #-512] // encoding: [0x47,0x2d,0x20,0x6d] 2993// CHECK: ldp d2, d3, [x30, #-8] // encoding: [0xc2,0x8f,0x7f,0x6d] 2994 2995 stp q3, q5, [sp] 2996 stp q17, q19, [sp, #1008] 2997 ldp q23, q29, [x1, #-1024] 2998// CHECK: stp q3, q5, [sp] // encoding: [0xe3,0x17,0x00,0xad] 2999// CHECK: stp q17, q19, [sp, #1008] // encoding: [0xf1,0xcf,0x1f,0xad] 3000// CHECK: ldp q23, q29, [x1, #-1024] // encoding: [0x37,0x74,0x60,0xad] 3001 3002//------------------------------------------------------------------------------ 3003// Load/store register pair (post-indexed) 3004//------------------------------------------------------------------------------ 3005 3006 ldp w3, w5, [sp], #0 3007 stp wzr, w9, [sp], #252 3008 ldp w2, wzr, [sp], #-256 3009 ldp w9, w10, [sp], #4 3010// CHECK: ldp w3, w5, [sp], #0 // encoding: [0xe3,0x17,0xc0,0x28] 3011// CHECK: stp wzr, w9, [sp], #252 // encoding: [0xff,0xa7,0x9f,0x28] 3012// CHECK: ldp w2, wzr, [sp], #-256 // encoding: [0xe2,0x7f,0xe0,0x28] 3013// CHECK: ldp w9, w10, [sp], #4 // encoding: [0xe9,0xab,0xc0,0x28] 3014 3015 ldpsw x9, x10, [sp], #4 3016 ldpsw x9, x10, [x2], #-256 3017 ldpsw x20, x30, [sp], #252 3018// CHECK: ldpsw x9, x10, [sp], #4 // encoding: [0xe9,0xab,0xc0,0x68] 3019// CHECK: ldpsw x9, x10, [x2], #-256 // encoding: [0x49,0x28,0xe0,0x68] 3020// CHECK: ldpsw x20, x30, [sp], #252 // encoding: [0xf4,0xfb,0xdf,0x68] 3021 3022 ldp x21, x29, [x2], #504 3023 ldp x22, x23, [x3], #-512 3024 ldp x24, x25, [x4], #8 3025// CHECK: ldp x21, x29, [x2], #504 // encoding: [0x55,0xf4,0xdf,0xa8] 3026// CHECK: ldp x22, x23, [x3], #-512 // encoding: [0x76,0x5c,0xe0,0xa8] 3027// CHECK: ldp x24, x25, [x4], #8 // encoding: [0x98,0xe4,0xc0,0xa8] 3028 3029 ldp s29, s28, [sp], #252 3030 stp s27, s26, [sp], #-256 3031 ldp s1, s2, [x3], #44 3032// CHECK: ldp s29, s28, [sp], #252 // encoding: [0xfd,0xf3,0xdf,0x2c] 3033// CHECK: stp s27, s26, [sp], #-256 // encoding: [0xfb,0x6b,0xa0,0x2c] 3034// CHECK: ldp s1, s2, [x3], #44 // encoding: [0x61,0x88,0xc5,0x2c] 3035 3036 stp d3, d5, [x9], #504 3037 stp d7, d11, [x10], #-512 3038 ldp d2, d3, [x30], #-8 3039// CHECK: stp d3, d5, [x9], #504 // encoding: [0x23,0x95,0x9f,0x6c] 3040// CHECK: stp d7, d11, [x10], #-512 // encoding: [0x47,0x2d,0xa0,0x6c] 3041// CHECK: ldp d2, d3, [x30], #-8 // encoding: [0xc2,0x8f,0xff,0x6c] 3042 3043 stp q3, q5, [sp], #0 3044 stp q17, q19, [sp], #1008 3045 ldp q23, q29, [x1], #-1024 3046// CHECK: stp q3, q5, [sp], #0 // encoding: [0xe3,0x17,0x80,0xac] 3047// CHECK: stp q17, q19, [sp], #1008 // encoding: [0xf1,0xcf,0x9f,0xac] 3048// CHECK: ldp q23, q29, [x1], #-1024 // encoding: [0x37,0x74,0xe0,0xac] 3049 3050//------------------------------------------------------------------------------ 3051// Load/store register pair (pre-indexed) 3052//------------------------------------------------------------------------------ 3053 ldp w3, w5, [sp, #0]! 3054 stp wzr, w9, [sp, #252]! 3055 ldp w2, wzr, [sp, #-256]! 3056 ldp w9, w10, [sp, #4]! 3057// CHECK: ldp w3, w5, [sp, #0]! // encoding: [0xe3,0x17,0xc0,0x29] 3058// CHECK: stp wzr, w9, [sp, #252]! // encoding: [0xff,0xa7,0x9f,0x29] 3059// CHECK: ldp w2, wzr, [sp, #-256]! // encoding: [0xe2,0x7f,0xe0,0x29] 3060// CHECK: ldp w9, w10, [sp, #4]! // encoding: [0xe9,0xab,0xc0,0x29] 3061 3062 ldpsw x9, x10, [sp, #4]! 3063 ldpsw x9, x10, [x2, #-256]! 3064 ldpsw x20, x30, [sp, #252]! 3065// CHECK: ldpsw x9, x10, [sp, #4]! // encoding: [0xe9,0xab,0xc0,0x69] 3066// CHECK: ldpsw x9, x10, [x2, #-256]! // encoding: [0x49,0x28,0xe0,0x69] 3067// CHECK: ldpsw x20, x30, [sp, #252]! // encoding: [0xf4,0xfb,0xdf,0x69] 3068 3069 ldp x21, x29, [x2, #504]! 3070 ldp x22, x23, [x3, #-512]! 3071 ldp x24, x25, [x4, #8]! 3072// CHECK: ldp x21, x29, [x2, #504]! // encoding: [0x55,0xf4,0xdf,0xa9] 3073// CHECK: ldp x22, x23, [x3, #-512]! // encoding: [0x76,0x5c,0xe0,0xa9] 3074// CHECK: ldp x24, x25, [x4, #8]! // encoding: [0x98,0xe4,0xc0,0xa9] 3075 3076 ldp s29, s28, [sp, #252]! 3077 stp s27, s26, [sp, #-256]! 3078 ldp s1, s2, [x3, #44]! 3079// CHECK: ldp s29, s28, [sp, #252]! // encoding: [0xfd,0xf3,0xdf,0x2d] 3080// CHECK: stp s27, s26, [sp, #-256]! // encoding: [0xfb,0x6b,0xa0,0x2d] 3081// CHECK: ldp s1, s2, [x3, #44]! // encoding: [0x61,0x88,0xc5,0x2d] 3082 3083 stp d3, d5, [x9, #504]! 3084 stp d7, d11, [x10, #-512]! 3085 ldp d2, d3, [x30, #-8]! 3086// CHECK: stp d3, d5, [x9, #504]! // encoding: [0x23,0x95,0x9f,0x6d] 3087// CHECK: stp d7, d11, [x10, #-512]! // encoding: [0x47,0x2d,0xa0,0x6d] 3088// CHECK: ldp d2, d3, [x30, #-8]! // encoding: [0xc2,0x8f,0xff,0x6d] 3089 3090 stp q3, q5, [sp, #0]! 3091 stp q17, q19, [sp, #1008]! 3092 ldp q23, q29, [x1, #-1024]! 3093// CHECK: stp q3, q5, [sp, #0]! // encoding: [0xe3,0x17,0x80,0xad] 3094// CHECK: stp q17, q19, [sp, #1008]! // encoding: [0xf1,0xcf,0x9f,0xad] 3095// CHECK: ldp q23, q29, [x1, #-1024]! // encoding: [0x37,0x74,0xe0,0xad] 3096 3097//------------------------------------------------------------------------------ 3098// Load/store non-temporal register pair (offset) 3099//------------------------------------------------------------------------------ 3100 3101 ldnp w3, w5, [sp] 3102 stnp wzr, w9, [sp, #252] 3103 ldnp w2, wzr, [sp, #-256] 3104 ldnp w9, w10, [sp, #4] 3105// CHECK: ldnp w3, w5, [sp] // encoding: [0xe3,0x17,0x40,0x28] 3106// CHECK: stnp wzr, w9, [sp, #252] // encoding: [0xff,0xa7,0x1f,0x28] 3107// CHECK: ldnp w2, wzr, [sp, #-256] // encoding: [0xe2,0x7f,0x60,0x28] 3108// CHECK: ldnp w9, w10, [sp, #4] // encoding: [0xe9,0xab,0x40,0x28] 3109 3110 ldnp x21, x29, [x2, #504] 3111 ldnp x22, x23, [x3, #-512] 3112 ldnp x24, x25, [x4, #8] 3113// CHECK: ldnp x21, x29, [x2, #504] // encoding: [0x55,0xf4,0x5f,0xa8] 3114// CHECK: ldnp x22, x23, [x3, #-512] // encoding: [0x76,0x5c,0x60,0xa8] 3115// CHECK: ldnp x24, x25, [x4, #8] // encoding: [0x98,0xe4,0x40,0xa8] 3116 3117 ldnp s29, s28, [sp, #252] 3118 stnp s27, s26, [sp, #-256] 3119 ldnp s1, s2, [x3, #44] 3120// CHECK: ldnp s29, s28, [sp, #252] // encoding: [0xfd,0xf3,0x5f,0x2c] 3121// CHECK: stnp s27, s26, [sp, #-256] // encoding: [0xfb,0x6b,0x20,0x2c] 3122// CHECK: ldnp s1, s2, [x3, #44] // encoding: [0x61,0x88,0x45,0x2c] 3123 3124 stnp d3, d5, [x9, #504] 3125 stnp d7, d11, [x10, #-512] 3126 ldnp d2, d3, [x30, #-8] 3127// CHECK: stnp d3, d5, [x9, #504] // encoding: [0x23,0x95,0x1f,0x6c] 3128// CHECK: stnp d7, d11, [x10, #-512] // encoding: [0x47,0x2d,0x20,0x6c] 3129// CHECK: ldnp d2, d3, [x30, #-8] // encoding: [0xc2,0x8f,0x7f,0x6c] 3130 3131 stnp q3, q5, [sp] 3132 stnp q17, q19, [sp, #1008] 3133 ldnp q23, q29, [x1, #-1024] 3134// CHECK: stnp q3, q5, [sp] // encoding: [0xe3,0x17,0x00,0xac] 3135// CHECK: stnp q17, q19, [sp, #1008] // encoding: [0xf1,0xcf,0x1f,0xac] 3136// CHECK: ldnp q23, q29, [x1, #-1024] // encoding: [0x37,0x74,0x60,0xac] 3137 3138//------------------------------------------------------------------------------ 3139// Logical (immediate) 3140//------------------------------------------------------------------------------ 3141 // 32 bit replication-width 3142 orr w3, w9, #0xffff0000 3143 orr wsp, w10, #0xe00000ff 3144 orr w9, w10, #0x000003ff 3145// CHECK: orr w3, w9, #0xffff0000 // encoding: [0x23,0x3d,0x10,0x32] 3146// CHECK: orr wsp, w10, #0xe00000ff // encoding: [0x5f,0x29,0x03,0x32] 3147// CHECK: orr w9, w10, #0x3ff // encoding: [0x49,0x25,0x00,0x32] 3148 3149 // 16 bit replication width 3150 and w14, w15, #0x80008000 3151 and w12, w13, #0xffc3ffc3 3152 and w11, wzr, #0x00030003 3153// CHECK: and w14, w15, #0x80008000 // encoding: [0xee,0x81,0x01,0x12] 3154// CHECK: and w12, w13, #0xffc3ffc3 // encoding: [0xac,0xad,0x0a,0x12] 3155// CHECK: and w11, wzr, #0x30003 // encoding: [0xeb,0x87,0x00,0x12] 3156 3157 // 8 bit replication width 3158 eor w3, w6, #0xe0e0e0e0 3159 eor wsp, wzr, #0x03030303 3160 eor w16, w17, #0x81818181 3161// CHECK: eor w3, w6, #0xe0e0e0e0 // encoding: [0xc3,0xc8,0x03,0x52] 3162// CHECK: eor wsp, wzr, #0x3030303 // encoding: [0xff,0xc7,0x00,0x52] 3163// CHECK: eor w16, w17, #0x81818181 // encoding: [0x30,0xc6,0x01,0x52] 3164 3165 // 4 bit replication width 3166 ands wzr, w18, #0xcccccccc 3167 ands w19, w20, #0x33333333 3168 ands w21, w22, #0x99999999 3169// CHECK: ands wzr, w18, #0xcccccccc // encoding: [0x5f,0xe6,0x02,0x72] 3170// CHECK: ands w19, w20, #0x33333333 // encoding: [0x93,0xe6,0x00,0x72] 3171// CHECK: ands w21, w22, #0x99999999 // encoding: [0xd5,0xe6,0x01,0x72] 3172 3173 // 2 bit replication width 3174 tst w3, #0xaaaaaaaa 3175 tst wzr, #0x55555555 3176// CHECK: ands wzr, w3, #0xaaaaaaaa // encoding: [0x7f,0xf0,0x01,0x72] 3177// CHECK: ands wzr, wzr, #0x55555555 // encoding: [0xff,0xf3,0x00,0x72] 3178 3179 // 64 bit replication-width 3180 eor x3, x5, #0xffffffffc000000 3181 and x9, x10, #0x00007fffffffffff 3182 orr x11, x12, #0x8000000000000fff 3183// CHECK: eor x3, x5, #0xffffffffc000000 // encoding: [0xa3,0x84,0x66,0xd2] 3184// CHECK: and x9, x10, #0x7fffffffffff // encoding: [0x49,0xb9,0x40,0x92] 3185// CHECK: orr x11, x12, #0x8000000000000fff // encoding: [0x8b,0x31,0x41,0xb2] 3186 3187 // 32 bit replication-width 3188 orr x3, x9, #0xffff0000ffff0000 3189 orr sp, x10, #0xe00000ffe00000ff 3190 orr x9, x10, #0x000003ff000003ff 3191// CHECK: orr x3, x9, #0xffff0000ffff0000 // encoding: [0x23,0x3d,0x10,0xb2] 3192// CHECK: orr sp, x10, #0xe00000ffe00000ff // encoding: [0x5f,0x29,0x03,0xb2] 3193// CHECK: orr x9, x10, #0x3ff000003ff // encoding: [0x49,0x25,0x00,0xb2] 3194 3195 // 16 bit replication-width 3196 and x14, x15, #0x8000800080008000 3197 and x12, x13, #0xffc3ffc3ffc3ffc3 3198 and x11, xzr, #0x0003000300030003 3199// CHECK: and x14, x15, #0x8000800080008000 // encoding: [0xee,0x81,0x01,0x92] 3200// CHECK: and x12, x13, #0xffc3ffc3ffc3ffc3 // encoding: [0xac,0xad,0x0a,0x92] 3201// CHECK: and x11, xzr, #0x3000300030003 // encoding: [0xeb,0x87,0x00,0x92] 3202 3203 // 8 bit replication-width 3204 eor x3, x6, #0xe0e0e0e0e0e0e0e0 3205 eor sp, xzr, #0x0303030303030303 3206 eor x16, x17, #0x8181818181818181 3207// CHECK: eor x3, x6, #0xe0e0e0e0e0e0e0e0 // encoding: [0xc3,0xc8,0x03,0xd2] 3208// CHECK: eor sp, xzr, #0x303030303030303 // encoding: [0xff,0xc7,0x00,0xd2] 3209// CHECK: eor x16, x17, #0x8181818181818181 // encoding: [0x30,0xc6,0x01,0xd2] 3210 3211 // 4 bit replication-width 3212 ands xzr, x18, #0xcccccccccccccccc 3213 ands x19, x20, #0x3333333333333333 3214 ands x21, x22, #0x9999999999999999 3215// CHECK: ands xzr, x18, #0xcccccccccccccccc // encoding: [0x5f,0xe6,0x02,0xf2] 3216// CHECK: ands x19, x20, #0x3333333333333333 // encoding: [0x93,0xe6,0x00,0xf2] 3217// CHECK: ands x21, x22, #0x9999999999999999 // encoding: [0xd5,0xe6,0x01,0xf2] 3218 3219 // 2 bit replication-width 3220 tst x3, #0xaaaaaaaaaaaaaaaa 3221 tst xzr, #0x5555555555555555 3222// CHECK: ands xzr, x3, #0xaaaaaaaaaaaaaaaa // encoding: [0x7f,0xf0,0x01,0xf2] 3223// CHECK: ands xzr, xzr, #0x5555555555555555 // encoding: [0xff,0xf3,0x00,0xf2] 3224 3225 mov w3, #0xf000f 3226 mov x10, #0xaaaaaaaaaaaaaaaa 3227// CHECK: orr w3, wzr, #0xf000f // encoding: [0xe3,0x8f,0x00,0x32] 3228// CHECK: orr x10, xzr, #0xaaaaaaaaaaaaaaaa // encoding: [0xea,0xf3,0x01,0xb2] 3229 3230//------------------------------------------------------------------------------ 3231// Logical (shifted register) 3232//------------------------------------------------------------------------------ 3233 3234 and w12, w23, w21 3235 and w16, w15, w1, lsl #1 3236 and w9, w4, w10, lsl #31 3237 and w3, w30, w11, lsl #0 3238 and x3, x5, x7, lsl #63 3239// CHECK: and w12, w23, w21 // encoding: [0xec,0x02,0x15,0x0a] 3240// CHECK: and w16, w15, w1, lsl #1 // encoding: [0xf0,0x05,0x01,0x0a] 3241// CHECK: and w9, w4, w10, lsl #31 // encoding: [0x89,0x7c,0x0a,0x0a] 3242// CHECK: and w3, w30, w11 // encoding: [0xc3,0x03,0x0b,0x0a] 3243// CHECK: and x3, x5, x7, lsl #63 // encoding: [0xa3,0xfc,0x07,0x8a] 3244 3245 and x5, x14, x19, asr #4 3246 and w3, w17, w19, ror #31 3247 and w0, w2, wzr, lsr #17 3248 and w3, w30, w11, asr #0 3249// CHECK: and x5, x14, x19, asr #4 // encoding: [0xc5,0x11,0x93,0x8a] 3250// CHECK: and w3, w17, w19, ror #31 // encoding: [0x23,0x7e,0xd3,0x0a] 3251// CHECK: and w0, w2, wzr, lsr #17 // encoding: [0x40,0x44,0x5f,0x0a] 3252// CHECK: and w3, w30, w11, asr #0 // encoding: [0xc3,0x03,0x8b,0x0a] 3253 3254 and xzr, x4, x26, lsl #0 3255 and w3, wzr, w20, ror #0 3256 and x7, x20, xzr, asr #63 3257// CHECK: and xzr, x4, x26 // encoding: [0x9f,0x00,0x1a,0x8a] 3258// CHECK: and w3, wzr, w20, ror #0 // encoding: [0xe3,0x03,0xd4,0x0a] 3259// CHECK: and x7, x20, xzr, asr #63 // encoding: [0x87,0xfe,0x9f,0x8a] 3260 3261 bic x13, x20, x14, lsl #47 3262 bic w2, w7, w9 3263 orr w2, w7, w0, asr #31 3264 orr x8, x9, x10, lsl #12 3265 orn x3, x5, x7, asr #0 3266 orn w2, w5, w29 3267// CHECK: bic x13, x20, x14, lsl #47 // encoding: [0x8d,0xbe,0x2e,0x8a] 3268// CHECK: bic w2, w7, w9 // encoding: [0xe2,0x00,0x29,0x0a] 3269// CHECK: orr w2, w7, w0, asr #31 // encoding: [0xe2,0x7c,0x80,0x2a] 3270// CHECK: orr x8, x9, x10, lsl #12 // encoding: [0x28,0x31,0x0a,0xaa] 3271// CHECK: orn x3, x5, x7, asr #0 // encoding: [0xa3,0x00,0xa7,0xaa] 3272// CHECK: orn w2, w5, w29 // encoding: [0xa2,0x00,0x3d,0x2a] 3273 3274 ands w7, wzr, w9, lsl #1 3275 ands x3, x5, x20, ror #63 3276 bics w3, w5, w7, lsl #0 3277 bics x3, xzr, x3, lsl #1 3278// CHECK: ands w7, wzr, w9, lsl #1 // encoding: [0xe7,0x07,0x09,0x6a] 3279// CHECK: ands x3, x5, x20, ror #63 // encoding: [0xa3,0xfc,0xd4,0xea] 3280// CHECK: bics w3, w5, w7 // encoding: [0xa3,0x00,0x27,0x6a] 3281// CHECK: bics x3, xzr, x3, lsl #1 // encoding: [0xe3,0x07,0x23,0xea] 3282 3283 tst w3, w7, lsl #31 3284 tst x2, x20, asr #0 3285// CHECK: tst w3, w7, lsl #31 // encoding: [0x7f,0x7c,0x07,0x6a] 3286// CHECK: tst x2, x20, asr #0 // encoding: [0x5f,0x00,0x94,0xea] 3287 3288 mov x3, x6 3289 mov x3, xzr 3290 mov wzr, w2 3291 mov w3, w5 3292// CHECK: mov x3, x6 // encoding: [0xe3,0x03,0x06,0xaa] 3293// CHECK: mov x3, xzr // encoding: [0xe3,0x03,0x1f,0xaa] 3294// CHECK: mov wzr, w2 // encoding: [0xff,0x03,0x02,0x2a] 3295// CHECK: mov w3, w5 // encoding: [0xe3,0x03,0x05,0x2a] 3296 3297//------------------------------------------------------------------------------ 3298// Move wide (immediate) 3299//------------------------------------------------------------------------------ 3300 3301 movz w1, #65535, lsl #0 3302 movz w2, #0, lsl #16 3303 movn w2, #1234, lsl #0 3304// CHECK: movz w1, #65535 // encoding: [0xe1,0xff,0x9f,0x52] 3305// CHECK: movz w2, #0, lsl #16 // encoding: [0x02,0x00,0xa0,0x52] 3306// CHECK: movn w2, #1234 // encoding: [0x42,0x9a,0x80,0x12] 3307 3308 movz x2, #1234, lsl #32 3309 movk xzr, #4321, lsl #48 3310// CHECK: movz x2, #1234, lsl #32 // encoding: [0x42,0x9a,0xc0,0xd2] 3311// CHECK: movk xzr, #4321, lsl #48 // encoding: [0x3f,0x1c,0xe2,0xf2] 3312 3313 movz x2, #:abs_g0:sym 3314 movk w3, #:abs_g0_nc:sym 3315// CHECK: movz x2, #:abs_g0:sym // encoding: [0x02'A',A,0x80'A',0xd2'A'] 3316// CHECK-NEXT: // fixup A - offset: 0, value: :abs_g0:sym, kind: fixup_a64_movw_uabs_g0 3317// CHECK: movk w3, #:abs_g0_nc:sym // encoding: [0x03'A',A,0x80'A',0x72'A'] 3318// CHECK-NEXT: // fixup A - offset: 0, value: :abs_g0_nc:sym, kind: fixup_a64_movw_uabs_g0_nc 3319 3320 movz x4, #:abs_g1:sym 3321 movk w5, #:abs_g1_nc:sym 3322// CHECK: movz x4, #:abs_g1:sym // encoding: [0x04'A',A,0xa0'A',0xd2'A'] 3323// CHECK-NEXT: // fixup A - offset: 0, value: :abs_g1:sym, kind: fixup_a64_movw_uabs_g1 3324// CHECK: movk w5, #:abs_g1_nc:sym // encoding: [0x05'A',A,0xa0'A',0x72'A'] 3325// CHECK-NEXT: // fixup A - offset: 0, value: :abs_g1_nc:sym, kind: fixup_a64_movw_uabs_g1_nc 3326 3327 movz x6, #:abs_g2:sym 3328 movk x7, #:abs_g2_nc:sym 3329// CHECK: movz x6, #:abs_g2:sym // encoding: [0x06'A',A,0xc0'A',0xd2'A'] 3330// CHECK-NEXT: // fixup A - offset: 0, value: :abs_g2:sym, kind: fixup_a64_movw_uabs_g2 3331// CHECK: movk x7, #:abs_g2_nc:sym // encoding: [0x07'A',A,0xc0'A',0xf2'A'] 3332// CHECK-NEXT: // fixup A - offset: 0, value: :abs_g2_nc:sym, kind: fixup_a64_movw_uabs_g2_nc 3333 3334 movz x8, #:abs_g3:sym 3335 movk x9, #:abs_g3:sym 3336// CHECK: movz x8, #:abs_g3:sym // encoding: [0x08'A',A,0xe0'A',0xd2'A'] 3337// CHECK-NEXT: // fixup A - offset: 0, value: :abs_g3:sym, kind: fixup_a64_movw_uabs_g3 3338// CHECK: movk x9, #:abs_g3:sym // encoding: [0x09'A',A,0xe0'A',0xf2'A'] 3339// CHECK-NEXT: // fixup A - offset: 0, value: :abs_g3:sym, kind: fixup_a64_movw_uabs_g3 3340 3341 movn x30, #:abs_g0_s:sym 3342 movz x19, #:abs_g0_s:sym 3343 movn w10, #:abs_g0_s:sym 3344 movz w25, #:abs_g0_s:sym 3345// CHECK: movn x30, #:abs_g0_s:sym // encoding: [0x1e'A',A,0x80'A',0x92'A'] 3346// CHECK-NEXT: // fixup A - offset: 0, value: :abs_g0_s:sym, kind: fixup_a64_movw_sabs_g0 3347// CHECK: movz x19, #:abs_g0_s:sym // encoding: [0x13'A',A,0x80'A',0x92'A'] 3348// CHECK-NEXT: // fixup A - offset: 0, value: :abs_g0_s:sym, kind: fixup_a64_movw_sabs_g0 3349// CHECK: movn w10, #:abs_g0_s:sym // encoding: [0x0a'A',A,0x80'A',0x12'A'] 3350// CHECK-NEXT: // fixup A - offset: 0, value: :abs_g0_s:sym, kind: fixup_a64_movw_sabs_g0 3351// CHECK: movz w25, #:abs_g0_s:sym // encoding: [0x19'A',A,0x80'A',0x12'A'] 3352// CHECK-NEXT: // fixup A - offset: 0, value: :abs_g0_s:sym, kind: fixup_a64_movw_sabs_g0 3353 3354 movn x30, #:abs_g1_s:sym 3355 movz x19, #:abs_g1_s:sym 3356 movn w10, #:abs_g1_s:sym 3357 movz w25, #:abs_g1_s:sym 3358// CHECK: movn x30, #:abs_g1_s:sym // encoding: [0x1e'A',A,0xa0'A',0x92'A'] 3359// CHECK-NEXT: // fixup A - offset: 0, value: :abs_g1_s:sym, kind: fixup_a64_movw_sabs_g1 3360// CHECK: movz x19, #:abs_g1_s:sym // encoding: [0x13'A',A,0xa0'A',0x92'A'] 3361// CHECK-NEXT: // fixup A - offset: 0, value: :abs_g1_s:sym, kind: fixup_a64_movw_sabs_g1 3362// CHECK: movn w10, #:abs_g1_s:sym // encoding: [0x0a'A',A,0xa0'A',0x12'A'] 3363// CHECK-NEXT: // fixup A - offset: 0, value: :abs_g1_s:sym, kind: fixup_a64_movw_sabs_g1 3364// CHECK: movz w25, #:abs_g1_s:sym // encoding: [0x19'A',A,0xa0'A',0x12'A'] 3365// CHECK-NEXT: // fixup A - offset: 0, value: :abs_g1_s:sym, kind: fixup_a64_movw_sabs_g1 3366 3367 movn x30, #:abs_g2_s:sym 3368 movz x19, #:abs_g2_s:sym 3369// CHECK: movn x30, #:abs_g2_s:sym // encoding: [0x1e'A',A,0xc0'A',0x92'A'] 3370// CHECK-NEXT: // fixup A - offset: 0, value: :abs_g2_s:sym, kind: fixup_a64_movw_sabs_g2 3371// CHECK: movz x19, #:abs_g2_s:sym // encoding: [0x13'A',A,0xc0'A',0x92'A'] 3372// CHECK-NEXT: // fixup A - offset: 0, value: :abs_g2_s:sym, kind: fixup_a64_movw_sabs_g2 3373 3374//------------------------------------------------------------------------------ 3375// PC-relative addressing 3376//------------------------------------------------------------------------------ 3377 3378 adr x2, loc 3379 adr xzr, loc 3380 // CHECK: adr x2, loc // encoding: [0x02'A',A,A,0x10'A'] 3381 // CHECK: // fixup A - offset: 0, value: loc, kind: fixup_a64_adr_prel 3382 // CHECK: adr xzr, loc // encoding: [0x1f'A',A,A,0x10'A'] 3383 // CHECK: // fixup A - offset: 0, value: loc, kind: fixup_a64_adr_prel 3384 3385 adrp x29, loc 3386 // CHECK: adrp x29, loc // encoding: [0x1d'A',A,A,0x90'A'] 3387 // CHECK: // fixup A - offset: 0, value: loc, kind: fixup_a64_adr_prel_page 3388 3389 adrp x30, #4096 3390 adr x20, #0 3391 adr x9, #-1 3392 adr x5, #1048575 3393// CHECK: adrp x30, #4096 // encoding: [0x1e,0x00,0x00,0xb0] 3394// CHECK: adr x20, #0 // encoding: [0x14,0x00,0x00,0x10] 3395// CHECK: adr x9, #-1 // encoding: [0xe9,0xff,0xff,0x70] 3396// CHECK: adr x5, #1048575 // encoding: [0xe5,0xff,0x7f,0x70] 3397 3398 adr x9, #1048575 3399 adr x2, #-1048576 3400 adrp x9, #4294963200 3401 adrp x20, #-4294967296 3402// CHECK: adr x9, #1048575 // encoding: [0xe9,0xff,0x7f,0x70] 3403// CHECK: adr x2, #-1048576 // encoding: [0x02,0x00,0x80,0x10] 3404// CHECK: adrp x9, #4294963200 // encoding: [0xe9,0xff,0x7f,0xf0] 3405// CHECK: adrp x20, #-4294967296 // encoding: [0x14,0x00,0x80,0x90] 3406 3407//------------------------------------------------------------------------------ 3408// System 3409//------------------------------------------------------------------------------ 3410 3411 hint #0 3412 hint #127 3413// CHECK: nop // encoding: [0x1f,0x20,0x03,0xd5] 3414// CHECK: hint #127 // encoding: [0xff,0x2f,0x03,0xd5] 3415 3416 nop 3417 yield 3418 wfe 3419 wfi 3420 sev 3421 sevl 3422// CHECK: nop // encoding: [0x1f,0x20,0x03,0xd5] 3423// CHECK: yield // encoding: [0x3f,0x20,0x03,0xd5] 3424// CHECK: wfe // encoding: [0x5f,0x20,0x03,0xd5] 3425// CHECK: wfi // encoding: [0x7f,0x20,0x03,0xd5] 3426// CHECK: sev // encoding: [0x9f,0x20,0x03,0xd5] 3427// CHECK: sevl // encoding: [0xbf,0x20,0x03,0xd5] 3428 3429 clrex 3430 clrex #0 3431 clrex #7 3432 clrex #15 3433// CHECK: clrex // encoding: [0x5f,0x3f,0x03,0xd5] 3434// CHECK: clrex #0 // encoding: [0x5f,0x30,0x03,0xd5] 3435// CHECK: clrex #7 // encoding: [0x5f,0x37,0x03,0xd5] 3436// CHECK: clrex // encoding: [0x5f,0x3f,0x03,0xd5] 3437 3438 dsb #0 3439 dsb #12 3440 dsb #15 3441 dsb oshld 3442 dsb oshst 3443 dsb osh 3444 dsb nshld 3445 dsb nshst 3446 dsb nsh 3447 dsb ishld 3448 dsb ishst 3449 dsb ish 3450 dsb ld 3451 dsb st 3452 dsb sy 3453// CHECK: dsb #0 // encoding: [0x9f,0x30,0x03,0xd5] 3454// CHECK: dsb #12 // encoding: [0x9f,0x3c,0x03,0xd5] 3455// CHECK: dsb sy // encoding: [0x9f,0x3f,0x03,0xd5] 3456// CHECK: dsb oshld // encoding: [0x9f,0x31,0x03,0xd5] 3457// CHECK: dsb oshst // encoding: [0x9f,0x32,0x03,0xd5] 3458// CHECK: dsb osh // encoding: [0x9f,0x33,0x03,0xd5] 3459// CHECK: dsb nshld // encoding: [0x9f,0x35,0x03,0xd5] 3460// CHECK: dsb nshst // encoding: [0x9f,0x36,0x03,0xd5] 3461// CHECK: dsb nsh // encoding: [0x9f,0x37,0x03,0xd5] 3462// CHECK: dsb ishld // encoding: [0x9f,0x39,0x03,0xd5] 3463// CHECK: dsb ishst // encoding: [0x9f,0x3a,0x03,0xd5] 3464// CHECK: dsb ish // encoding: [0x9f,0x3b,0x03,0xd5] 3465// CHECK: dsb ld // encoding: [0x9f,0x3d,0x03,0xd5] 3466// CHECK: dsb st // encoding: [0x9f,0x3e,0x03,0xd5] 3467// CHECK: dsb sy // encoding: [0x9f,0x3f,0x03,0xd5] 3468 3469 dmb #0 3470 dmb #12 3471 dmb #15 3472 dmb oshld 3473 dmb oshst 3474 dmb osh 3475 dmb nshld 3476 dmb nshst 3477 dmb nsh 3478 dmb ishld 3479 dmb ishst 3480 dmb ish 3481 dmb ld 3482 dmb st 3483 dmb sy 3484// CHECK: dmb #0 // encoding: [0xbf,0x30,0x03,0xd5] 3485// CHECK: dmb #12 // encoding: [0xbf,0x3c,0x03,0xd5] 3486// CHECK: dmb sy // encoding: [0xbf,0x3f,0x03,0xd5] 3487// CHECK: dmb oshld // encoding: [0xbf,0x31,0x03,0xd5] 3488// CHECK: dmb oshst // encoding: [0xbf,0x32,0x03,0xd5] 3489// CHECK: dmb osh // encoding: [0xbf,0x33,0x03,0xd5] 3490// CHECK: dmb nshld // encoding: [0xbf,0x35,0x03,0xd5] 3491// CHECK: dmb nshst // encoding: [0xbf,0x36,0x03,0xd5] 3492// CHECK: dmb nsh // encoding: [0xbf,0x37,0x03,0xd5] 3493// CHECK: dmb ishld // encoding: [0xbf,0x39,0x03,0xd5] 3494// CHECK: dmb ishst // encoding: [0xbf,0x3a,0x03,0xd5] 3495// CHECK: dmb ish // encoding: [0xbf,0x3b,0x03,0xd5] 3496// CHECK: dmb ld // encoding: [0xbf,0x3d,0x03,0xd5] 3497// CHECK: dmb st // encoding: [0xbf,0x3e,0x03,0xd5] 3498// CHECK: dmb sy // encoding: [0xbf,0x3f,0x03,0xd5] 3499 3500 isb sy 3501 isb 3502 isb #12 3503// CHECK: isb // encoding: [0xdf,0x3f,0x03,0xd5] 3504// CHECK: isb // encoding: [0xdf,0x3f,0x03,0xd5] 3505// CHECK: isb #12 // encoding: [0xdf,0x3c,0x03,0xd5] 3506 3507 3508 msr spsel, #0 3509 msr daifset, #15 3510 msr daifclr, #12 3511// CHECK: msr spsel, #0 // encoding: [0xbf,0x40,0x00,0xd5] 3512// CHECK: msr daifset, #15 // encoding: [0xdf,0x4f,0x03,0xd5] 3513// CHECK: msr daifclr, #12 // encoding: [0xff,0x4c,0x03,0xd5] 3514 3515 sys #7, c5, c9, #7, x5 3516 sys #0, c15, c15, #2 3517// CHECK: sys #7, c5, c9, #7, x5 // encoding: [0xe5,0x59,0x0f,0xd5] 3518// CHECK: sys #0, c15, c15, #2, xzr // encoding: [0x5f,0xff,0x08,0xd5] 3519 3520 sysl x9, #7, c5, c9, #7 3521 sysl x1, #0, c15, c15, #2 3522// CHECK: sysl x9, #7, c5, c9, #7 // encoding: [0xe9,0x59,0x2f,0xd5] 3523// CHECK: sysl x1, #0, c15, c15, #2 // encoding: [0x41,0xff,0x28,0xd5] 3524 3525 ic ialluis 3526 ic iallu 3527 ic ivau, x9 3528// CHECK: ic ialluis // encoding: [0x1f,0x71,0x08,0xd5] 3529// CHECK: ic iallu // encoding: [0x1f,0x75,0x08,0xd5] 3530// CHECK: ic ivau, x9 // encoding: [0x29,0x75,0x0b,0xd5] 3531 3532 dc zva, x12 3533 dc ivac, xzr 3534 dc isw, x2 3535 dc cvac, x9 3536 dc csw, x10 3537 dc cvau, x0 3538 dc civac, x3 3539 dc cisw, x30 3540// CHECK: dc zva, x12 // encoding: [0x2c,0x74,0x0b,0xd5] 3541// CHECK: dc ivac, xzr // encoding: [0x3f,0x76,0x08,0xd5] 3542// CHECK: dc isw, x2 // encoding: [0x42,0x76,0x08,0xd5] 3543// CHECK: dc cvac, x9 // encoding: [0x29,0x7a,0x0b,0xd5] 3544// CHECK: dc csw, x10 // encoding: [0x4a,0x7a,0x08,0xd5] 3545// CHECK: dc cvau, x0 // encoding: [0x20,0x7b,0x0b,0xd5] 3546// CHECK: dc civac, x3 // encoding: [0x23,0x7e,0x0b,0xd5] 3547// CHECK: dc cisw, x30 // encoding: [0x5e,0x7e,0x08,0xd5] 3548 3549 at S1E1R, x19 3550 at S1E2R, x19 3551 at S1E3R, x19 3552 at S1E1W, x19 3553 at S1E2W, x19 3554 at S1E3W, x19 3555 at S1E0R, x19 3556 at S1E0W, x19 3557 at S12E1R, x20 3558 at S12E1W, x20 3559 at S12E0R, x20 3560 at S12E0W, x20 3561// CHECK: at s1e1r, x19 // encoding: [0x13,0x78,0x08,0xd5] 3562// CHECK: at s1e2r, x19 // encoding: [0x13,0x78,0x0c,0xd5] 3563// CHECK: at s1e3r, x19 // encoding: [0x13,0x78,0x0e,0xd5] 3564// CHECK: at s1e1w, x19 // encoding: [0x33,0x78,0x08,0xd5] 3565// CHECK: at s1e2w, x19 // encoding: [0x33,0x78,0x0c,0xd5] 3566// CHECK: at s1e3w, x19 // encoding: [0x33,0x78,0x0e,0xd5] 3567// CHECK: at s1e0r, x19 // encoding: [0x53,0x78,0x08,0xd5] 3568// CHECK: at s1e0w, x19 // encoding: [0x73,0x78,0x08,0xd5] 3569// CHECK: at s12e1r, x20 // encoding: [0x94,0x78,0x0c,0xd5] 3570// CHECK: at s12e1w, x20 // encoding: [0xb4,0x78,0x0c,0xd5] 3571// CHECK: at s12e0r, x20 // encoding: [0xd4,0x78,0x0c,0xd5] 3572// CHECK: at s12e0w, x20 // encoding: [0xf4,0x78,0x0c,0xd5] 3573 3574 tlbi IPAS2E1IS, x4 3575 tlbi IPAS2LE1IS, x9 3576 tlbi VMALLE1IS 3577 tlbi ALLE2IS 3578 tlbi ALLE3IS 3579 tlbi VAE1IS, x1 3580 tlbi VAE2IS, x2 3581 tlbi VAE3IS, x3 3582 tlbi ASIDE1IS, x5 3583 tlbi VAAE1IS, x9 3584 tlbi ALLE1IS 3585 tlbi VALE1IS, x10 3586 tlbi VALE2IS, x11 3587 tlbi VALE3IS, x13 3588 tlbi VMALLS12E1IS 3589 tlbi VAALE1IS, x14 3590 tlbi IPAS2E1, x15 3591 tlbi IPAS2LE1, x16 3592 tlbi VMALLE1 3593 tlbi ALLE2 3594 tlbi ALLE3 3595 tlbi VAE1, x17 3596 tlbi VAE2, x18 3597 tlbi VAE3, x19 3598 tlbi ASIDE1, x20 3599 tlbi VAAE1, x21 3600 tlbi ALLE1 3601 tlbi VALE1, x22 3602 tlbi VALE2, x23 3603 tlbi VALE3, x24 3604 tlbi VMALLS12E1 3605 tlbi VAALE1, x25 3606// CHECK: tlbi ipas2e1is, x4 // encoding: [0x24,0x80,0x0c,0xd5] 3607// CHECK: tlbi ipas2le1is, x9 // encoding: [0xa9,0x80,0x0c,0xd5] 3608// CHECK: tlbi vmalle1is // encoding: [0x1f,0x83,0x08,0xd5] 3609// CHECK: tlbi alle2is // encoding: [0x1f,0x83,0x0c,0xd5] 3610// CHECK: tlbi alle3is // encoding: [0x1f,0x83,0x0e,0xd5] 3611// CHECK: tlbi vae1is, x1 // encoding: [0x21,0x83,0x08,0xd5] 3612// CHECK: tlbi vae2is, x2 // encoding: [0x22,0x83,0x0c,0xd5] 3613// CHECK: tlbi vae3is, x3 // encoding: [0x23,0x83,0x0e,0xd5] 3614// CHECK: tlbi aside1is, x5 // encoding: [0x45,0x83,0x08,0xd5] 3615// CHECK: tlbi vaae1is, x9 // encoding: [0x69,0x83,0x08,0xd5] 3616// CHECK: tlbi alle1is // encoding: [0x9f,0x83,0x0c,0xd5] 3617// CHECK: tlbi vale1is, x10 // encoding: [0xaa,0x83,0x08,0xd5] 3618// CHECK: tlbi vale2is, x11 // encoding: [0xab,0x83,0x0c,0xd5] 3619// CHECK: tlbi vale3is, x13 // encoding: [0xad,0x83,0x0e,0xd5] 3620// CHECK: tlbi vmalls12e1is // encoding: [0xdf,0x83,0x0c,0xd5] 3621// CHECK: tlbi vaale1is, x14 // encoding: [0xee,0x83,0x08,0xd5] 3622// CHECK: tlbi ipas2e1, x15 // encoding: [0x2f,0x84,0x0c,0xd5] 3623// CHECK: tlbi ipas2le1, x16 // encoding: [0xb0,0x84,0x0c,0xd5] 3624// CHECK: tlbi vmalle1 // encoding: [0x1f,0x87,0x08,0xd5] 3625// CHECK: tlbi alle2 // encoding: [0x1f,0x87,0x0c,0xd5] 3626// CHECK: tlbi alle3 // encoding: [0x1f,0x87,0x0e,0xd5] 3627// CHECK: tlbi vae1, x17 // encoding: [0x31,0x87,0x08,0xd5] 3628// CHECK: tlbi vae2, x18 // encoding: [0x32,0x87,0x0c,0xd5] 3629// CHECK: tlbi vae3, x19 // encoding: [0x33,0x87,0x0e,0xd5] 3630// CHECK: tlbi aside1, x20 // encoding: [0x54,0x87,0x08,0xd5] 3631// CHECK: tlbi vaae1, x21 // encoding: [0x75,0x87,0x08,0xd5] 3632// CHECK: tlbi alle1 // encoding: [0x9f,0x87,0x0c,0xd5] 3633// CHECK: tlbi vale1, x22 // encoding: [0xb6,0x87,0x08,0xd5] 3634// CHECK: tlbi vale2, x23 // encoding: [0xb7,0x87,0x0c,0xd5] 3635// CHECK: tlbi vale3, x24 // encoding: [0xb8,0x87,0x0e,0xd5] 3636// CHECK: tlbi vmalls12e1 // encoding: [0xdf,0x87,0x0c,0xd5] 3637// CHECK: tlbi vaale1, x25 // encoding: [0xf9,0x87,0x08,0xd5] 3638 3639 msr TEECR32_EL1, x12 3640 msr OSDTRRX_EL1, x12 3641 msr MDCCINT_EL1, x12 3642 msr MDSCR_EL1, x12 3643 msr OSDTRTX_EL1, x12 3644 msr DBGDTR_EL0, x12 3645 msr DBGDTRTX_EL0, x12 3646 msr OSECCR_EL1, x12 3647 msr DBGVCR32_EL2, x12 3648 msr DBGBVR0_EL1, x12 3649 msr DBGBVR1_EL1, x12 3650 msr DBGBVR2_EL1, x12 3651 msr DBGBVR3_EL1, x12 3652 msr DBGBVR4_EL1, x12 3653 msr DBGBVR5_EL1, x12 3654 msr DBGBVR6_EL1, x12 3655 msr DBGBVR7_EL1, x12 3656 msr DBGBVR8_EL1, x12 3657 msr DBGBVR9_EL1, x12 3658 msr DBGBVR10_EL1, x12 3659 msr DBGBVR11_EL1, x12 3660 msr DBGBVR12_EL1, x12 3661 msr DBGBVR13_EL1, x12 3662 msr DBGBVR14_EL1, x12 3663 msr DBGBVR15_EL1, x12 3664 msr DBGBCR0_EL1, x12 3665 msr DBGBCR1_EL1, x12 3666 msr DBGBCR2_EL1, x12 3667 msr DBGBCR3_EL1, x12 3668 msr DBGBCR4_EL1, x12 3669 msr DBGBCR5_EL1, x12 3670 msr DBGBCR6_EL1, x12 3671 msr DBGBCR7_EL1, x12 3672 msr DBGBCR8_EL1, x12 3673 msr DBGBCR9_EL1, x12 3674 msr DBGBCR10_EL1, x12 3675 msr DBGBCR11_EL1, x12 3676 msr DBGBCR12_EL1, x12 3677 msr DBGBCR13_EL1, x12 3678 msr DBGBCR14_EL1, x12 3679 msr DBGBCR15_EL1, x12 3680 msr DBGWVR0_EL1, x12 3681 msr DBGWVR1_EL1, x12 3682 msr DBGWVR2_EL1, x12 3683 msr DBGWVR3_EL1, x12 3684 msr DBGWVR4_EL1, x12 3685 msr DBGWVR5_EL1, x12 3686 msr DBGWVR6_EL1, x12 3687 msr DBGWVR7_EL1, x12 3688 msr DBGWVR8_EL1, x12 3689 msr DBGWVR9_EL1, x12 3690 msr DBGWVR10_EL1, x12 3691 msr DBGWVR11_EL1, x12 3692 msr DBGWVR12_EL1, x12 3693 msr DBGWVR13_EL1, x12 3694 msr DBGWVR14_EL1, x12 3695 msr DBGWVR15_EL1, x12 3696 msr DBGWCR0_EL1, x12 3697 msr DBGWCR1_EL1, x12 3698 msr DBGWCR2_EL1, x12 3699 msr DBGWCR3_EL1, x12 3700 msr DBGWCR4_EL1, x12 3701 msr DBGWCR5_EL1, x12 3702 msr DBGWCR6_EL1, x12 3703 msr DBGWCR7_EL1, x12 3704 msr DBGWCR8_EL1, x12 3705 msr DBGWCR9_EL1, x12 3706 msr DBGWCR10_EL1, x12 3707 msr DBGWCR11_EL1, x12 3708 msr DBGWCR12_EL1, x12 3709 msr DBGWCR13_EL1, x12 3710 msr DBGWCR14_EL1, x12 3711 msr DBGWCR15_EL1, x12 3712 msr TEEHBR32_EL1, x12 3713 msr OSLAR_EL1, x12 3714 msr OSDLR_EL1, x12 3715 msr DBGPRCR_EL1, x12 3716 msr DBGCLAIMSET_EL1, x12 3717 msr DBGCLAIMCLR_EL1, x12 3718 msr CSSELR_EL1, x12 3719 msr VPIDR_EL2, x12 3720 msr VMPIDR_EL2, x12 3721 msr SCTLR_EL1, x12 3722 msr SCTLR_EL2, x12 3723 msr SCTLR_EL3, x12 3724 msr ACTLR_EL1, x12 3725 msr ACTLR_EL2, x12 3726 msr ACTLR_EL3, x12 3727 msr CPACR_EL1, x12 3728 msr HCR_EL2, x12 3729 msr SCR_EL3, x12 3730 msr MDCR_EL2, x12 3731 msr SDER32_EL3, x12 3732 msr CPTR_EL2, x12 3733 msr CPTR_EL3, x12 3734 msr HSTR_EL2, x12 3735 msr HACR_EL2, x12 3736 msr MDCR_EL3, x12 3737 msr TTBR0_EL1, x12 3738 msr TTBR0_EL2, x12 3739 msr TTBR0_EL3, x12 3740 msr TTBR1_EL1, x12 3741 msr TCR_EL1, x12 3742 msr TCR_EL2, x12 3743 msr TCR_EL3, x12 3744 msr VTTBR_EL2, x12 3745 msr VTCR_EL2, x12 3746 msr DACR32_EL2, x12 3747 msr SPSR_EL1, x12 3748 msr SPSR_EL2, x12 3749 msr SPSR_EL3, x12 3750 msr ELR_EL1, x12 3751 msr ELR_EL2, x12 3752 msr ELR_EL3, x12 3753 msr SP_EL0, x12 3754 msr SP_EL1, x12 3755 msr SP_EL2, x12 3756 msr SPSel, x12 3757 msr NZCV, x12 3758 msr DAIF, x12 3759 msr CurrentEL, x12 3760 msr SPSR_irq, x12 3761 msr SPSR_abt, x12 3762 msr SPSR_und, x12 3763 msr SPSR_fiq, x12 3764 msr FPCR, x12 3765 msr FPSR, x12 3766 msr DSPSR_EL0, x12 3767 msr DLR_EL0, x12 3768 msr IFSR32_EL2, x12 3769 msr AFSR0_EL1, x12 3770 msr AFSR0_EL2, x12 3771 msr AFSR0_EL3, x12 3772 msr AFSR1_EL1, x12 3773 msr AFSR1_EL2, x12 3774 msr AFSR1_EL3, x12 3775 msr ESR_EL1, x12 3776 msr ESR_EL2, x12 3777 msr ESR_EL3, x12 3778 msr FPEXC32_EL2, x12 3779 msr FAR_EL1, x12 3780 msr FAR_EL2, x12 3781 msr FAR_EL3, x12 3782 msr HPFAR_EL2, x12 3783 msr PAR_EL1, x12 3784 msr PMCR_EL0, x12 3785 msr PMCNTENSET_EL0, x12 3786 msr PMCNTENCLR_EL0, x12 3787 msr PMOVSCLR_EL0, x12 3788 msr PMSELR_EL0, x12 3789 msr PMCCNTR_EL0, x12 3790 msr PMXEVTYPER_EL0, x12 3791 msr PMXEVCNTR_EL0, x12 3792 msr PMUSERENR_EL0, x12 3793 msr PMINTENSET_EL1, x12 3794 msr PMINTENCLR_EL1, x12 3795 msr PMOVSSET_EL0, x12 3796 msr MAIR_EL1, x12 3797 msr MAIR_EL2, x12 3798 msr MAIR_EL3, x12 3799 msr AMAIR_EL1, x12 3800 msr AMAIR_EL2, x12 3801 msr AMAIR_EL3, x12 3802 msr VBAR_EL1, x12 3803 msr VBAR_EL2, x12 3804 msr VBAR_EL3, x12 3805 msr RMR_EL1, x12 3806 msr RMR_EL2, x12 3807 msr RMR_EL3, x12 3808 msr CONTEXTIDR_EL1, x12 3809 msr TPIDR_EL0, x12 3810 msr TPIDR_EL2, x12 3811 msr TPIDR_EL3, x12 3812 msr TPIDRRO_EL0, x12 3813 msr TPIDR_EL1, x12 3814 msr CNTFRQ_EL0, x12 3815 msr CNTVOFF_EL2, x12 3816 msr CNTKCTL_EL1, x12 3817 msr CNTHCTL_EL2, x12 3818 msr CNTP_TVAL_EL0, x12 3819 msr CNTHP_TVAL_EL2, x12 3820 msr CNTPS_TVAL_EL1, x12 3821 msr CNTP_CTL_EL0, x12 3822 msr CNTHP_CTL_EL2, x12 3823 msr CNTPS_CTL_EL1, x12 3824 msr CNTP_CVAL_EL0, x12 3825 msr CNTHP_CVAL_EL2, x12 3826 msr CNTPS_CVAL_EL1, x12 3827 msr CNTV_TVAL_EL0, x12 3828 msr CNTV_CTL_EL0, x12 3829 msr CNTV_CVAL_EL0, x12 3830 msr PMEVCNTR0_EL0, x12 3831 msr PMEVCNTR1_EL0, x12 3832 msr PMEVCNTR2_EL0, x12 3833 msr PMEVCNTR3_EL0, x12 3834 msr PMEVCNTR4_EL0, x12 3835 msr PMEVCNTR5_EL0, x12 3836 msr PMEVCNTR6_EL0, x12 3837 msr PMEVCNTR7_EL0, x12 3838 msr PMEVCNTR8_EL0, x12 3839 msr PMEVCNTR9_EL0, x12 3840 msr PMEVCNTR10_EL0, x12 3841 msr PMEVCNTR11_EL0, x12 3842 msr PMEVCNTR12_EL0, x12 3843 msr PMEVCNTR13_EL0, x12 3844 msr PMEVCNTR14_EL0, x12 3845 msr PMEVCNTR15_EL0, x12 3846 msr PMEVCNTR16_EL0, x12 3847 msr PMEVCNTR17_EL0, x12 3848 msr PMEVCNTR18_EL0, x12 3849 msr PMEVCNTR19_EL0, x12 3850 msr PMEVCNTR20_EL0, x12 3851 msr PMEVCNTR21_EL0, x12 3852 msr PMEVCNTR22_EL0, x12 3853 msr PMEVCNTR23_EL0, x12 3854 msr PMEVCNTR24_EL0, x12 3855 msr PMEVCNTR25_EL0, x12 3856 msr PMEVCNTR26_EL0, x12 3857 msr PMEVCNTR27_EL0, x12 3858 msr PMEVCNTR28_EL0, x12 3859 msr PMEVCNTR29_EL0, x12 3860 msr PMEVCNTR30_EL0, x12 3861 msr PMCCFILTR_EL0, x12 3862 msr PMEVTYPER0_EL0, x12 3863 msr PMEVTYPER1_EL0, x12 3864 msr PMEVTYPER2_EL0, x12 3865 msr PMEVTYPER3_EL0, x12 3866 msr PMEVTYPER4_EL0, x12 3867 msr PMEVTYPER5_EL0, x12 3868 msr PMEVTYPER6_EL0, x12 3869 msr PMEVTYPER7_EL0, x12 3870 msr PMEVTYPER8_EL0, x12 3871 msr PMEVTYPER9_EL0, x12 3872 msr PMEVTYPER10_EL0, x12 3873 msr PMEVTYPER11_EL0, x12 3874 msr PMEVTYPER12_EL0, x12 3875 msr PMEVTYPER13_EL0, x12 3876 msr PMEVTYPER14_EL0, x12 3877 msr PMEVTYPER15_EL0, x12 3878 msr PMEVTYPER16_EL0, x12 3879 msr PMEVTYPER17_EL0, x12 3880 msr PMEVTYPER18_EL0, x12 3881 msr PMEVTYPER19_EL0, x12 3882 msr PMEVTYPER20_EL0, x12 3883 msr PMEVTYPER21_EL0, x12 3884 msr PMEVTYPER22_EL0, x12 3885 msr PMEVTYPER23_EL0, x12 3886 msr PMEVTYPER24_EL0, x12 3887 msr PMEVTYPER25_EL0, x12 3888 msr PMEVTYPER26_EL0, x12 3889 msr PMEVTYPER27_EL0, x12 3890 msr PMEVTYPER28_EL0, x12 3891 msr PMEVTYPER29_EL0, x12 3892 msr PMEVTYPER30_EL0, x12 3893// CHECK: msr teecr32_el1, x12 // encoding: [0x0c,0x00,0x12,0xd5] 3894// CHECK: msr osdtrrx_el1, x12 // encoding: [0x4c,0x00,0x10,0xd5] 3895// CHECK: msr mdccint_el1, x12 // encoding: [0x0c,0x02,0x10,0xd5] 3896// CHECK: msr mdscr_el1, x12 // encoding: [0x4c,0x02,0x10,0xd5] 3897// CHECK: msr osdtrtx_el1, x12 // encoding: [0x4c,0x03,0x10,0xd5] 3898// CHECK: msr dbgdtr_el0, x12 // encoding: [0x0c,0x04,0x13,0xd5] 3899// CHECK: msr dbgdtrtx_el0, x12 // encoding: [0x0c,0x05,0x13,0xd5] 3900// CHECK: msr oseccr_el1, x12 // encoding: [0x4c,0x06,0x10,0xd5] 3901// CHECK: msr dbgvcr32_el2, x12 // encoding: [0x0c,0x07,0x14,0xd5] 3902// CHECK: msr dbgbvr0_el1, x12 // encoding: [0x8c,0x00,0x10,0xd5] 3903// CHECK: msr dbgbvr1_el1, x12 // encoding: [0x8c,0x01,0x10,0xd5] 3904// CHECK: msr dbgbvr2_el1, x12 // encoding: [0x8c,0x02,0x10,0xd5] 3905// CHECK: msr dbgbvr3_el1, x12 // encoding: [0x8c,0x03,0x10,0xd5] 3906// CHECK: msr dbgbvr4_el1, x12 // encoding: [0x8c,0x04,0x10,0xd5] 3907// CHECK: msr dbgbvr5_el1, x12 // encoding: [0x8c,0x05,0x10,0xd5] 3908// CHECK: msr dbgbvr6_el1, x12 // encoding: [0x8c,0x06,0x10,0xd5] 3909// CHECK: msr dbgbvr7_el1, x12 // encoding: [0x8c,0x07,0x10,0xd5] 3910// CHECK: msr dbgbvr8_el1, x12 // encoding: [0x8c,0x08,0x10,0xd5] 3911// CHECK: msr dbgbvr9_el1, x12 // encoding: [0x8c,0x09,0x10,0xd5] 3912// CHECK: msr dbgbvr10_el1, x12 // encoding: [0x8c,0x0a,0x10,0xd5] 3913// CHECK: msr dbgbvr11_el1, x12 // encoding: [0x8c,0x0b,0x10,0xd5] 3914// CHECK: msr dbgbvr12_el1, x12 // encoding: [0x8c,0x0c,0x10,0xd5] 3915// CHECK: msr dbgbvr13_el1, x12 // encoding: [0x8c,0x0d,0x10,0xd5] 3916// CHECK: msr dbgbvr14_el1, x12 // encoding: [0x8c,0x0e,0x10,0xd5] 3917// CHECK: msr dbgbvr15_el1, x12 // encoding: [0x8c,0x0f,0x10,0xd5] 3918// CHECK: msr dbgbcr0_el1, x12 // encoding: [0xac,0x00,0x10,0xd5] 3919// CHECK: msr dbgbcr1_el1, x12 // encoding: [0xac,0x01,0x10,0xd5] 3920// CHECK: msr dbgbcr2_el1, x12 // encoding: [0xac,0x02,0x10,0xd5] 3921// CHECK: msr dbgbcr3_el1, x12 // encoding: [0xac,0x03,0x10,0xd5] 3922// CHECK: msr dbgbcr4_el1, x12 // encoding: [0xac,0x04,0x10,0xd5] 3923// CHECK: msr dbgbcr5_el1, x12 // encoding: [0xac,0x05,0x10,0xd5] 3924// CHECK: msr dbgbcr6_el1, x12 // encoding: [0xac,0x06,0x10,0xd5] 3925// CHECK: msr dbgbcr7_el1, x12 // encoding: [0xac,0x07,0x10,0xd5] 3926// CHECK: msr dbgbcr8_el1, x12 // encoding: [0xac,0x08,0x10,0xd5] 3927// CHECK: msr dbgbcr9_el1, x12 // encoding: [0xac,0x09,0x10,0xd5] 3928// CHECK: msr dbgbcr10_el1, x12 // encoding: [0xac,0x0a,0x10,0xd5] 3929// CHECK: msr dbgbcr11_el1, x12 // encoding: [0xac,0x0b,0x10,0xd5] 3930// CHECK: msr dbgbcr12_el1, x12 // encoding: [0xac,0x0c,0x10,0xd5] 3931// CHECK: msr dbgbcr13_el1, x12 // encoding: [0xac,0x0d,0x10,0xd5] 3932// CHECK: msr dbgbcr14_el1, x12 // encoding: [0xac,0x0e,0x10,0xd5] 3933// CHECK: msr dbgbcr15_el1, x12 // encoding: [0xac,0x0f,0x10,0xd5] 3934// CHECK: msr dbgwvr0_el1, x12 // encoding: [0xcc,0x00,0x10,0xd5] 3935// CHECK: msr dbgwvr1_el1, x12 // encoding: [0xcc,0x01,0x10,0xd5] 3936// CHECK: msr dbgwvr2_el1, x12 // encoding: [0xcc,0x02,0x10,0xd5] 3937// CHECK: msr dbgwvr3_el1, x12 // encoding: [0xcc,0x03,0x10,0xd5] 3938// CHECK: msr dbgwvr4_el1, x12 // encoding: [0xcc,0x04,0x10,0xd5] 3939// CHECK: msr dbgwvr5_el1, x12 // encoding: [0xcc,0x05,0x10,0xd5] 3940// CHECK: msr dbgwvr6_el1, x12 // encoding: [0xcc,0x06,0x10,0xd5] 3941// CHECK: msr dbgwvr7_el1, x12 // encoding: [0xcc,0x07,0x10,0xd5] 3942// CHECK: msr dbgwvr8_el1, x12 // encoding: [0xcc,0x08,0x10,0xd5] 3943// CHECK: msr dbgwvr9_el1, x12 // encoding: [0xcc,0x09,0x10,0xd5] 3944// CHECK: msr dbgwvr10_el1, x12 // encoding: [0xcc,0x0a,0x10,0xd5] 3945// CHECK: msr dbgwvr11_el1, x12 // encoding: [0xcc,0x0b,0x10,0xd5] 3946// CHECK: msr dbgwvr12_el1, x12 // encoding: [0xcc,0x0c,0x10,0xd5] 3947// CHECK: msr dbgwvr13_el1, x12 // encoding: [0xcc,0x0d,0x10,0xd5] 3948// CHECK: msr dbgwvr14_el1, x12 // encoding: [0xcc,0x0e,0x10,0xd5] 3949// CHECK: msr dbgwvr15_el1, x12 // encoding: [0xcc,0x0f,0x10,0xd5] 3950// CHECK: msr dbgwcr0_el1, x12 // encoding: [0xec,0x00,0x10,0xd5] 3951// CHECK: msr dbgwcr1_el1, x12 // encoding: [0xec,0x01,0x10,0xd5] 3952// CHECK: msr dbgwcr2_el1, x12 // encoding: [0xec,0x02,0x10,0xd5] 3953// CHECK: msr dbgwcr3_el1, x12 // encoding: [0xec,0x03,0x10,0xd5] 3954// CHECK: msr dbgwcr4_el1, x12 // encoding: [0xec,0x04,0x10,0xd5] 3955// CHECK: msr dbgwcr5_el1, x12 // encoding: [0xec,0x05,0x10,0xd5] 3956// CHECK: msr dbgwcr6_el1, x12 // encoding: [0xec,0x06,0x10,0xd5] 3957// CHECK: msr dbgwcr7_el1, x12 // encoding: [0xec,0x07,0x10,0xd5] 3958// CHECK: msr dbgwcr8_el1, x12 // encoding: [0xec,0x08,0x10,0xd5] 3959// CHECK: msr dbgwcr9_el1, x12 // encoding: [0xec,0x09,0x10,0xd5] 3960// CHECK: msr dbgwcr10_el1, x12 // encoding: [0xec,0x0a,0x10,0xd5] 3961// CHECK: msr dbgwcr11_el1, x12 // encoding: [0xec,0x0b,0x10,0xd5] 3962// CHECK: msr dbgwcr12_el1, x12 // encoding: [0xec,0x0c,0x10,0xd5] 3963// CHECK: msr dbgwcr13_el1, x12 // encoding: [0xec,0x0d,0x10,0xd5] 3964// CHECK: msr dbgwcr14_el1, x12 // encoding: [0xec,0x0e,0x10,0xd5] 3965// CHECK: msr dbgwcr15_el1, x12 // encoding: [0xec,0x0f,0x10,0xd5] 3966// CHECK: msr teehbr32_el1, x12 // encoding: [0x0c,0x10,0x12,0xd5] 3967// CHECK: msr oslar_el1, x12 // encoding: [0x8c,0x10,0x10,0xd5] 3968// CHECK: msr osdlr_el1, x12 // encoding: [0x8c,0x13,0x10,0xd5] 3969// CHECK: msr dbgprcr_el1, x12 // encoding: [0x8c,0x14,0x10,0xd5] 3970// CHECK: msr dbgclaimset_el1, x12 // encoding: [0xcc,0x78,0x10,0xd5] 3971// CHECK: msr dbgclaimclr_el1, x12 // encoding: [0xcc,0x79,0x10,0xd5] 3972// CHECK: msr csselr_el1, x12 // encoding: [0x0c,0x00,0x1a,0xd5] 3973// CHECK: msr vpidr_el2, x12 // encoding: [0x0c,0x00,0x1c,0xd5] 3974// CHECK: msr vmpidr_el2, x12 // encoding: [0xac,0x00,0x1c,0xd5] 3975// CHECK: msr sctlr_el1, x12 // encoding: [0x0c,0x10,0x18,0xd5] 3976// CHECK: msr sctlr_el2, x12 // encoding: [0x0c,0x10,0x1c,0xd5] 3977// CHECK: msr sctlr_el3, x12 // encoding: [0x0c,0x10,0x1e,0xd5] 3978// CHECK: msr actlr_el1, x12 // encoding: [0x2c,0x10,0x18,0xd5] 3979// CHECK: msr actlr_el2, x12 // encoding: [0x2c,0x10,0x1c,0xd5] 3980// CHECK: msr actlr_el3, x12 // encoding: [0x2c,0x10,0x1e,0xd5] 3981// CHECK: msr cpacr_el1, x12 // encoding: [0x4c,0x10,0x18,0xd5] 3982// CHECK: msr hcr_el2, x12 // encoding: [0x0c,0x11,0x1c,0xd5] 3983// CHECK: msr scr_el3, x12 // encoding: [0x0c,0x11,0x1e,0xd5] 3984// CHECK: msr mdcr_el2, x12 // encoding: [0x2c,0x11,0x1c,0xd5] 3985// CHECK: msr sder32_el3, x12 // encoding: [0x2c,0x11,0x1e,0xd5] 3986// CHECK: msr cptr_el2, x12 // encoding: [0x4c,0x11,0x1c,0xd5] 3987// CHECK: msr cptr_el3, x12 // encoding: [0x4c,0x11,0x1e,0xd5] 3988// CHECK: msr hstr_el2, x12 // encoding: [0x6c,0x11,0x1c,0xd5] 3989// CHECK: msr hacr_el2, x12 // encoding: [0xec,0x11,0x1c,0xd5] 3990// CHECK: msr mdcr_el3, x12 // encoding: [0x2c,0x13,0x1e,0xd5] 3991// CHECK: msr ttbr0_el1, x12 // encoding: [0x0c,0x20,0x18,0xd5] 3992// CHECK: msr ttbr0_el2, x12 // encoding: [0x0c,0x20,0x1c,0xd5] 3993// CHECK: msr ttbr0_el3, x12 // encoding: [0x0c,0x20,0x1e,0xd5] 3994// CHECK: msr ttbr1_el1, x12 // encoding: [0x2c,0x20,0x18,0xd5] 3995// CHECK: msr tcr_el1, x12 // encoding: [0x4c,0x20,0x18,0xd5] 3996// CHECK: msr tcr_el2, x12 // encoding: [0x4c,0x20,0x1c,0xd5] 3997// CHECK: msr tcr_el3, x12 // encoding: [0x4c,0x20,0x1e,0xd5] 3998// CHECK: msr vttbr_el2, x12 // encoding: [0x0c,0x21,0x1c,0xd5] 3999// CHECK: msr vtcr_el2, x12 // encoding: [0x4c,0x21,0x1c,0xd5] 4000// CHECK: msr dacr32_el2, x12 // encoding: [0x0c,0x30,0x1c,0xd5] 4001// CHECK: msr spsr_el1, x12 // encoding: [0x0c,0x40,0x18,0xd5] 4002// CHECK: msr spsr_el2, x12 // encoding: [0x0c,0x40,0x1c,0xd5] 4003// CHECK: msr spsr_el3, x12 // encoding: [0x0c,0x40,0x1e,0xd5] 4004// CHECK: msr elr_el1, x12 // encoding: [0x2c,0x40,0x18,0xd5] 4005// CHECK: msr elr_el2, x12 // encoding: [0x2c,0x40,0x1c,0xd5] 4006// CHECK: msr elr_el3, x12 // encoding: [0x2c,0x40,0x1e,0xd5] 4007// CHECK: msr sp_el0, x12 // encoding: [0x0c,0x41,0x18,0xd5] 4008// CHECK: msr sp_el1, x12 // encoding: [0x0c,0x41,0x1c,0xd5] 4009// CHECK: msr sp_el2, x12 // encoding: [0x0c,0x41,0x1e,0xd5] 4010// CHECK: msr spsel, x12 // encoding: [0x0c,0x42,0x18,0xd5] 4011// CHECK: msr nzcv, x12 // encoding: [0x0c,0x42,0x1b,0xd5] 4012// CHECK: msr daif, x12 // encoding: [0x2c,0x42,0x1b,0xd5] 4013// CHECK: msr currentel, x12 // encoding: [0x4c,0x42,0x18,0xd5] 4014// CHECK: msr spsr_irq, x12 // encoding: [0x0c,0x43,0x1c,0xd5] 4015// CHECK: msr spsr_abt, x12 // encoding: [0x2c,0x43,0x1c,0xd5] 4016// CHECK: msr spsr_und, x12 // encoding: [0x4c,0x43,0x1c,0xd5] 4017// CHECK: msr spsr_fiq, x12 // encoding: [0x6c,0x43,0x1c,0xd5] 4018// CHECK: msr fpcr, x12 // encoding: [0x0c,0x44,0x1b,0xd5] 4019// CHECK: msr fpsr, x12 // encoding: [0x2c,0x44,0x1b,0xd5] 4020// CHECK: msr dspsr_el0, x12 // encoding: [0x0c,0x45,0x1b,0xd5] 4021// CHECK: msr dlr_el0, x12 // encoding: [0x2c,0x45,0x1b,0xd5] 4022// CHECK: msr ifsr32_el2, x12 // encoding: [0x2c,0x50,0x1c,0xd5] 4023// CHECK: msr afsr0_el1, x12 // encoding: [0x0c,0x51,0x18,0xd5] 4024// CHECK: msr afsr0_el2, x12 // encoding: [0x0c,0x51,0x1c,0xd5] 4025// CHECK: msr afsr0_el3, x12 // encoding: [0x0c,0x51,0x1e,0xd5] 4026// CHECK: msr afsr1_el1, x12 // encoding: [0x2c,0x51,0x18,0xd5] 4027// CHECK: msr afsr1_el2, x12 // encoding: [0x2c,0x51,0x1c,0xd5] 4028// CHECK: msr afsr1_el3, x12 // encoding: [0x2c,0x51,0x1e,0xd5] 4029// CHECK: msr esr_el1, x12 // encoding: [0x0c,0x52,0x18,0xd5] 4030// CHECK: msr esr_el2, x12 // encoding: [0x0c,0x52,0x1c,0xd5] 4031// CHECK: msr esr_el3, x12 // encoding: [0x0c,0x52,0x1e,0xd5] 4032// CHECK: msr fpexc32_el2, x12 // encoding: [0x0c,0x53,0x1c,0xd5] 4033// CHECK: msr far_el1, x12 // encoding: [0x0c,0x60,0x18,0xd5] 4034// CHECK: msr far_el2, x12 // encoding: [0x0c,0x60,0x1c,0xd5] 4035// CHECK: msr far_el3, x12 // encoding: [0x0c,0x60,0x1e,0xd5] 4036// CHECK: msr hpfar_el2, x12 // encoding: [0x8c,0x60,0x1c,0xd5] 4037// CHECK: msr par_el1, x12 // encoding: [0x0c,0x74,0x18,0xd5] 4038// CHECK: msr pmcr_el0, x12 // encoding: [0x0c,0x9c,0x1b,0xd5] 4039// CHECK: msr pmcntenset_el0, x12 // encoding: [0x2c,0x9c,0x1b,0xd5] 4040// CHECK: msr pmcntenclr_el0, x12 // encoding: [0x4c,0x9c,0x1b,0xd5] 4041// CHECK: msr pmovsclr_el0, x12 // encoding: [0x6c,0x9c,0x1b,0xd5] 4042// CHECK: msr pmselr_el0, x12 // encoding: [0xac,0x9c,0x1b,0xd5] 4043// CHECK: msr pmccntr_el0, x12 // encoding: [0x0c,0x9d,0x1b,0xd5] 4044// CHECK: msr pmxevtyper_el0, x12 // encoding: [0x2c,0x9d,0x1b,0xd5] 4045// CHECK: msr pmxevcntr_el0, x12 // encoding: [0x4c,0x9d,0x1b,0xd5] 4046// CHECK: msr pmuserenr_el0, x12 // encoding: [0x0c,0x9e,0x1b,0xd5] 4047// CHECK: msr pmintenset_el1, x12 // encoding: [0x2c,0x9e,0x18,0xd5] 4048// CHECK: msr pmintenclr_el1, x12 // encoding: [0x4c,0x9e,0x18,0xd5] 4049// CHECK: msr pmovsset_el0, x12 // encoding: [0x6c,0x9e,0x1b,0xd5] 4050// CHECK: msr mair_el1, x12 // encoding: [0x0c,0xa2,0x18,0xd5] 4051// CHECK: msr mair_el2, x12 // encoding: [0x0c,0xa2,0x1c,0xd5] 4052// CHECK: msr mair_el3, x12 // encoding: [0x0c,0xa2,0x1e,0xd5] 4053// CHECK: msr amair_el1, x12 // encoding: [0x0c,0xa3,0x18,0xd5] 4054// CHECK: msr amair_el2, x12 // encoding: [0x0c,0xa3,0x1c,0xd5] 4055// CHECK: msr amair_el3, x12 // encoding: [0x0c,0xa3,0x1e,0xd5] 4056// CHECK: msr vbar_el1, x12 // encoding: [0x0c,0xc0,0x18,0xd5] 4057// CHECK: msr vbar_el2, x12 // encoding: [0x0c,0xc0,0x1c,0xd5] 4058// CHECK: msr vbar_el3, x12 // encoding: [0x0c,0xc0,0x1e,0xd5] 4059// CHECK: msr rmr_el1, x12 // encoding: [0x4c,0xc0,0x18,0xd5] 4060// CHECK: msr rmr_el2, x12 // encoding: [0x4c,0xc0,0x1c,0xd5] 4061// CHECK: msr rmr_el3, x12 // encoding: [0x4c,0xc0,0x1e,0xd5] 4062// CHECK: msr contextidr_el1, x12 // encoding: [0x2c,0xd0,0x18,0xd5] 4063// CHECK: msr tpidr_el0, x12 // encoding: [0x4c,0xd0,0x1b,0xd5] 4064// CHECK: msr tpidr_el2, x12 // encoding: [0x4c,0xd0,0x1c,0xd5] 4065// CHECK: msr tpidr_el3, x12 // encoding: [0x4c,0xd0,0x1e,0xd5] 4066// CHECK: msr tpidrro_el0, x12 // encoding: [0x6c,0xd0,0x1b,0xd5] 4067// CHECK: msr tpidr_el1, x12 // encoding: [0x8c,0xd0,0x18,0xd5] 4068// CHECK: msr cntfrq_el0, x12 // encoding: [0x0c,0xe0,0x1b,0xd5] 4069// CHECK: msr cntvoff_el2, x12 // encoding: [0x6c,0xe0,0x1c,0xd5] 4070// CHECK: msr cntkctl_el1, x12 // encoding: [0x0c,0xe1,0x18,0xd5] 4071// CHECK: msr cnthctl_el2, x12 // encoding: [0x0c,0xe1,0x1c,0xd5] 4072// CHECK: msr cntp_tval_el0, x12 // encoding: [0x0c,0xe2,0x1b,0xd5] 4073// CHECK: msr cnthp_tval_el2, x12 // encoding: [0x0c,0xe2,0x1c,0xd5] 4074// CHECK: msr cntps_tval_el1, x12 // encoding: [0x0c,0xe2,0x1f,0xd5] 4075// CHECK: msr cntp_ctl_el0, x12 // encoding: [0x2c,0xe2,0x1b,0xd5] 4076// CHECK: msr cnthp_ctl_el2, x12 // encoding: [0x2c,0xe2,0x1c,0xd5] 4077// CHECK: msr cntps_ctl_el1, x12 // encoding: [0x2c,0xe2,0x1f,0xd5] 4078// CHECK: msr cntp_cval_el0, x12 // encoding: [0x4c,0xe2,0x1b,0xd5] 4079// CHECK: msr cnthp_cval_el2, x12 // encoding: [0x4c,0xe2,0x1c,0xd5] 4080// CHECK: msr cntps_cval_el1, x12 // encoding: [0x4c,0xe2,0x1f,0xd5] 4081// CHECK: msr cntv_tval_el0, x12 // encoding: [0x0c,0xe3,0x1b,0xd5] 4082// CHECK: msr cntv_ctl_el0, x12 // encoding: [0x2c,0xe3,0x1b,0xd5] 4083// CHECK: msr cntv_cval_el0, x12 // encoding: [0x4c,0xe3,0x1b,0xd5] 4084// CHECK: msr pmevcntr0_el0, x12 // encoding: [0x0c,0xe8,0x1b,0xd5] 4085// CHECK: msr pmevcntr1_el0, x12 // encoding: [0x2c,0xe8,0x1b,0xd5] 4086// CHECK: msr pmevcntr2_el0, x12 // encoding: [0x4c,0xe8,0x1b,0xd5] 4087// CHECK: msr pmevcntr3_el0, x12 // encoding: [0x6c,0xe8,0x1b,0xd5] 4088// CHECK: msr pmevcntr4_el0, x12 // encoding: [0x8c,0xe8,0x1b,0xd5] 4089// CHECK: msr pmevcntr5_el0, x12 // encoding: [0xac,0xe8,0x1b,0xd5] 4090// CHECK: msr pmevcntr6_el0, x12 // encoding: [0xcc,0xe8,0x1b,0xd5] 4091// CHECK: msr pmevcntr7_el0, x12 // encoding: [0xec,0xe8,0x1b,0xd5] 4092// CHECK: msr pmevcntr8_el0, x12 // encoding: [0x0c,0xe9,0x1b,0xd5] 4093// CHECK: msr pmevcntr9_el0, x12 // encoding: [0x2c,0xe9,0x1b,0xd5] 4094// CHECK: msr pmevcntr10_el0, x12 // encoding: [0x4c,0xe9,0x1b,0xd5] 4095// CHECK: msr pmevcntr11_el0, x12 // encoding: [0x6c,0xe9,0x1b,0xd5] 4096// CHECK: msr pmevcntr12_el0, x12 // encoding: [0x8c,0xe9,0x1b,0xd5] 4097// CHECK: msr pmevcntr13_el0, x12 // encoding: [0xac,0xe9,0x1b,0xd5] 4098// CHECK: msr pmevcntr14_el0, x12 // encoding: [0xcc,0xe9,0x1b,0xd5] 4099// CHECK: msr pmevcntr15_el0, x12 // encoding: [0xec,0xe9,0x1b,0xd5] 4100// CHECK: msr pmevcntr16_el0, x12 // encoding: [0x0c,0xea,0x1b,0xd5] 4101// CHECK: msr pmevcntr17_el0, x12 // encoding: [0x2c,0xea,0x1b,0xd5] 4102// CHECK: msr pmevcntr18_el0, x12 // encoding: [0x4c,0xea,0x1b,0xd5] 4103// CHECK: msr pmevcntr19_el0, x12 // encoding: [0x6c,0xea,0x1b,0xd5] 4104// CHECK: msr pmevcntr20_el0, x12 // encoding: [0x8c,0xea,0x1b,0xd5] 4105// CHECK: msr pmevcntr21_el0, x12 // encoding: [0xac,0xea,0x1b,0xd5] 4106// CHECK: msr pmevcntr22_el0, x12 // encoding: [0xcc,0xea,0x1b,0xd5] 4107// CHECK: msr pmevcntr23_el0, x12 // encoding: [0xec,0xea,0x1b,0xd5] 4108// CHECK: msr pmevcntr24_el0, x12 // encoding: [0x0c,0xeb,0x1b,0xd5] 4109// CHECK: msr pmevcntr25_el0, x12 // encoding: [0x2c,0xeb,0x1b,0xd5] 4110// CHECK: msr pmevcntr26_el0, x12 // encoding: [0x4c,0xeb,0x1b,0xd5] 4111// CHECK: msr pmevcntr27_el0, x12 // encoding: [0x6c,0xeb,0x1b,0xd5] 4112// CHECK: msr pmevcntr28_el0, x12 // encoding: [0x8c,0xeb,0x1b,0xd5] 4113// CHECK: msr pmevcntr29_el0, x12 // encoding: [0xac,0xeb,0x1b,0xd5] 4114// CHECK: msr pmevcntr30_el0, x12 // encoding: [0xcc,0xeb,0x1b,0xd5] 4115// CHECK: msr pmccfiltr_el0, x12 // encoding: [0xec,0xef,0x1b,0xd5] 4116// CHECK: msr pmevtyper0_el0, x12 // encoding: [0x0c,0xec,0x1b,0xd5] 4117// CHECK: msr pmevtyper1_el0, x12 // encoding: [0x2c,0xec,0x1b,0xd5] 4118// CHECK: msr pmevtyper2_el0, x12 // encoding: [0x4c,0xec,0x1b,0xd5] 4119// CHECK: msr pmevtyper3_el0, x12 // encoding: [0x6c,0xec,0x1b,0xd5] 4120// CHECK: msr pmevtyper4_el0, x12 // encoding: [0x8c,0xec,0x1b,0xd5] 4121// CHECK: msr pmevtyper5_el0, x12 // encoding: [0xac,0xec,0x1b,0xd5] 4122// CHECK: msr pmevtyper6_el0, x12 // encoding: [0xcc,0xec,0x1b,0xd5] 4123// CHECK: msr pmevtyper7_el0, x12 // encoding: [0xec,0xec,0x1b,0xd5] 4124// CHECK: msr pmevtyper8_el0, x12 // encoding: [0x0c,0xed,0x1b,0xd5] 4125// CHECK: msr pmevtyper9_el0, x12 // encoding: [0x2c,0xed,0x1b,0xd5] 4126// CHECK: msr pmevtyper10_el0, x12 // encoding: [0x4c,0xed,0x1b,0xd5] 4127// CHECK: msr pmevtyper11_el0, x12 // encoding: [0x6c,0xed,0x1b,0xd5] 4128// CHECK: msr pmevtyper12_el0, x12 // encoding: [0x8c,0xed,0x1b,0xd5] 4129// CHECK: msr pmevtyper13_el0, x12 // encoding: [0xac,0xed,0x1b,0xd5] 4130// CHECK: msr pmevtyper14_el0, x12 // encoding: [0xcc,0xed,0x1b,0xd5] 4131// CHECK: msr pmevtyper15_el0, x12 // encoding: [0xec,0xed,0x1b,0xd5] 4132// CHECK: msr pmevtyper16_el0, x12 // encoding: [0x0c,0xee,0x1b,0xd5] 4133// CHECK: msr pmevtyper17_el0, x12 // encoding: [0x2c,0xee,0x1b,0xd5] 4134// CHECK: msr pmevtyper18_el0, x12 // encoding: [0x4c,0xee,0x1b,0xd5] 4135// CHECK: msr pmevtyper19_el0, x12 // encoding: [0x6c,0xee,0x1b,0xd5] 4136// CHECK: msr pmevtyper20_el0, x12 // encoding: [0x8c,0xee,0x1b,0xd5] 4137// CHECK: msr pmevtyper21_el0, x12 // encoding: [0xac,0xee,0x1b,0xd5] 4138// CHECK: msr pmevtyper22_el0, x12 // encoding: [0xcc,0xee,0x1b,0xd5] 4139// CHECK: msr pmevtyper23_el0, x12 // encoding: [0xec,0xee,0x1b,0xd5] 4140// CHECK: msr pmevtyper24_el0, x12 // encoding: [0x0c,0xef,0x1b,0xd5] 4141// CHECK: msr pmevtyper25_el0, x12 // encoding: [0x2c,0xef,0x1b,0xd5] 4142// CHECK: msr pmevtyper26_el0, x12 // encoding: [0x4c,0xef,0x1b,0xd5] 4143// CHECK: msr pmevtyper27_el0, x12 // encoding: [0x6c,0xef,0x1b,0xd5] 4144// CHECK: msr pmevtyper28_el0, x12 // encoding: [0x8c,0xef,0x1b,0xd5] 4145// CHECK: msr pmevtyper29_el0, x12 // encoding: [0xac,0xef,0x1b,0xd5] 4146// CHECK: msr pmevtyper30_el0, x12 // encoding: [0xcc,0xef,0x1b,0xd5] 4147 4148 mrs x9, TEECR32_EL1 4149 mrs x9, OSDTRRX_EL1 4150 mrs x9, MDCCSR_EL0 4151 mrs x9, MDCCINT_EL1 4152 mrs x9, MDSCR_EL1 4153 mrs x9, OSDTRTX_EL1 4154 mrs x9, DBGDTR_EL0 4155 mrs x9, DBGDTRRX_EL0 4156 mrs x9, OSECCR_EL1 4157 mrs x9, DBGVCR32_EL2 4158 mrs x9, DBGBVR0_EL1 4159 mrs x9, DBGBVR1_EL1 4160 mrs x9, DBGBVR2_EL1 4161 mrs x9, DBGBVR3_EL1 4162 mrs x9, DBGBVR4_EL1 4163 mrs x9, DBGBVR5_EL1 4164 mrs x9, DBGBVR6_EL1 4165 mrs x9, DBGBVR7_EL1 4166 mrs x9, DBGBVR8_EL1 4167 mrs x9, DBGBVR9_EL1 4168 mrs x9, DBGBVR10_EL1 4169 mrs x9, DBGBVR11_EL1 4170 mrs x9, DBGBVR12_EL1 4171 mrs x9, DBGBVR13_EL1 4172 mrs x9, DBGBVR14_EL1 4173 mrs x9, DBGBVR15_EL1 4174 mrs x9, DBGBCR0_EL1 4175 mrs x9, DBGBCR1_EL1 4176 mrs x9, DBGBCR2_EL1 4177 mrs x9, DBGBCR3_EL1 4178 mrs x9, DBGBCR4_EL1 4179 mrs x9, DBGBCR5_EL1 4180 mrs x9, DBGBCR6_EL1 4181 mrs x9, DBGBCR7_EL1 4182 mrs x9, DBGBCR8_EL1 4183 mrs x9, DBGBCR9_EL1 4184 mrs x9, DBGBCR10_EL1 4185 mrs x9, DBGBCR11_EL1 4186 mrs x9, DBGBCR12_EL1 4187 mrs x9, DBGBCR13_EL1 4188 mrs x9, DBGBCR14_EL1 4189 mrs x9, DBGBCR15_EL1 4190 mrs x9, DBGWVR0_EL1 4191 mrs x9, DBGWVR1_EL1 4192 mrs x9, DBGWVR2_EL1 4193 mrs x9, DBGWVR3_EL1 4194 mrs x9, DBGWVR4_EL1 4195 mrs x9, DBGWVR5_EL1 4196 mrs x9, DBGWVR6_EL1 4197 mrs x9, DBGWVR7_EL1 4198 mrs x9, DBGWVR8_EL1 4199 mrs x9, DBGWVR9_EL1 4200 mrs x9, DBGWVR10_EL1 4201 mrs x9, DBGWVR11_EL1 4202 mrs x9, DBGWVR12_EL1 4203 mrs x9, DBGWVR13_EL1 4204 mrs x9, DBGWVR14_EL1 4205 mrs x9, DBGWVR15_EL1 4206 mrs x9, DBGWCR0_EL1 4207 mrs x9, DBGWCR1_EL1 4208 mrs x9, DBGWCR2_EL1 4209 mrs x9, DBGWCR3_EL1 4210 mrs x9, DBGWCR4_EL1 4211 mrs x9, DBGWCR5_EL1 4212 mrs x9, DBGWCR6_EL1 4213 mrs x9, DBGWCR7_EL1 4214 mrs x9, DBGWCR8_EL1 4215 mrs x9, DBGWCR9_EL1 4216 mrs x9, DBGWCR10_EL1 4217 mrs x9, DBGWCR11_EL1 4218 mrs x9, DBGWCR12_EL1 4219 mrs x9, DBGWCR13_EL1 4220 mrs x9, DBGWCR14_EL1 4221 mrs x9, DBGWCR15_EL1 4222 mrs x9, MDRAR_EL1 4223 mrs x9, TEEHBR32_EL1 4224 mrs x9, OSLSR_EL1 4225 mrs x9, OSDLR_EL1 4226 mrs x9, DBGPRCR_EL1 4227 mrs x9, DBGCLAIMSET_EL1 4228 mrs x9, DBGCLAIMCLR_EL1 4229 mrs x9, DBGAUTHSTATUS_EL1 4230 mrs x9, MIDR_EL1 4231 mrs x9, CCSIDR_EL1 4232 mrs x9, CSSELR_EL1 4233 mrs x9, VPIDR_EL2 4234 mrs x9, CLIDR_EL1 4235 mrs x9, CTR_EL0 4236 mrs x9, MPIDR_EL1 4237 mrs x9, VMPIDR_EL2 4238 mrs x9, REVIDR_EL1 4239 mrs x9, AIDR_EL1 4240 mrs x9, DCZID_EL0 4241 mrs x9, ID_PFR0_EL1 4242 mrs x9, ID_PFR1_EL1 4243 mrs x9, ID_DFR0_EL1 4244 mrs x9, ID_AFR0_EL1 4245 mrs x9, ID_MMFR0_EL1 4246 mrs x9, ID_MMFR1_EL1 4247 mrs x9, ID_MMFR2_EL1 4248 mrs x9, ID_MMFR3_EL1 4249 mrs x9, ID_ISAR0_EL1 4250 mrs x9, ID_ISAR1_EL1 4251 mrs x9, ID_ISAR2_EL1 4252 mrs x9, ID_ISAR3_EL1 4253 mrs x9, ID_ISAR4_EL1 4254 mrs x9, ID_ISAR5_EL1 4255 mrs x9, MVFR0_EL1 4256 mrs x9, MVFR1_EL1 4257 mrs x9, MVFR2_EL1 4258 mrs x9, ID_AA64PFR0_EL1 4259 mrs x9, ID_AA64PFR1_EL1 4260 mrs x9, ID_AA64DFR0_EL1 4261 mrs x9, ID_AA64DFR1_EL1 4262 mrs x9, ID_AA64AFR0_EL1 4263 mrs x9, ID_AA64AFR1_EL1 4264 mrs x9, ID_AA64ISAR0_EL1 4265 mrs x9, ID_AA64ISAR1_EL1 4266 mrs x9, ID_AA64MMFR0_EL1 4267 mrs x9, ID_AA64MMFR1_EL1 4268 mrs x9, SCTLR_EL1 4269 mrs x9, SCTLR_EL2 4270 mrs x9, SCTLR_EL3 4271 mrs x9, ACTLR_EL1 4272 mrs x9, ACTLR_EL2 4273 mrs x9, ACTLR_EL3 4274 mrs x9, CPACR_EL1 4275 mrs x9, HCR_EL2 4276 mrs x9, SCR_EL3 4277 mrs x9, MDCR_EL2 4278 mrs x9, SDER32_EL3 4279 mrs x9, CPTR_EL2 4280 mrs x9, CPTR_EL3 4281 mrs x9, HSTR_EL2 4282 mrs x9, HACR_EL2 4283 mrs x9, MDCR_EL3 4284 mrs x9, TTBR0_EL1 4285 mrs x9, TTBR0_EL2 4286 mrs x9, TTBR0_EL3 4287 mrs x9, TTBR1_EL1 4288 mrs x9, TCR_EL1 4289 mrs x9, TCR_EL2 4290 mrs x9, TCR_EL3 4291 mrs x9, VTTBR_EL2 4292 mrs x9, VTCR_EL2 4293 mrs x9, DACR32_EL2 4294 mrs x9, SPSR_EL1 4295 mrs x9, SPSR_EL2 4296 mrs x9, SPSR_EL3 4297 mrs x9, ELR_EL1 4298 mrs x9, ELR_EL2 4299 mrs x9, ELR_EL3 4300 mrs x9, SP_EL0 4301 mrs x9, SP_EL1 4302 mrs x9, SP_EL2 4303 mrs x9, SPSel 4304 mrs x9, NZCV 4305 mrs x9, DAIF 4306 mrs x9, CurrentEL 4307 mrs x9, SPSR_irq 4308 mrs x9, SPSR_abt 4309 mrs x9, SPSR_und 4310 mrs x9, SPSR_fiq 4311 mrs x9, FPCR 4312 mrs x9, FPSR 4313 mrs x9, DSPSR_EL0 4314 mrs x9, DLR_EL0 4315 mrs x9, IFSR32_EL2 4316 mrs x9, AFSR0_EL1 4317 mrs x9, AFSR0_EL2 4318 mrs x9, AFSR0_EL3 4319 mrs x9, AFSR1_EL1 4320 mrs x9, AFSR1_EL2 4321 mrs x9, AFSR1_EL3 4322 mrs x9, ESR_EL1 4323 mrs x9, ESR_EL2 4324 mrs x9, ESR_EL3 4325 mrs x9, FPEXC32_EL2 4326 mrs x9, FAR_EL1 4327 mrs x9, FAR_EL2 4328 mrs x9, FAR_EL3 4329 mrs x9, HPFAR_EL2 4330 mrs x9, PAR_EL1 4331 mrs x9, PMCR_EL0 4332 mrs x9, PMCNTENSET_EL0 4333 mrs x9, PMCNTENCLR_EL0 4334 mrs x9, PMOVSCLR_EL0 4335 mrs x9, PMSELR_EL0 4336 mrs x9, PMCEID0_EL0 4337 mrs x9, PMCEID1_EL0 4338 mrs x9, PMCCNTR_EL0 4339 mrs x9, PMXEVTYPER_EL0 4340 mrs x9, PMXEVCNTR_EL0 4341 mrs x9, PMUSERENR_EL0 4342 mrs x9, PMINTENSET_EL1 4343 mrs x9, PMINTENCLR_EL1 4344 mrs x9, PMOVSSET_EL0 4345 mrs x9, MAIR_EL1 4346 mrs x9, MAIR_EL2 4347 mrs x9, MAIR_EL3 4348 mrs x9, AMAIR_EL1 4349 mrs x9, AMAIR_EL2 4350 mrs x9, AMAIR_EL3 4351 mrs x9, VBAR_EL1 4352 mrs x9, VBAR_EL2 4353 mrs x9, VBAR_EL3 4354 mrs x9, RVBAR_EL1 4355 mrs x9, RVBAR_EL2 4356 mrs x9, RVBAR_EL3 4357 mrs x9, RMR_EL1 4358 mrs x9, RMR_EL2 4359 mrs x9, RMR_EL3 4360 mrs x9, ISR_EL1 4361 mrs x9, CONTEXTIDR_EL1 4362 mrs x9, TPIDR_EL0 4363 mrs x9, TPIDR_EL2 4364 mrs x9, TPIDR_EL3 4365 mrs x9, TPIDRRO_EL0 4366 mrs x9, TPIDR_EL1 4367 mrs x9, CNTFRQ_EL0 4368 mrs x9, CNTPCT_EL0 4369 mrs x9, CNTVCT_EL0 4370 mrs x9, CNTVOFF_EL2 4371 mrs x9, CNTKCTL_EL1 4372 mrs x9, CNTHCTL_EL2 4373 mrs x9, CNTP_TVAL_EL0 4374 mrs x9, CNTHP_TVAL_EL2 4375 mrs x9, CNTPS_TVAL_EL1 4376 mrs x9, CNTP_CTL_EL0 4377 mrs x9, CNTHP_CTL_EL2 4378 mrs x9, CNTPS_CTL_EL1 4379 mrs x9, CNTP_CVAL_EL0 4380 mrs x9, CNTHP_CVAL_EL2 4381 mrs x9, CNTPS_CVAL_EL1 4382 mrs x9, CNTV_TVAL_EL0 4383 mrs x9, CNTV_CTL_EL0 4384 mrs x9, CNTV_CVAL_EL0 4385 mrs x9, PMEVCNTR0_EL0 4386 mrs x9, PMEVCNTR1_EL0 4387 mrs x9, PMEVCNTR2_EL0 4388 mrs x9, PMEVCNTR3_EL0 4389 mrs x9, PMEVCNTR4_EL0 4390 mrs x9, PMEVCNTR5_EL0 4391 mrs x9, PMEVCNTR6_EL0 4392 mrs x9, PMEVCNTR7_EL0 4393 mrs x9, PMEVCNTR8_EL0 4394 mrs x9, PMEVCNTR9_EL0 4395 mrs x9, PMEVCNTR10_EL0 4396 mrs x9, PMEVCNTR11_EL0 4397 mrs x9, PMEVCNTR12_EL0 4398 mrs x9, PMEVCNTR13_EL0 4399 mrs x9, PMEVCNTR14_EL0 4400 mrs x9, PMEVCNTR15_EL0 4401 mrs x9, PMEVCNTR16_EL0 4402 mrs x9, PMEVCNTR17_EL0 4403 mrs x9, PMEVCNTR18_EL0 4404 mrs x9, PMEVCNTR19_EL0 4405 mrs x9, PMEVCNTR20_EL0 4406 mrs x9, PMEVCNTR21_EL0 4407 mrs x9, PMEVCNTR22_EL0 4408 mrs x9, PMEVCNTR23_EL0 4409 mrs x9, PMEVCNTR24_EL0 4410 mrs x9, PMEVCNTR25_EL0 4411 mrs x9, PMEVCNTR26_EL0 4412 mrs x9, PMEVCNTR27_EL0 4413 mrs x9, PMEVCNTR28_EL0 4414 mrs x9, PMEVCNTR29_EL0 4415 mrs x9, PMEVCNTR30_EL0 4416 mrs x9, PMCCFILTR_EL0 4417 mrs x9, PMEVTYPER0_EL0 4418 mrs x9, PMEVTYPER1_EL0 4419 mrs x9, PMEVTYPER2_EL0 4420 mrs x9, PMEVTYPER3_EL0 4421 mrs x9, PMEVTYPER4_EL0 4422 mrs x9, PMEVTYPER5_EL0 4423 mrs x9, PMEVTYPER6_EL0 4424 mrs x9, PMEVTYPER7_EL0 4425 mrs x9, PMEVTYPER8_EL0 4426 mrs x9, PMEVTYPER9_EL0 4427 mrs x9, PMEVTYPER10_EL0 4428 mrs x9, PMEVTYPER11_EL0 4429 mrs x9, PMEVTYPER12_EL0 4430 mrs x9, PMEVTYPER13_EL0 4431 mrs x9, PMEVTYPER14_EL0 4432 mrs x9, PMEVTYPER15_EL0 4433 mrs x9, PMEVTYPER16_EL0 4434 mrs x9, PMEVTYPER17_EL0 4435 mrs x9, PMEVTYPER18_EL0 4436 mrs x9, PMEVTYPER19_EL0 4437 mrs x9, PMEVTYPER20_EL0 4438 mrs x9, PMEVTYPER21_EL0 4439 mrs x9, PMEVTYPER22_EL0 4440 mrs x9, PMEVTYPER23_EL0 4441 mrs x9, PMEVTYPER24_EL0 4442 mrs x9, PMEVTYPER25_EL0 4443 mrs x9, PMEVTYPER26_EL0 4444 mrs x9, PMEVTYPER27_EL0 4445 mrs x9, PMEVTYPER28_EL0 4446 mrs x9, PMEVTYPER29_EL0 4447 mrs x9, PMEVTYPER30_EL0 4448// CHECK: mrs x9, teecr32_el1 // encoding: [0x09,0x00,0x32,0xd5] 4449// CHECK: mrs x9, osdtrrx_el1 // encoding: [0x49,0x00,0x30,0xd5] 4450// CHECK: mrs x9, mdccsr_el0 // encoding: [0x09,0x01,0x33,0xd5] 4451// CHECK: mrs x9, mdccint_el1 // encoding: [0x09,0x02,0x30,0xd5] 4452// CHECK: mrs x9, mdscr_el1 // encoding: [0x49,0x02,0x30,0xd5] 4453// CHECK: mrs x9, osdtrtx_el1 // encoding: [0x49,0x03,0x30,0xd5] 4454// CHECK: mrs x9, dbgdtr_el0 // encoding: [0x09,0x04,0x33,0xd5] 4455// CHECK: mrs x9, dbgdtrrx_el0 // encoding: [0x09,0x05,0x33,0xd5] 4456// CHECK: mrs x9, oseccr_el1 // encoding: [0x49,0x06,0x30,0xd5] 4457// CHECK: mrs x9, dbgvcr32_el2 // encoding: [0x09,0x07,0x34,0xd5] 4458// CHECK: mrs x9, dbgbvr0_el1 // encoding: [0x89,0x00,0x30,0xd5] 4459// CHECK: mrs x9, dbgbvr1_el1 // encoding: [0x89,0x01,0x30,0xd5] 4460// CHECK: mrs x9, dbgbvr2_el1 // encoding: [0x89,0x02,0x30,0xd5] 4461// CHECK: mrs x9, dbgbvr3_el1 // encoding: [0x89,0x03,0x30,0xd5] 4462// CHECK: mrs x9, dbgbvr4_el1 // encoding: [0x89,0x04,0x30,0xd5] 4463// CHECK: mrs x9, dbgbvr5_el1 // encoding: [0x89,0x05,0x30,0xd5] 4464// CHECK: mrs x9, dbgbvr6_el1 // encoding: [0x89,0x06,0x30,0xd5] 4465// CHECK: mrs x9, dbgbvr7_el1 // encoding: [0x89,0x07,0x30,0xd5] 4466// CHECK: mrs x9, dbgbvr8_el1 // encoding: [0x89,0x08,0x30,0xd5] 4467// CHECK: mrs x9, dbgbvr9_el1 // encoding: [0x89,0x09,0x30,0xd5] 4468// CHECK: mrs x9, dbgbvr10_el1 // encoding: [0x89,0x0a,0x30,0xd5] 4469// CHECK: mrs x9, dbgbvr11_el1 // encoding: [0x89,0x0b,0x30,0xd5] 4470// CHECK: mrs x9, dbgbvr12_el1 // encoding: [0x89,0x0c,0x30,0xd5] 4471// CHECK: mrs x9, dbgbvr13_el1 // encoding: [0x89,0x0d,0x30,0xd5] 4472// CHECK: mrs x9, dbgbvr14_el1 // encoding: [0x89,0x0e,0x30,0xd5] 4473// CHECK: mrs x9, dbgbvr15_el1 // encoding: [0x89,0x0f,0x30,0xd5] 4474// CHECK: mrs x9, dbgbcr0_el1 // encoding: [0xa9,0x00,0x30,0xd5] 4475// CHECK: mrs x9, dbgbcr1_el1 // encoding: [0xa9,0x01,0x30,0xd5] 4476// CHECK: mrs x9, dbgbcr2_el1 // encoding: [0xa9,0x02,0x30,0xd5] 4477// CHECK: mrs x9, dbgbcr3_el1 // encoding: [0xa9,0x03,0x30,0xd5] 4478// CHECK: mrs x9, dbgbcr4_el1 // encoding: [0xa9,0x04,0x30,0xd5] 4479// CHECK: mrs x9, dbgbcr5_el1 // encoding: [0xa9,0x05,0x30,0xd5] 4480// CHECK: mrs x9, dbgbcr6_el1 // encoding: [0xa9,0x06,0x30,0xd5] 4481// CHECK: mrs x9, dbgbcr7_el1 // encoding: [0xa9,0x07,0x30,0xd5] 4482// CHECK: mrs x9, dbgbcr8_el1 // encoding: [0xa9,0x08,0x30,0xd5] 4483// CHECK: mrs x9, dbgbcr9_el1 // encoding: [0xa9,0x09,0x30,0xd5] 4484// CHECK: mrs x9, dbgbcr10_el1 // encoding: [0xa9,0x0a,0x30,0xd5] 4485// CHECK: mrs x9, dbgbcr11_el1 // encoding: [0xa9,0x0b,0x30,0xd5] 4486// CHECK: mrs x9, dbgbcr12_el1 // encoding: [0xa9,0x0c,0x30,0xd5] 4487// CHECK: mrs x9, dbgbcr13_el1 // encoding: [0xa9,0x0d,0x30,0xd5] 4488// CHECK: mrs x9, dbgbcr14_el1 // encoding: [0xa9,0x0e,0x30,0xd5] 4489// CHECK: mrs x9, dbgbcr15_el1 // encoding: [0xa9,0x0f,0x30,0xd5] 4490// CHECK: mrs x9, dbgwvr0_el1 // encoding: [0xc9,0x00,0x30,0xd5] 4491// CHECK: mrs x9, dbgwvr1_el1 // encoding: [0xc9,0x01,0x30,0xd5] 4492// CHECK: mrs x9, dbgwvr2_el1 // encoding: [0xc9,0x02,0x30,0xd5] 4493// CHECK: mrs x9, dbgwvr3_el1 // encoding: [0xc9,0x03,0x30,0xd5] 4494// CHECK: mrs x9, dbgwvr4_el1 // encoding: [0xc9,0x04,0x30,0xd5] 4495// CHECK: mrs x9, dbgwvr5_el1 // encoding: [0xc9,0x05,0x30,0xd5] 4496// CHECK: mrs x9, dbgwvr6_el1 // encoding: [0xc9,0x06,0x30,0xd5] 4497// CHECK: mrs x9, dbgwvr7_el1 // encoding: [0xc9,0x07,0x30,0xd5] 4498// CHECK: mrs x9, dbgwvr8_el1 // encoding: [0xc9,0x08,0x30,0xd5] 4499// CHECK: mrs x9, dbgwvr9_el1 // encoding: [0xc9,0x09,0x30,0xd5] 4500// CHECK: mrs x9, dbgwvr10_el1 // encoding: [0xc9,0x0a,0x30,0xd5] 4501// CHECK: mrs x9, dbgwvr11_el1 // encoding: [0xc9,0x0b,0x30,0xd5] 4502// CHECK: mrs x9, dbgwvr12_el1 // encoding: [0xc9,0x0c,0x30,0xd5] 4503// CHECK: mrs x9, dbgwvr13_el1 // encoding: [0xc9,0x0d,0x30,0xd5] 4504// CHECK: mrs x9, dbgwvr14_el1 // encoding: [0xc9,0x0e,0x30,0xd5] 4505// CHECK: mrs x9, dbgwvr15_el1 // encoding: [0xc9,0x0f,0x30,0xd5] 4506// CHECK: mrs x9, dbgwcr0_el1 // encoding: [0xe9,0x00,0x30,0xd5] 4507// CHECK: mrs x9, dbgwcr1_el1 // encoding: [0xe9,0x01,0x30,0xd5] 4508// CHECK: mrs x9, dbgwcr2_el1 // encoding: [0xe9,0x02,0x30,0xd5] 4509// CHECK: mrs x9, dbgwcr3_el1 // encoding: [0xe9,0x03,0x30,0xd5] 4510// CHECK: mrs x9, dbgwcr4_el1 // encoding: [0xe9,0x04,0x30,0xd5] 4511// CHECK: mrs x9, dbgwcr5_el1 // encoding: [0xe9,0x05,0x30,0xd5] 4512// CHECK: mrs x9, dbgwcr6_el1 // encoding: [0xe9,0x06,0x30,0xd5] 4513// CHECK: mrs x9, dbgwcr7_el1 // encoding: [0xe9,0x07,0x30,0xd5] 4514// CHECK: mrs x9, dbgwcr8_el1 // encoding: [0xe9,0x08,0x30,0xd5] 4515// CHECK: mrs x9, dbgwcr9_el1 // encoding: [0xe9,0x09,0x30,0xd5] 4516// CHECK: mrs x9, dbgwcr10_el1 // encoding: [0xe9,0x0a,0x30,0xd5] 4517// CHECK: mrs x9, dbgwcr11_el1 // encoding: [0xe9,0x0b,0x30,0xd5] 4518// CHECK: mrs x9, dbgwcr12_el1 // encoding: [0xe9,0x0c,0x30,0xd5] 4519// CHECK: mrs x9, dbgwcr13_el1 // encoding: [0xe9,0x0d,0x30,0xd5] 4520// CHECK: mrs x9, dbgwcr14_el1 // encoding: [0xe9,0x0e,0x30,0xd5] 4521// CHECK: mrs x9, dbgwcr15_el1 // encoding: [0xe9,0x0f,0x30,0xd5] 4522// CHECK: mrs x9, mdrar_el1 // encoding: [0x09,0x10,0x30,0xd5] 4523// CHECK: mrs x9, teehbr32_el1 // encoding: [0x09,0x10,0x32,0xd5] 4524// CHECK: mrs x9, oslsr_el1 // encoding: [0x89,0x11,0x30,0xd5] 4525// CHECK: mrs x9, osdlr_el1 // encoding: [0x89,0x13,0x30,0xd5] 4526// CHECK: mrs x9, dbgprcr_el1 // encoding: [0x89,0x14,0x30,0xd5] 4527// CHECK: mrs x9, dbgclaimset_el1 // encoding: [0xc9,0x78,0x30,0xd5] 4528// CHECK: mrs x9, dbgclaimclr_el1 // encoding: [0xc9,0x79,0x30,0xd5] 4529// CHECK: mrs x9, dbgauthstatus_el1 // encoding: [0xc9,0x7e,0x30,0xd5] 4530// CHECK: mrs x9, midr_el1 // encoding: [0x09,0x00,0x38,0xd5] 4531// CHECK: mrs x9, ccsidr_el1 // encoding: [0x09,0x00,0x39,0xd5] 4532// CHECK: mrs x9, csselr_el1 // encoding: [0x09,0x00,0x3a,0xd5] 4533// CHECK: mrs x9, vpidr_el2 // encoding: [0x09,0x00,0x3c,0xd5] 4534// CHECK: mrs x9, clidr_el1 // encoding: [0x29,0x00,0x39,0xd5] 4535// CHECK: mrs x9, ctr_el0 // encoding: [0x29,0x00,0x3b,0xd5] 4536// CHECK: mrs x9, mpidr_el1 // encoding: [0xa9,0x00,0x38,0xd5] 4537// CHECK: mrs x9, vmpidr_el2 // encoding: [0xa9,0x00,0x3c,0xd5] 4538// CHECK: mrs x9, revidr_el1 // encoding: [0xc9,0x00,0x38,0xd5] 4539// CHECK: mrs x9, aidr_el1 // encoding: [0xe9,0x00,0x39,0xd5] 4540// CHECK: mrs x9, dczid_el0 // encoding: [0xe9,0x00,0x3b,0xd5] 4541// CHECK: mrs x9, id_pfr0_el1 // encoding: [0x09,0x01,0x38,0xd5] 4542// CHECK: mrs x9, id_pfr1_el1 // encoding: [0x29,0x01,0x38,0xd5] 4543// CHECK: mrs x9, id_dfr0_el1 // encoding: [0x49,0x01,0x38,0xd5] 4544// CHECK: mrs x9, id_afr0_el1 // encoding: [0x69,0x01,0x38,0xd5] 4545// CHECK: mrs x9, id_mmfr0_el1 // encoding: [0x89,0x01,0x38,0xd5] 4546// CHECK: mrs x9, id_mmfr1_el1 // encoding: [0xa9,0x01,0x38,0xd5] 4547// CHECK: mrs x9, id_mmfr2_el1 // encoding: [0xc9,0x01,0x38,0xd5] 4548// CHECK: mrs x9, id_mmfr3_el1 // encoding: [0xe9,0x01,0x38,0xd5] 4549// CHECK: mrs x9, id_isar0_el1 // encoding: [0x09,0x02,0x38,0xd5] 4550// CHECK: mrs x9, id_isar1_el1 // encoding: [0x29,0x02,0x38,0xd5] 4551// CHECK: mrs x9, id_isar2_el1 // encoding: [0x49,0x02,0x38,0xd5] 4552// CHECK: mrs x9, id_isar3_el1 // encoding: [0x69,0x02,0x38,0xd5] 4553// CHECK: mrs x9, id_isar4_el1 // encoding: [0x89,0x02,0x38,0xd5] 4554// CHECK: mrs x9, id_isar5_el1 // encoding: [0xa9,0x02,0x38,0xd5] 4555// CHECK: mrs x9, mvfr0_el1 // encoding: [0x09,0x03,0x38,0xd5] 4556// CHECK: mrs x9, mvfr1_el1 // encoding: [0x29,0x03,0x38,0xd5] 4557// CHECK: mrs x9, mvfr2_el1 // encoding: [0x49,0x03,0x38,0xd5] 4558// CHECK: mrs x9, id_aa64pfr0_el1 // encoding: [0x09,0x04,0x38,0xd5] 4559// CHECK: mrs x9, id_aa64pfr1_el1 // encoding: [0x29,0x04,0x38,0xd5] 4560// CHECK: mrs x9, id_aa64dfr0_el1 // encoding: [0x09,0x05,0x38,0xd5] 4561// CHECK: mrs x9, id_aa64dfr1_el1 // encoding: [0x29,0x05,0x38,0xd5] 4562// CHECK: mrs x9, id_aa64afr0_el1 // encoding: [0x89,0x05,0x38,0xd5] 4563// CHECK: mrs x9, id_aa64afr1_el1 // encoding: [0xa9,0x05,0x38,0xd5] 4564// CHECK: mrs x9, id_aa64isar0_el1 // encoding: [0x09,0x06,0x38,0xd5] 4565// CHECK: mrs x9, id_aa64isar1_el1 // encoding: [0x29,0x06,0x38,0xd5] 4566// CHECK: mrs x9, id_aa64mmfr0_el1 // encoding: [0x09,0x07,0x38,0xd5] 4567// CHECK: mrs x9, id_aa64mmfr1_el1 // encoding: [0x29,0x07,0x38,0xd5] 4568// CHECK: mrs x9, sctlr_el1 // encoding: [0x09,0x10,0x38,0xd5] 4569// CHECK: mrs x9, sctlr_el2 // encoding: [0x09,0x10,0x3c,0xd5] 4570// CHECK: mrs x9, sctlr_el3 // encoding: [0x09,0x10,0x3e,0xd5] 4571// CHECK: mrs x9, actlr_el1 // encoding: [0x29,0x10,0x38,0xd5] 4572// CHECK: mrs x9, actlr_el2 // encoding: [0x29,0x10,0x3c,0xd5] 4573// CHECK: mrs x9, actlr_el3 // encoding: [0x29,0x10,0x3e,0xd5] 4574// CHECK: mrs x9, cpacr_el1 // encoding: [0x49,0x10,0x38,0xd5] 4575// CHECK: mrs x9, hcr_el2 // encoding: [0x09,0x11,0x3c,0xd5] 4576// CHECK: mrs x9, scr_el3 // encoding: [0x09,0x11,0x3e,0xd5] 4577// CHECK: mrs x9, mdcr_el2 // encoding: [0x29,0x11,0x3c,0xd5] 4578// CHECK: mrs x9, sder32_el3 // encoding: [0x29,0x11,0x3e,0xd5] 4579// CHECK: mrs x9, cptr_el2 // encoding: [0x49,0x11,0x3c,0xd5] 4580// CHECK: mrs x9, cptr_el3 // encoding: [0x49,0x11,0x3e,0xd5] 4581// CHECK: mrs x9, hstr_el2 // encoding: [0x69,0x11,0x3c,0xd5] 4582// CHECK: mrs x9, hacr_el2 // encoding: [0xe9,0x11,0x3c,0xd5] 4583// CHECK: mrs x9, mdcr_el3 // encoding: [0x29,0x13,0x3e,0xd5] 4584// CHECK: mrs x9, ttbr0_el1 // encoding: [0x09,0x20,0x38,0xd5] 4585// CHECK: mrs x9, ttbr0_el2 // encoding: [0x09,0x20,0x3c,0xd5] 4586// CHECK: mrs x9, ttbr0_el3 // encoding: [0x09,0x20,0x3e,0xd5] 4587// CHECK: mrs x9, ttbr1_el1 // encoding: [0x29,0x20,0x38,0xd5] 4588// CHECK: mrs x9, tcr_el1 // encoding: [0x49,0x20,0x38,0xd5] 4589// CHECK: mrs x9, tcr_el2 // encoding: [0x49,0x20,0x3c,0xd5] 4590// CHECK: mrs x9, tcr_el3 // encoding: [0x49,0x20,0x3e,0xd5] 4591// CHECK: mrs x9, vttbr_el2 // encoding: [0x09,0x21,0x3c,0xd5] 4592// CHECK: mrs x9, vtcr_el2 // encoding: [0x49,0x21,0x3c,0xd5] 4593// CHECK: mrs x9, dacr32_el2 // encoding: [0x09,0x30,0x3c,0xd5] 4594// CHECK: mrs x9, spsr_el1 // encoding: [0x09,0x40,0x38,0xd5] 4595// CHECK: mrs x9, spsr_el2 // encoding: [0x09,0x40,0x3c,0xd5] 4596// CHECK: mrs x9, spsr_el3 // encoding: [0x09,0x40,0x3e,0xd5] 4597// CHECK: mrs x9, elr_el1 // encoding: [0x29,0x40,0x38,0xd5] 4598// CHECK: mrs x9, elr_el2 // encoding: [0x29,0x40,0x3c,0xd5] 4599// CHECK: mrs x9, elr_el3 // encoding: [0x29,0x40,0x3e,0xd5] 4600// CHECK: mrs x9, sp_el0 // encoding: [0x09,0x41,0x38,0xd5] 4601// CHECK: mrs x9, sp_el1 // encoding: [0x09,0x41,0x3c,0xd5] 4602// CHECK: mrs x9, sp_el2 // encoding: [0x09,0x41,0x3e,0xd5] 4603// CHECK: mrs x9, spsel // encoding: [0x09,0x42,0x38,0xd5] 4604// CHECK: mrs x9, nzcv // encoding: [0x09,0x42,0x3b,0xd5] 4605// CHECK: mrs x9, daif // encoding: [0x29,0x42,0x3b,0xd5] 4606// CHECK: mrs x9, currentel // encoding: [0x49,0x42,0x38,0xd5] 4607// CHECK: mrs x9, spsr_irq // encoding: [0x09,0x43,0x3c,0xd5] 4608// CHECK: mrs x9, spsr_abt // encoding: [0x29,0x43,0x3c,0xd5] 4609// CHECK: mrs x9, spsr_und // encoding: [0x49,0x43,0x3c,0xd5] 4610// CHECK: mrs x9, spsr_fiq // encoding: [0x69,0x43,0x3c,0xd5] 4611// CHECK: mrs x9, fpcr // encoding: [0x09,0x44,0x3b,0xd5] 4612// CHECK: mrs x9, fpsr // encoding: [0x29,0x44,0x3b,0xd5] 4613// CHECK: mrs x9, dspsr_el0 // encoding: [0x09,0x45,0x3b,0xd5] 4614// CHECK: mrs x9, dlr_el0 // encoding: [0x29,0x45,0x3b,0xd5] 4615// CHECK: mrs x9, ifsr32_el2 // encoding: [0x29,0x50,0x3c,0xd5] 4616// CHECK: mrs x9, afsr0_el1 // encoding: [0x09,0x51,0x38,0xd5] 4617// CHECK: mrs x9, afsr0_el2 // encoding: [0x09,0x51,0x3c,0xd5] 4618// CHECK: mrs x9, afsr0_el3 // encoding: [0x09,0x51,0x3e,0xd5] 4619// CHECK: mrs x9, afsr1_el1 // encoding: [0x29,0x51,0x38,0xd5] 4620// CHECK: mrs x9, afsr1_el2 // encoding: [0x29,0x51,0x3c,0xd5] 4621// CHECK: mrs x9, afsr1_el3 // encoding: [0x29,0x51,0x3e,0xd5] 4622// CHECK: mrs x9, esr_el1 // encoding: [0x09,0x52,0x38,0xd5] 4623// CHECK: mrs x9, esr_el2 // encoding: [0x09,0x52,0x3c,0xd5] 4624// CHECK: mrs x9, esr_el3 // encoding: [0x09,0x52,0x3e,0xd5] 4625// CHECK: mrs x9, fpexc32_el2 // encoding: [0x09,0x53,0x3c,0xd5] 4626// CHECK: mrs x9, far_el1 // encoding: [0x09,0x60,0x38,0xd5] 4627// CHECK: mrs x9, far_el2 // encoding: [0x09,0x60,0x3c,0xd5] 4628// CHECK: mrs x9, far_el3 // encoding: [0x09,0x60,0x3e,0xd5] 4629// CHECK: mrs x9, hpfar_el2 // encoding: [0x89,0x60,0x3c,0xd5] 4630// CHECK: mrs x9, par_el1 // encoding: [0x09,0x74,0x38,0xd5] 4631// CHECK: mrs x9, pmcr_el0 // encoding: [0x09,0x9c,0x3b,0xd5] 4632// CHECK: mrs x9, pmcntenset_el0 // encoding: [0x29,0x9c,0x3b,0xd5] 4633// CHECK: mrs x9, pmcntenclr_el0 // encoding: [0x49,0x9c,0x3b,0xd5] 4634// CHECK: mrs x9, pmovsclr_el0 // encoding: [0x69,0x9c,0x3b,0xd5] 4635// CHECK: mrs x9, pmselr_el0 // encoding: [0xa9,0x9c,0x3b,0xd5] 4636// CHECK: mrs x9, pmceid0_el0 // encoding: [0xc9,0x9c,0x3b,0xd5] 4637// CHECK: mrs x9, pmceid1_el0 // encoding: [0xe9,0x9c,0x3b,0xd5] 4638// CHECK: mrs x9, pmccntr_el0 // encoding: [0x09,0x9d,0x3b,0xd5] 4639// CHECK: mrs x9, pmxevtyper_el0 // encoding: [0x29,0x9d,0x3b,0xd5] 4640// CHECK: mrs x9, pmxevcntr_el0 // encoding: [0x49,0x9d,0x3b,0xd5] 4641// CHECK: mrs x9, pmuserenr_el0 // encoding: [0x09,0x9e,0x3b,0xd5] 4642// CHECK: mrs x9, pmintenset_el1 // encoding: [0x29,0x9e,0x38,0xd5] 4643// CHECK: mrs x9, pmintenclr_el1 // encoding: [0x49,0x9e,0x38,0xd5] 4644// CHECK: mrs x9, pmovsset_el0 // encoding: [0x69,0x9e,0x3b,0xd5] 4645// CHECK: mrs x9, mair_el1 // encoding: [0x09,0xa2,0x38,0xd5] 4646// CHECK: mrs x9, mair_el2 // encoding: [0x09,0xa2,0x3c,0xd5] 4647// CHECK: mrs x9, mair_el3 // encoding: [0x09,0xa2,0x3e,0xd5] 4648// CHECK: mrs x9, amair_el1 // encoding: [0x09,0xa3,0x38,0xd5] 4649// CHECK: mrs x9, amair_el2 // encoding: [0x09,0xa3,0x3c,0xd5] 4650// CHECK: mrs x9, amair_el3 // encoding: [0x09,0xa3,0x3e,0xd5] 4651// CHECK: mrs x9, vbar_el1 // encoding: [0x09,0xc0,0x38,0xd5] 4652// CHECK: mrs x9, vbar_el2 // encoding: [0x09,0xc0,0x3c,0xd5] 4653// CHECK: mrs x9, vbar_el3 // encoding: [0x09,0xc0,0x3e,0xd5] 4654// CHECK: mrs x9, rvbar_el1 // encoding: [0x29,0xc0,0x38,0xd5] 4655// CHECK: mrs x9, rvbar_el2 // encoding: [0x29,0xc0,0x3c,0xd5] 4656// CHECK: mrs x9, rvbar_el3 // encoding: [0x29,0xc0,0x3e,0xd5] 4657// CHECK: mrs x9, rmr_el1 // encoding: [0x49,0xc0,0x38,0xd5] 4658// CHECK: mrs x9, rmr_el2 // encoding: [0x49,0xc0,0x3c,0xd5] 4659// CHECK: mrs x9, rmr_el3 // encoding: [0x49,0xc0,0x3e,0xd5] 4660// CHECK: mrs x9, isr_el1 // encoding: [0x09,0xc1,0x38,0xd5] 4661// CHECK: mrs x9, contextidr_el1 // encoding: [0x29,0xd0,0x38,0xd5] 4662// CHECK: mrs x9, tpidr_el0 // encoding: [0x49,0xd0,0x3b,0xd5] 4663// CHECK: mrs x9, tpidr_el2 // encoding: [0x49,0xd0,0x3c,0xd5] 4664// CHECK: mrs x9, tpidr_el3 // encoding: [0x49,0xd0,0x3e,0xd5] 4665// CHECK: mrs x9, tpidrro_el0 // encoding: [0x69,0xd0,0x3b,0xd5] 4666// CHECK: mrs x9, tpidr_el1 // encoding: [0x89,0xd0,0x38,0xd5] 4667// CHECK: mrs x9, cntfrq_el0 // encoding: [0x09,0xe0,0x3b,0xd5] 4668// CHECK: mrs x9, cntpct_el0 // encoding: [0x29,0xe0,0x3b,0xd5] 4669// CHECK: mrs x9, cntvct_el0 // encoding: [0x49,0xe0,0x3b,0xd5] 4670// CHECK: mrs x9, cntvoff_el2 // encoding: [0x69,0xe0,0x3c,0xd5] 4671// CHECK: mrs x9, cntkctl_el1 // encoding: [0x09,0xe1,0x38,0xd5] 4672// CHECK: mrs x9, cnthctl_el2 // encoding: [0x09,0xe1,0x3c,0xd5] 4673// CHECK: mrs x9, cntp_tval_el0 // encoding: [0x09,0xe2,0x3b,0xd5] 4674// CHECK: mrs x9, cnthp_tval_el2 // encoding: [0x09,0xe2,0x3c,0xd5] 4675// CHECK: mrs x9, cntps_tval_el1 // encoding: [0x09,0xe2,0x3f,0xd5] 4676// CHECK: mrs x9, cntp_ctl_el0 // encoding: [0x29,0xe2,0x3b,0xd5] 4677// CHECK: mrs x9, cnthp_ctl_el2 // encoding: [0x29,0xe2,0x3c,0xd5] 4678// CHECK: mrs x9, cntps_ctl_el1 // encoding: [0x29,0xe2,0x3f,0xd5] 4679// CHECK: mrs x9, cntp_cval_el0 // encoding: [0x49,0xe2,0x3b,0xd5] 4680// CHECK: mrs x9, cnthp_cval_el2 // encoding: [0x49,0xe2,0x3c,0xd5] 4681// CHECK: mrs x9, cntps_cval_el1 // encoding: [0x49,0xe2,0x3f,0xd5] 4682// CHECK: mrs x9, cntv_tval_el0 // encoding: [0x09,0xe3,0x3b,0xd5] 4683// CHECK: mrs x9, cntv_ctl_el0 // encoding: [0x29,0xe3,0x3b,0xd5] 4684// CHECK: mrs x9, cntv_cval_el0 // encoding: [0x49,0xe3,0x3b,0xd5] 4685// CHECK: mrs x9, pmevcntr0_el0 // encoding: [0x09,0xe8,0x3b,0xd5] 4686// CHECK: mrs x9, pmevcntr1_el0 // encoding: [0x29,0xe8,0x3b,0xd5] 4687// CHECK: mrs x9, pmevcntr2_el0 // encoding: [0x49,0xe8,0x3b,0xd5] 4688// CHECK: mrs x9, pmevcntr3_el0 // encoding: [0x69,0xe8,0x3b,0xd5] 4689// CHECK: mrs x9, pmevcntr4_el0 // encoding: [0x89,0xe8,0x3b,0xd5] 4690// CHECK: mrs x9, pmevcntr5_el0 // encoding: [0xa9,0xe8,0x3b,0xd5] 4691// CHECK: mrs x9, pmevcntr6_el0 // encoding: [0xc9,0xe8,0x3b,0xd5] 4692// CHECK: mrs x9, pmevcntr7_el0 // encoding: [0xe9,0xe8,0x3b,0xd5] 4693// CHECK: mrs x9, pmevcntr8_el0 // encoding: [0x09,0xe9,0x3b,0xd5] 4694// CHECK: mrs x9, pmevcntr9_el0 // encoding: [0x29,0xe9,0x3b,0xd5] 4695// CHECK: mrs x9, pmevcntr10_el0 // encoding: [0x49,0xe9,0x3b,0xd5] 4696// CHECK: mrs x9, pmevcntr11_el0 // encoding: [0x69,0xe9,0x3b,0xd5] 4697// CHECK: mrs x9, pmevcntr12_el0 // encoding: [0x89,0xe9,0x3b,0xd5] 4698// CHECK: mrs x9, pmevcntr13_el0 // encoding: [0xa9,0xe9,0x3b,0xd5] 4699// CHECK: mrs x9, pmevcntr14_el0 // encoding: [0xc9,0xe9,0x3b,0xd5] 4700// CHECK: mrs x9, pmevcntr15_el0 // encoding: [0xe9,0xe9,0x3b,0xd5] 4701// CHECK: mrs x9, pmevcntr16_el0 // encoding: [0x09,0xea,0x3b,0xd5] 4702// CHECK: mrs x9, pmevcntr17_el0 // encoding: [0x29,0xea,0x3b,0xd5] 4703// CHECK: mrs x9, pmevcntr18_el0 // encoding: [0x49,0xea,0x3b,0xd5] 4704// CHECK: mrs x9, pmevcntr19_el0 // encoding: [0x69,0xea,0x3b,0xd5] 4705// CHECK: mrs x9, pmevcntr20_el0 // encoding: [0x89,0xea,0x3b,0xd5] 4706// CHECK: mrs x9, pmevcntr21_el0 // encoding: [0xa9,0xea,0x3b,0xd5] 4707// CHECK: mrs x9, pmevcntr22_el0 // encoding: [0xc9,0xea,0x3b,0xd5] 4708// CHECK: mrs x9, pmevcntr23_el0 // encoding: [0xe9,0xea,0x3b,0xd5] 4709// CHECK: mrs x9, pmevcntr24_el0 // encoding: [0x09,0xeb,0x3b,0xd5] 4710// CHECK: mrs x9, pmevcntr25_el0 // encoding: [0x29,0xeb,0x3b,0xd5] 4711// CHECK: mrs x9, pmevcntr26_el0 // encoding: [0x49,0xeb,0x3b,0xd5] 4712// CHECK: mrs x9, pmevcntr27_el0 // encoding: [0x69,0xeb,0x3b,0xd5] 4713// CHECK: mrs x9, pmevcntr28_el0 // encoding: [0x89,0xeb,0x3b,0xd5] 4714// CHECK: mrs x9, pmevcntr29_el0 // encoding: [0xa9,0xeb,0x3b,0xd5] 4715// CHECK: mrs x9, pmevcntr30_el0 // encoding: [0xc9,0xeb,0x3b,0xd5] 4716// CHECK: mrs x9, pmccfiltr_el0 // encoding: [0xe9,0xef,0x3b,0xd5] 4717// CHECK: mrs x9, pmevtyper0_el0 // encoding: [0x09,0xec,0x3b,0xd5] 4718// CHECK: mrs x9, pmevtyper1_el0 // encoding: [0x29,0xec,0x3b,0xd5] 4719// CHECK: mrs x9, pmevtyper2_el0 // encoding: [0x49,0xec,0x3b,0xd5] 4720// CHECK: mrs x9, pmevtyper3_el0 // encoding: [0x69,0xec,0x3b,0xd5] 4721// CHECK: mrs x9, pmevtyper4_el0 // encoding: [0x89,0xec,0x3b,0xd5] 4722// CHECK: mrs x9, pmevtyper5_el0 // encoding: [0xa9,0xec,0x3b,0xd5] 4723// CHECK: mrs x9, pmevtyper6_el0 // encoding: [0xc9,0xec,0x3b,0xd5] 4724// CHECK: mrs x9, pmevtyper7_el0 // encoding: [0xe9,0xec,0x3b,0xd5] 4725// CHECK: mrs x9, pmevtyper8_el0 // encoding: [0x09,0xed,0x3b,0xd5] 4726// CHECK: mrs x9, pmevtyper9_el0 // encoding: [0x29,0xed,0x3b,0xd5] 4727// CHECK: mrs x9, pmevtyper10_el0 // encoding: [0x49,0xed,0x3b,0xd5] 4728// CHECK: mrs x9, pmevtyper11_el0 // encoding: [0x69,0xed,0x3b,0xd5] 4729// CHECK: mrs x9, pmevtyper12_el0 // encoding: [0x89,0xed,0x3b,0xd5] 4730// CHECK: mrs x9, pmevtyper13_el0 // encoding: [0xa9,0xed,0x3b,0xd5] 4731// CHECK: mrs x9, pmevtyper14_el0 // encoding: [0xc9,0xed,0x3b,0xd5] 4732// CHECK: mrs x9, pmevtyper15_el0 // encoding: [0xe9,0xed,0x3b,0xd5] 4733// CHECK: mrs x9, pmevtyper16_el0 // encoding: [0x09,0xee,0x3b,0xd5] 4734// CHECK: mrs x9, pmevtyper17_el0 // encoding: [0x29,0xee,0x3b,0xd5] 4735// CHECK: mrs x9, pmevtyper18_el0 // encoding: [0x49,0xee,0x3b,0xd5] 4736// CHECK: mrs x9, pmevtyper19_el0 // encoding: [0x69,0xee,0x3b,0xd5] 4737// CHECK: mrs x9, pmevtyper20_el0 // encoding: [0x89,0xee,0x3b,0xd5] 4738// CHECK: mrs x9, pmevtyper21_el0 // encoding: [0xa9,0xee,0x3b,0xd5] 4739// CHECK: mrs x9, pmevtyper22_el0 // encoding: [0xc9,0xee,0x3b,0xd5] 4740// CHECK: mrs x9, pmevtyper23_el0 // encoding: [0xe9,0xee,0x3b,0xd5] 4741// CHECK: mrs x9, pmevtyper24_el0 // encoding: [0x09,0xef,0x3b,0xd5] 4742// CHECK: mrs x9, pmevtyper25_el0 // encoding: [0x29,0xef,0x3b,0xd5] 4743// CHECK: mrs x9, pmevtyper26_el0 // encoding: [0x49,0xef,0x3b,0xd5] 4744// CHECK: mrs x9, pmevtyper27_el0 // encoding: [0x69,0xef,0x3b,0xd5] 4745// CHECK: mrs x9, pmevtyper28_el0 // encoding: [0x89,0xef,0x3b,0xd5] 4746// CHECK: mrs x9, pmevtyper29_el0 // encoding: [0xa9,0xef,0x3b,0xd5] 4747// CHECK: mrs x9, pmevtyper30_el0 // encoding: [0xc9,0xef,0x3b,0xd5] 4748 4749 mrs x12, s3_7_c15_c1_5 4750 mrs x13, s3_2_c11_c15_7 4751 msr s3_0_c15_c0_0, x12 4752 msr s3_7_c11_c13_7, x5 4753// CHECK: mrs x12, s3_7_c15_c1_5 // encoding: [0xac,0xf1,0x3f,0xd5] 4754// CHECK: mrs x13, s3_2_c11_c15_7 // encoding: [0xed,0xbf,0x3a,0xd5] 4755// CHECK: msr s3_0_c15_c0_0, x12 // encoding: [0x0c,0xf0,0x18,0xd5] 4756// CHECK: msr s3_7_c11_c13_7, x5 // encoding: [0xe5,0xbd,0x1f,0xd5] 4757 4758//------------------------------------------------------------------------------ 4759// Unconditional branch (immediate) 4760//------------------------------------------------------------------------------ 4761 4762 tbz x5, #0, somewhere 4763 tbz xzr, #63, elsewhere 4764 tbnz x5, #45, nowhere 4765// CHECK: tbz x5, #0, somewhere // encoding: [0x05'A',A,A,0x36'A'] 4766// CHECK: // fixup A - offset: 0, value: somewhere, kind: fixup_a64_tstbr 4767// CHECK: tbz xzr, #63, elsewhere // encoding: [0x1f'A',A,0xf8'A',0xb6'A'] 4768// CHECK: // fixup A - offset: 0, value: elsewhere, kind: fixup_a64_tstbr 4769// CHECK: tbnz x5, #45, nowhere // encoding: [0x05'A',A,0x68'A',0xb7'A'] 4770// CHECK: // fixup A - offset: 0, value: nowhere, kind: fixup_a64_tstbr 4771 4772 tbnz w3, #2, there 4773 tbnz wzr, #31, nowhere 4774 tbz w5, #12, anywhere 4775// CHECK: tbnz w3, #2, there // encoding: [0x03'A',A,0x10'A',0x37'A'] 4776// CHECK: // fixup A - offset: 0, value: there, kind: fixup_a64_tstbr 4777// CHECK: tbnz wzr, #31, nowhere // encoding: [0x1f'A',A,0xf8'A',0x37'A'] 4778// CHECK: // fixup A - offset: 0, value: nowhere, kind: fixup_a64_tstbr 4779// CHECK: tbz w5, #12, anywhere // encoding: [0x05'A',A,0x60'A',0x36'A'] 4780// CHECK: // fixup A - offset: 0, value: anywhere, kind: fixup_a64_tstbr 4781 4782//------------------------------------------------------------------------------ 4783// Unconditional branch (immediate) 4784//------------------------------------------------------------------------------ 4785 4786 b somewhere 4787 bl elsewhere 4788// CHECK: b somewhere // encoding: [A,A,A,0x14'A'] 4789// CHECK: // fixup A - offset: 0, value: somewhere, kind: fixup_a64_uncondbr 4790// CHECK: bl elsewhere // encoding: [A,A,A,0x94'A'] 4791// CHECK: // fixup A - offset: 0, value: elsewhere, kind: fixup_a64_call 4792 4793 b #4 4794 bl #0 4795 b #134217724 4796 bl #-134217728 4797// CHECK: b #4 // encoding: [0x01,0x00,0x00,0x14] 4798// CHECK: bl #0 // encoding: [0x00,0x00,0x00,0x94] 4799// CHECK: b #134217724 // encoding: [0xff,0xff,0xff,0x15] 4800// CHECK: bl #-134217728 // encoding: [0x00,0x00,0x00,0x96] 4801 4802//------------------------------------------------------------------------------ 4803// Unconditional branch (register) 4804//------------------------------------------------------------------------------ 4805 4806 br x20 4807 blr xzr 4808 ret x10 4809// CHECK: br x20 // encoding: [0x80,0x02,0x1f,0xd6] 4810// CHECK: blr xzr // encoding: [0xe0,0x03,0x3f,0xd6] 4811// CHECK: ret x10 // encoding: [0x40,0x01,0x5f,0xd6] 4812 4813 ret 4814 eret 4815 drps 4816// CHECK: ret // encoding: [0xc0,0x03,0x5f,0xd6] 4817// CHECK: eret // encoding: [0xe0,0x03,0x9f,0xd6] 4818// CHECK: drps // encoding: [0xe0,0x03,0xbf,0xd6] 4819 4820