620 lines · plain
1// RUN: llvm-mc -triple aarch64 -show-encoding -mattr=+mte < %s | FileCheck %s2// RUN: not llvm-mc -triple aarch64 -show-encoding -mattr=+v8.5a < %s 2>&1 | FileCheck %s --check-prefix=NOMTE3// RUN: not llvm-mc -triple aarch64 -show-encoding -mattr=-mte < %s 2>&1 | FileCheck %s --check-prefix=NOMTE4 5irg x0, x16irg sp, x17irg x0, sp8irg x0, x1, x29irg sp, x1, x210 11// CHECK: irg x0, x1 // encoding: [0x20,0x10,0xdf,0x9a]12// CHECK: irg sp, x1 // encoding: [0x3f,0x10,0xdf,0x9a]13// CHECK: irg x0, sp // encoding: [0xe0,0x13,0xdf,0x9a]14// CHECK: irg x0, x1, x2 // encoding: [0x20,0x10,0xc2,0x9a]15// CHECK: irg sp, x1, x2 // encoding: [0x3f,0x10,0xc2,0x9a]16 17// NOMTE: instruction requires: mte18// NOMTE-NEXT: irg x0, x119// NOMTE: instruction requires: mte20// NOMTE-NEXT: irg sp, x121// NOMTE: instruction requires: mte22// NOMTE-NEXT: irg x0, sp23// NOMTE: instruction requires: mte24// NOMTE-NEXT: irg x0, x1, x225// NOMTE: instruction requires: mte26// NOMTE-NEXT: irg sp, x1, x227 28addg x0, x1, #0, #129addg sp, x2, #32, #330addg x0, sp, #64, #531addg x3, x4, #1008, #632addg x5, x6, #112, #1533 34subg x0, x1, #0, #135subg sp, x2, #32, #336subg x0, sp, #64, #537subg x3, x4, #1008, #638subg x5, x6, #112, #1539 40// CHECK: addg x0, x1, #0, #1 // encoding: [0x20,0x04,0x80,0x91]41// CHECK: addg sp, x2, #32, #3 // encoding: [0x5f,0x0c,0x82,0x91]42// CHECK: addg x0, sp, #64, #5 // encoding: [0xe0,0x17,0x84,0x91]43// CHECK: addg x3, x4, #1008, #6 // encoding: [0x83,0x18,0xbf,0x91]44// CHECK: addg x5, x6, #112, #15 // encoding: [0xc5,0x3c,0x87,0x91]45 46// CHECK: subg x0, x1, #0, #1 // encoding: [0x20,0x04,0x80,0xd1]47// CHECK: subg sp, x2, #32, #3 // encoding: [0x5f,0x0c,0x82,0xd1]48// CHECK: subg x0, sp, #64, #5 // encoding: [0xe0,0x17,0x84,0xd1]49// CHECK: subg x3, x4, #1008, #6 // encoding: [0x83,0x18,0xbf,0xd1]50// CHECK: subg x5, x6, #112, #15 // encoding: [0xc5,0x3c,0x87,0xd1]51 52// NOMTE: instruction requires: mte53// NOMTE-NEXT: addg x0, x1, #0, #154// NOMTE: instruction requires: mte55// NOMTE-NEXT: addg sp, x2, #32, #356// NOMTE: instruction requires: mte57// NOMTE-NEXT: addg x0, sp, #64, #558// NOMTE: instruction requires: mte59// NOMTE-NEXT: addg x3, x4, #1008, #660// NOMTE: instruction requires: mte61// NOMTE-NEXT: addg x5, x6, #112, #1562 63// NOMTE: instruction requires: mte64// NOMTE-NEXT: subg x0, x1, #0, #165// NOMTE: instruction requires: mte66// NOMTE-NEXT: subg sp, x2, #32, #367// NOMTE: instruction requires: mte68// NOMTE-NEXT: subg x0, sp, #64, #569// NOMTE: instruction requires: mte70// NOMTE-NEXT: subg x3, x4, #1008, #671// NOMTE: instruction requires: mte72// NOMTE-NEXT: subg x5, x6, #112, #1573 74gmi x0, x1, x275gmi x3, sp, x476gmi xzr, x0, x3077gmi x30, x0, xzr78 79// CHECK: gmi x0, x1, x2 // encoding: [0x20,0x14,0xc2,0x9a]80// CHECK: gmi x3, sp, x4 // encoding: [0xe3,0x17,0xc4,0x9a]81// CHECK: gmi xzr, x0, x30 // encoding: [0x1f,0x14,0xde,0x9a]82// CHECK: gmi x30, x0, xzr // encoding: [0x1e,0x14,0xdf,0x9a]83 84// NOMTE: instruction requires: mte85// NOMTE-NEXT: gmi x0, x1, x286// NOMTE: instruction requires: mte87// NOMTE-NEXT: gmi x3, sp, x488// NOMTE: instruction requires: mte89// NOMTE-NEXT: gmi xzr, x0, x3090// NOMTE: instruction requires: mte91// NOMTE-NEXT: gmi x30, x0, xzr92 93stg x0, [x1]94stg x1, [x1, #-4096]95stg x2, [x2, #4080]96stg x3, [sp, #16]97stg sp, [sp, #16]98 99// CHECK: stg x0, [x1] // encoding: [0x20,0x08,0x20,0xd9]100// CHECK: stg x1, [x1, #-4096] // encoding: [0x21,0x08,0x30,0xd9]101// CHECK: stg x2, [x2, #4080] // encoding: [0x42,0xf8,0x2f,0xd9]102// CHECK: stg x3, [sp, #16] // encoding: [0xe3,0x1b,0x20,0xd9]103// CHECK: stg sp, [sp, #16] // encoding: [0xff,0x1b,0x20,0xd9]104 105// NOMTE: instruction requires: mte106// NOMTE-NEXT: stg107// NOMTE: instruction requires: mte108// NOMTE-NEXT: stg109// NOMTE: instruction requires: mte110// NOMTE-NEXT: stg111// NOMTE: instruction requires: mte112// NOMTE-NEXT: stg113// NOMTE: instruction requires: mte114// NOMTE-NEXT: stg115 116stzg x0, [x1]117stzg x1, [x1, #-4096]118stzg x2, [x2, #4080]119stzg x3, [sp, #16]120stzg sp, [sp, #16]121 122// CHECK: stzg x0, [x1] // encoding: [0x20,0x08,0x60,0xd9]123// CHECK: stzg x1, [x1, #-4096] // encoding: [0x21,0x08,0x70,0xd9]124// CHECK: stzg x2, [x2, #4080] // encoding: [0x42,0xf8,0x6f,0xd9]125// CHECK: stzg x3, [sp, #16] // encoding: [0xe3,0x1b,0x60,0xd9]126// CHECK: stzg sp, [sp, #16] // encoding: [0xff,0x1b,0x60,0xd9]127 128// NOMTE: instruction requires: mte129// NOMTE-NEXT: stzg130// NOMTE: instruction requires: mte131// NOMTE-NEXT: stzg132// NOMTE: instruction requires: mte133// NOMTE-NEXT: stzg134// NOMTE: instruction requires: mte135// NOMTE-NEXT: stzg136// NOMTE: instruction requires: mte137// NOMTE-NEXT: stzg138 139stg x0, [x1, #-4096]!140stg x1, [x2, #4080]!141stg x2, [sp, #16]!142stg sp, [sp, #16]!143 144// CHECK: stg x0, [x1, #-4096]! // encoding: [0x20,0x0c,0x30,0xd9]145// CHECK: stg x1, [x2, #4080]! // encoding: [0x41,0xfc,0x2f,0xd9]146// CHECK: stg x2, [sp, #16]! // encoding: [0xe2,0x1f,0x20,0xd9]147// CHECK: stg sp, [sp, #16]! // encoding: [0xff,0x1f,0x20,0xd9]148 149// NOMTE: instruction requires: mte150// NOMTE-NEXT: stg151// NOMTE: instruction requires: mte152// NOMTE-NEXT: stg153// NOMTE: instruction requires: mte154// NOMTE-NEXT: stg155// NOMTE: instruction requires: mte156// NOMTE-NEXT: stg157 158stzg x0, [x1, #-4096]!159stzg x1, [x2, #4080]!160stzg x2, [sp, #16]!161stzg sp, [sp, #16]!162 163// CHECK: stzg x0, [x1, #-4096]! // encoding: [0x20,0x0c,0x70,0xd9]164// CHECK: stzg x1, [x2, #4080]! // encoding: [0x41,0xfc,0x6f,0xd9]165// CHECK: stzg x2, [sp, #16]! // encoding: [0xe2,0x1f,0x60,0xd9]166// CHECK: stzg sp, [sp, #16]! // encoding: [0xff,0x1f,0x60,0xd9]167 168// NOMTE: instruction requires: mte169// NOMTE-NEXT: stzg170// NOMTE: instruction requires: mte171// NOMTE-NEXT: stzg172// NOMTE: instruction requires: mte173// NOMTE-NEXT: stzg174// NOMTE: instruction requires: mte175// NOMTE-NEXT: stzg176 177stg x0, [x1], #-4096178stg x1, [x2], #4080179stg x2, [sp], #16180stg sp, [sp], #16181 182// CHECK: stg x0, [x1], #-4096 // encoding: [0x20,0x04,0x30,0xd9]183// CHECK: stg x1, [x2], #4080 // encoding: [0x41,0xf4,0x2f,0xd9]184// CHECK: stg x2, [sp], #16 // encoding: [0xe2,0x17,0x20,0xd9]185// CHECK: stg sp, [sp], #16 // encoding: [0xff,0x17,0x20,0xd9]186 187// NOMTE: instruction requires: mte188// NOMTE-NEXT: stg189// NOMTE: instruction requires: mte190// NOMTE-NEXT: stg191// NOMTE: instruction requires: mte192// NOMTE-NEXT: stg193// NOMTE: instruction requires: mte194// NOMTE-NEXT: stg195 196stzg x0, [x1], #-4096197stzg x1, [x2], #4080198stzg x2, [sp], #16199stzg sp, [sp], #16200 201// CHECK: stzg x0, [x1], #-4096 // encoding: [0x20,0x04,0x70,0xd9]202// CHECK: stzg x1, [x2], #4080 // encoding: [0x41,0xf4,0x6f,0xd9]203// CHECK: stzg x2, [sp], #16 // encoding: [0xe2,0x17,0x60,0xd9]204// CHECK: stzg sp, [sp], #16 // encoding: [0xff,0x17,0x60,0xd9]205 206// NOMTE: instruction requires: mte207// NOMTE-NEXT: stzg208// NOMTE: instruction requires: mte209// NOMTE-NEXT: stzg210// NOMTE: instruction requires: mte211// NOMTE-NEXT: stzg212// NOMTE: instruction requires: mte213// NOMTE-NEXT: stzg214 215st2g x0, [x1]216st2g x1, [x1, #-4096]217st2g x2, [x2, #4080]218st2g x3, [sp, #16]219st2g sp, [sp, #16]220 221// CHECK: st2g x0, [x1] // encoding: [0x20,0x08,0xa0,0xd9]222// CHECK: st2g x1, [x1, #-4096] // encoding: [0x21,0x08,0xb0,0xd9]223// CHECK: st2g x2, [x2, #4080] // encoding: [0x42,0xf8,0xaf,0xd9]224// CHECK: st2g x3, [sp, #16] // encoding: [0xe3,0x1b,0xa0,0xd9]225// CHECK: st2g sp, [sp, #16] // encoding: [0xff,0x1b,0xa0,0xd9]226 227// NOMTE: instruction requires: mte228// NOMTE-NEXT: st2g229// NOMTE: instruction requires: mte230// NOMTE-NEXT: st2g231// NOMTE: instruction requires: mte232// NOMTE-NEXT: st2g233// NOMTE: instruction requires: mte234// NOMTE-NEXT: st2g235// NOMTE: instruction requires: mte236// NOMTE-NEXT: st2g237 238stz2g x0, [x1]239stz2g x1, [x1, #-4096]240stz2g x2, [x2, #4080]241stz2g x3, [sp, #16]242stz2g sp, [sp, #16]243 244// CHECK: stz2g x0, [x1] // encoding: [0x20,0x08,0xe0,0xd9]245// CHECK: stz2g x1, [x1, #-4096] // encoding: [0x21,0x08,0xf0,0xd9]246// CHECK: stz2g x2, [x2, #4080] // encoding: [0x42,0xf8,0xef,0xd9]247// CHECK: stz2g x3, [sp, #16] // encoding: [0xe3,0x1b,0xe0,0xd9]248// CHECK: stz2g sp, [sp, #16] // encoding: [0xff,0x1b,0xe0,0xd9]249 250// NOMTE: instruction requires: mte251// NOMTE-NEXT: stz2g252// NOMTE: instruction requires: mte253// NOMTE-NEXT: stz2g254// NOMTE: instruction requires: mte255// NOMTE-NEXT: stz2g256// NOMTE: instruction requires: mte257// NOMTE-NEXT: stz2g258// NOMTE: instruction requires: mte259// NOMTE-NEXT: stz2g260 261st2g x0, [x1, #-4096]!262st2g x1, [x2, #4080]!263st2g x2, [sp, #16]!264st2g sp, [sp, #16]!265 266// CHECK: st2g x0, [x1, #-4096]! // encoding: [0x20,0x0c,0xb0,0xd9]267// CHECK: st2g x1, [x2, #4080]! // encoding: [0x41,0xfc,0xaf,0xd9]268// CHECK: st2g x2, [sp, #16]! // encoding: [0xe2,0x1f,0xa0,0xd9]269// CHECK: st2g sp, [sp, #16]! // encoding: [0xff,0x1f,0xa0,0xd9]270 271// NOMTE: instruction requires: mte272// NOMTE-NEXT: st2g273// NOMTE: instruction requires: mte274// NOMTE-NEXT: st2g275// NOMTE: instruction requires: mte276// NOMTE-NEXT: st2g277// NOMTE: instruction requires: mte278// NOMTE-NEXT: st2g279 280stz2g x0, [x1, #-4096]!281stz2g x1, [x2, #4080]!282stz2g x2, [sp, #16]!283stz2g sp, [sp, #16]!284 285// CHECK: stz2g x0, [x1, #-4096]! // encoding: [0x20,0x0c,0xf0,0xd9]286// CHECK: stz2g x1, [x2, #4080]! // encoding: [0x41,0xfc,0xef,0xd9]287// CHECK: stz2g x2, [sp, #16]! // encoding: [0xe2,0x1f,0xe0,0xd9]288// CHECK: stz2g sp, [sp, #16]! // encoding: [0xff,0x1f,0xe0,0xd9]289 290// NOMTE: instruction requires: mte291// NOMTE-NEXT: stz2g292// NOMTE: instruction requires: mte293// NOMTE-NEXT: stz2g294// NOMTE: instruction requires: mte295// NOMTE-NEXT: stz2g296// NOMTE: instruction requires: mte297// NOMTE-NEXT: stz2g298 299st2g x0, [x1], #-4096300st2g x1, [x2], #4080301st2g x2, [sp], #16302st2g sp, [sp], #16303 304// CHECK: st2g x0, [x1], #-4096 // encoding: [0x20,0x04,0xb0,0xd9]305// CHECK: st2g x1, [x2], #4080 // encoding: [0x41,0xf4,0xaf,0xd9]306// CHECK: st2g x2, [sp], #16 // encoding: [0xe2,0x17,0xa0,0xd9]307// CHECK: st2g sp, [sp], #16 // encoding: [0xff,0x17,0xa0,0xd9]308 309// NOMTE: instruction requires: mte310// NOMTE-NEXT: st2g311// NOMTE: instruction requires: mte312// NOMTE-NEXT: st2g313// NOMTE: instruction requires: mte314// NOMTE-NEXT: st2g315// NOMTE: instruction requires: mte316// NOMTE-NEXT: st2g317 318stz2g x0, [x1], #-4096319stz2g x1, [x2], #4080320stz2g x2, [sp], #16321stz2g sp, [sp], #16322 323// CHECK: stz2g x0, [x1], #-4096 // encoding: [0x20,0x04,0xf0,0xd9]324// CHECK: stz2g x1, [x2], #4080 // encoding: [0x41,0xf4,0xef,0xd9]325// CHECK: stz2g x2, [sp], #16 // encoding: [0xe2,0x17,0xe0,0xd9]326// CHECK: stz2g sp, [sp], #16 // encoding: [0xff,0x17,0xe0,0xd9]327 328// NOMTE: instruction requires: mte329// NOMTE-NEXT: stz2g330// NOMTE: instruction requires: mte331// NOMTE-NEXT: stz2g332// NOMTE: instruction requires: mte333// NOMTE-NEXT: stz2g334// NOMTE: instruction requires: mte335// NOMTE-NEXT: stz2g336 337stgp x0, x1, [x2]338stgp x0, x1, [x2, #-1024]339stgp x0, x1, [x2, #1008]340stgp x0, x1, [sp, #16]341stgp xzr, x1, [x2, #16]342stgp x0, xzr, [x2, #16]343 344// CHECK: stgp x0, x1, [x2] // encoding: [0x40,0x04,0x00,0x69]345// CHECK: stgp x0, x1, [x2, #-1024] // encoding: [0x40,0x04,0x20,0x69]346// CHECK: stgp x0, x1, [x2, #1008] // encoding: [0x40,0x84,0x1f,0x69]347// CHECK: stgp x0, x1, [sp, #16] // encoding: [0xe0,0x87,0x00,0x69]348// CHECK: stgp xzr, x1, [x2, #16] // encoding: [0x5f,0x84,0x00,0x69]349// CHECK: stgp x0, xzr, [x2, #16] // encoding: [0x40,0xfc,0x00,0x69]350 351// NOMTE: instruction requires: mte352// NOMTE-NEXT: stgp353// NOMTE: instruction requires: mte354// NOMTE-NEXT: stgp355// NOMTE: instruction requires: mte356// NOMTE-NEXT: stgp357// NOMTE: instruction requires: mte358// NOMTE-NEXT: stgp359 360stgp x0, x1, [x2, #-1024]!361stgp x0, x1, [x2, #1008]!362stgp x0, x1, [sp, #16]!363stgp xzr, x1, [x2, #16]!364stgp x0, xzr, [x2, #16]!365 366// CHECK: stgp x0, x1, [x2, #-1024]! // encoding: [0x40,0x04,0xa0,0x69]367// CHECK: stgp x0, x1, [x2, #1008]! // encoding: [0x40,0x84,0x9f,0x69]368// CHECK: stgp x0, x1, [sp, #16]! // encoding: [0xe0,0x87,0x80,0x69]369// CHECK: stgp xzr, x1, [x2, #16]! // encoding: [0x5f,0x84,0x80,0x69]370// CHECK: stgp x0, xzr, [x2, #16]! // encoding: [0x40,0xfc,0x80,0x69]371 372// NOMTE: instruction requires: mte373// NOMTE-NEXT: stgp374// NOMTE: instruction requires: mte375// NOMTE-NEXT: stgp376// NOMTE: instruction requires: mte377// NOMTE-NEXT: stgp378// NOMTE: instruction requires: mte379// NOMTE-NEXT: stgp380// NOMTE: instruction requires: mte381// NOMTE-NEXT: stgp382 383stgp x0, x1, [x2], #-1024384stgp x0, x1, [x2], #1008385stgp x0, x1, [sp], #16386stgp xzr, x1, [x2], #16387stgp x0, xzr, [x2], #16388 389// CHECK: stgp x0, x1, [x2], #-1024 // encoding: [0x40,0x04,0xa0,0x68]390// CHECK: stgp x0, x1, [x2], #1008 // encoding: [0x40,0x84,0x9f,0x68]391// CHECK: stgp x0, x1, [sp], #16 // encoding: [0xe0,0x87,0x80,0x68]392// CHECK: stgp xzr, x1, [x2], #16 // encoding: [0x5f,0x84,0x80,0x68]393// CHECK: stgp x0, xzr, [x2], #16 // encoding: [0x40,0xfc,0x80,0x68]394 395// NOMTE: instruction requires: mte396// NOMTE-NEXT: stgp397// NOMTE: instruction requires: mte398// NOMTE-NEXT: stgp399// NOMTE: instruction requires: mte400// NOMTE-NEXT: stgp401// NOMTE: instruction requires: mte402// NOMTE-NEXT: stgp403// NOMTE: instruction requires: mte404// NOMTE-NEXT: stgp405 406dc igvac, x0407dc igsw, x1408dc cgsw, x2409dc cigsw, x3410dc cgvac, x4411dc cgvap, x5412dc cgvadp, x6413dc cigvac, x7414dc gva, x8415dc igdvac, x9416dc igdsw, x10417dc cgdsw, x11418dc cigdsw, x12419dc cgdvac, x13420dc cgdvap, x14421dc cgdvadp, x15422dc cigdvac, x16423dc gzva, x17424 425// CHECK: dc igvac, x0 // encoding: [0x60,0x76,0x08,0xd5]426// CHECK: dc igsw, x1 // encoding: [0x81,0x76,0x08,0xd5]427// CHECK: dc cgsw, x2 // encoding: [0x82,0x7a,0x08,0xd5]428// CHECK: dc cigsw, x3 // encoding: [0x83,0x7e,0x08,0xd5]429// CHECK: dc cgvac, x4 // encoding: [0x64,0x7a,0x0b,0xd5]430// CHECK: dc cgvap, x5 // encoding: [0x65,0x7c,0x0b,0xd5]431// CHECK: dc cgvadp, x6 // encoding: [0x66,0x7d,0x0b,0xd5]432// CHECK: dc cigvac, x7 // encoding: [0x67,0x7e,0x0b,0xd5]433// CHECK: dc gva, x8 // encoding: [0x68,0x74,0x0b,0xd5]434// CHECK: dc igdvac, x9 // encoding: [0xa9,0x76,0x08,0xd5]435// CHECK: dc igdsw, x10 // encoding: [0xca,0x76,0x08,0xd5]436// CHECK: dc cgdsw, x11 // encoding: [0xcb,0x7a,0x08,0xd5]437// CHECK: dc cigdsw, x12 // encoding: [0xcc,0x7e,0x08,0xd5]438// CHECK: dc cgdvac, x13 // encoding: [0xad,0x7a,0x0b,0xd5]439// CHECK: dc cgdvap, x14 // encoding: [0xae,0x7c,0x0b,0xd5]440// CHECK: dc cgdvadp, x15 // encoding: [0xaf,0x7d,0x0b,0xd5]441// CHECK: dc cigdvac, x16 // encoding: [0xb0,0x7e,0x0b,0xd5]442// CHECK: dc gzva, x17 // encoding: [0x91,0x74,0x0b,0xd5]443 444// NOMTE: DC IGVAC requires: mte445// NOMTE: DC IGSW requires: mte446// NOMTE: DC CGSW requires: mte447// NOMTE: DC CIGSW requires: mte448// NOMTE: DC CGVAC requires: mte449// NOMTE: DC CGVAP requires: mte450// NOMTE: DC CGVADP requires: mte451// NOMTE: DC CIGVAC requires: mte452// NOMTE: DC GVA requires: mte453// NOMTE: DC IGDVAC requires: mte454// NOMTE: DC IGDSW requires: mte455// NOMTE: DC CGDSW requires: mte456// NOMTE: DC CIGDSW requires: mte457// NOMTE: DC CGDVAC requires: mte458// NOMTE: DC CGDVAP requires: mte459// NOMTE: DC CGDVADP requires: mte460// NOMTE: DC CIGDVAC requires: mte461// NOMTE: DC GZVA requires: mte462 463mrs x0, tco464mrs x1, gcr_el1465mrs x2, rgsr_el1466mrs x3, tfsr_el1467mrs x4, tfsr_el2468mrs x5, tfsr_el3469mrs x6, tfsr_el12470mrs x7, tfsre0_el1471mrs x7, gmid_el1472 473// CHECK: mrs x0, TCO // encoding: [0xe0,0x42,0x3b,0xd5]474// CHECK: mrs x1, GCR_EL1 // encoding: [0xc1,0x10,0x38,0xd5]475// CHECK: mrs x2, RGSR_EL1 // encoding: [0xa2,0x10,0x38,0xd5]476// CHECK: mrs x3, TFSR_EL1 // encoding: [0x03,0x56,0x38,0xd5]477// CHECK: mrs x4, TFSR_EL2 // encoding: [0x04,0x56,0x3c,0xd5]478// CHECK: mrs x5, TFSR_EL3 // encoding: [0x05,0x56,0x3e,0xd5]479// CHECK: mrs x6, TFSR_EL12 // encoding: [0x06,0x56,0x3d,0xd5]480// CHECK: mrs x7, TFSRE0_EL1 // encoding: [0x27,0x56,0x38,0xd5]481// CHECK: mrs x7, GMID_EL1 // encoding: [0x87,0x00,0x39,0xd5]482 483// NOMTE: expected readable system register484// NOMTE-NEXT: tco485// NOMTE: expected readable system register486// NOMTE-NEXT: gcr_el1487// NOMTE: expected readable system register488// NOMTE-NEXT: rgsr_el1489// NOMTE: expected readable system register490// NOMTE-NEXT: tfsr_el1491// NOMTE: expected readable system register492// NOMTE-NEXT: tfsr_el2493// NOMTE: expected readable system register494// NOMTE-NEXT: tfsr_el3495// NOMTE: expected readable system register496// NOMTE-NEXT: tfsr_el12497// NOMTE: expected readable system register498// NOMTE-NEXT: tfsre0_el1499// NOMTE: expected readable system register500// NOMTE-NEXT: gmid_el1501 502msr tco, #0503 504// CHECK: msr TCO, #0 // encoding: [0x9f,0x40,0x03,0xd5]505 506// NOMTE: expected writable system register or pstate507// NOMTE-NEXT: tco508 509msr tco, x0510msr gcr_el1, x1511msr rgsr_el1, x2512msr tfsr_el1, x3513msr tfsr_el2, x4514msr tfsr_el3, x5515msr tfsr_el12, x6516msr tfsre0_el1, x7517 518// CHECK: msr TCO, x0 // encoding: [0xe0,0x42,0x1b,0xd5]519// CHECK: msr GCR_EL1, x1 // encoding: [0xc1,0x10,0x18,0xd5]520// CHECK: msr RGSR_EL1, x2 // encoding: [0xa2,0x10,0x18,0xd5]521// CHECK: msr TFSR_EL1, x3 // encoding: [0x03,0x56,0x18,0xd5]522// CHECK: msr TFSR_EL2, x4 // encoding: [0x04,0x56,0x1c,0xd5]523// CHECK: msr TFSR_EL3, x5 // encoding: [0x05,0x56,0x1e,0xd5]524// CHECK: msr TFSR_EL12, x6 // encoding: [0x06,0x56,0x1d,0xd5]525// CHECK: msr TFSRE0_EL1, x7 // encoding: [0x27,0x56,0x18,0xd5]526 527// NOMTE: expected writable system register or pstate528// NOMTE-NEXT: tco529// NOMTE: expected writable system register or pstate530// NOMTE-NEXT: gcr_el1531// NOMTE: expected writable system register or pstate532// NOMTE-NEXT: rgsr_el1533// NOMTE: expected writable system register or pstate534// NOMTE-NEXT: tfsr_el1535// NOMTE: expected writable system register or pstate536// NOMTE-NEXT: tfsr_el2537// NOMTE: expected writable system register or pstate538// NOMTE-NEXT: tfsr_el3539// NOMTE: expected writable system register or pstate540// NOMTE-NEXT: tfsr_el12541// NOMTE: expected writable system register or pstate542// NOMTE-NEXT: tfsre0_el1543 544subp x0, x1, x2545subp x0, sp, sp546subps x0, x1, x2547subps x0, sp, sp548 549// CHECK: subp x0, x1, x2 // encoding: [0x20,0x00,0xc2,0x9a]550// CHECK: subp x0, sp, sp // encoding: [0xe0,0x03,0xdf,0x9a]551// CHECK: subps x0, x1, x2 // encoding: [0x20,0x00,0xc2,0xba]552// CHECK: subps x0, sp, sp // encoding: [0xe0,0x03,0xdf,0xba]553 554// NOMTE: instruction requires: mte555// NOMTE: instruction requires: mte556// NOMTE: instruction requires: mte557 558subps xzr, x0, x1559cmpp x0, x1560subps xzr, sp, sp561cmpp sp, sp562 563// CHECK: subps xzr, x0, x1 // encoding: [0x1f,0x00,0xc1,0xba]564// CHECK: subps xzr, x0, x1 // encoding: [0x1f,0x00,0xc1,0xba]565// CHECK: subps xzr, sp, sp // encoding: [0xff,0x03,0xdf,0xba]566// CHECK: subps xzr, sp, sp // encoding: [0xff,0x03,0xdf,0xba]567 568// NOMTE: instruction requires: mte569// NOMTE: instruction requires: mte570// NOMTE: instruction requires: mte571// NOMTE: instruction requires: mte572 573ldg X0, [X1, #0]574ldg X2, [sp, #-4096]575ldg x3, [x4, #4080]576 577// CHECK: ldg x0, [x1] // encoding: [0x20,0x00,0x60,0xd9]578// CHECK: ldg x2, [sp, #-4096] // encoding: [0xe2,0x03,0x70,0xd9]579// CHECK: ldg x3, [x4, #4080] // encoding: [0x83,0xf0,0x6f,0xd9]580 581// NOMTE: instruction requires: mte582// NOMTE: instruction requires: mte583// NOMTE: instruction requires: mte584 585ldgm x0, [x1]586ldgm x1, [sp]587ldgm xzr, [x2]588 589// CHECK: ldgm x0, [x1] // encoding: [0x20,0x00,0xe0,0xd9]590// CHECK: ldgm x1, [sp] // encoding: [0xe1,0x03,0xe0,0xd9]591// CHECK: ldgm xzr, [x2] // encoding: [0x5f,0x00,0xe0,0xd9]592 593// NOMTE: instruction requires: mte594// NOMTE: instruction requires: mte595// NOMTE: instruction requires: mte596 597stgm x0, [x1]598stgm x1, [sp]599stgm xzr, [x2]600 601// CHECK: stgm x0, [x1] // encoding: [0x20,0x00,0xa0,0xd9]602// CHECK: stgm x1, [sp] // encoding: [0xe1,0x03,0xa0,0xd9]603// CHECK: stgm xzr, [x2] // encoding: [0x5f,0x00,0xa0,0xd9]604 605// NOMTE: instruction requires: mte606// NOMTE: instruction requires: mte607// NOMTE: instruction requires: mte608 609stzgm x0, [x1]610stzgm x1, [sp]611stzgm xzr, [x2]612 613// CHECK: stzgm x0, [x1] // encoding: [0x20,0x00,0x20,0xd9]614// CHECK: stzgm x1, [sp] // encoding: [0xe1,0x03,0x20,0xd9]615// CHECK: stzgm xzr, [x2] // encoding: [0x5f,0x00,0x20,0xd9]616 617// NOMTE: instruction requires: mte618// NOMTE: instruction requires: mte619// NOMTE: instruction requires: mte620