1*9880d681SAndroid Build Coastguard Worker; RUN: llvm-mc -triple arm64-apple-darwin -show-encoding < %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workerfoo: 4*9880d681SAndroid Build Coastguard Worker;----------------------------------------------------------------------------- 5*9880d681SAndroid Build Coastguard Worker; Indexed loads 6*9880d681SAndroid Build Coastguard Worker;----------------------------------------------------------------------------- 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Worker ldr w5, [x4, #20] 9*9880d681SAndroid Build Coastguard Worker ldr x4, [x3] 10*9880d681SAndroid Build Coastguard Worker ldr x2, [sp, #32] 11*9880d681SAndroid Build Coastguard Worker ldr b5, [sp, #1] 12*9880d681SAndroid Build Coastguard Worker ldr h6, [sp, #2] 13*9880d681SAndroid Build Coastguard Worker ldr s7, [sp, #4] 14*9880d681SAndroid Build Coastguard Worker ldr d8, [sp, #8] 15*9880d681SAndroid Build Coastguard Worker ldr q9, [sp, #16] 16*9880d681SAndroid Build Coastguard Worker ldrb w4, [x3] 17*9880d681SAndroid Build Coastguard Worker ldrb w5, [x4, #20] 18*9880d681SAndroid Build Coastguard Worker ldrb w2, [x3, _foo@pageoff] 19*9880d681SAndroid Build Coastguard Worker ldrb w3, [x2, "+[Test method].var"@PAGEOFF] 20*9880d681SAndroid Build Coastguard Worker ldrsb w9, [x3] 21*9880d681SAndroid Build Coastguard Worker ldrsb x2, [sp, #128] 22*9880d681SAndroid Build Coastguard Worker ldrh w2, [sp, #32] 23*9880d681SAndroid Build Coastguard Worker ldrsh w3, [sp, #32] 24*9880d681SAndroid Build Coastguard Worker ldrsh x5, [x9, #24] 25*9880d681SAndroid Build Coastguard Worker ldrsw x9, [sp, #512] 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Worker prfm #5, [sp, #32] 28*9880d681SAndroid Build Coastguard Worker prfm #31, [sp, #32] 29*9880d681SAndroid Build Coastguard Worker prfm pldl1keep, [x2] 30*9880d681SAndroid Build Coastguard Worker prfm pldl1strm, [x2] 31*9880d681SAndroid Build Coastguard Worker prfm pldl2keep, [x2] 32*9880d681SAndroid Build Coastguard Worker prfm pldl2strm, [x2] 33*9880d681SAndroid Build Coastguard Worker prfm pldl3keep, [x2] 34*9880d681SAndroid Build Coastguard Worker prfm pldl3strm, [x2] 35*9880d681SAndroid Build Coastguard Worker prfm pstl1keep, [x2] 36*9880d681SAndroid Build Coastguard Worker prfm pstl1strm, [x2] 37*9880d681SAndroid Build Coastguard Worker prfm pstl2keep, [x2] 38*9880d681SAndroid Build Coastguard Worker prfm pstl2strm, [x2] 39*9880d681SAndroid Build Coastguard Worker prfm pstl3keep, [x2] 40*9880d681SAndroid Build Coastguard Worker prfm pstl3strm, [x2] 41*9880d681SAndroid Build Coastguard Worker prfm pstl3strm, [x4, x5, lsl #3] 42*9880d681SAndroid Build Coastguard Worker 43*9880d681SAndroid Build Coastguard Worker; CHECK: ldr w5, [x4, #20] ; encoding: [0x85,0x14,0x40,0xb9] 44*9880d681SAndroid Build Coastguard Worker; CHECK: ldr x4, [x3] ; encoding: [0x64,0x00,0x40,0xf9] 45*9880d681SAndroid Build Coastguard Worker; CHECK: ldr x2, [sp, #32] ; encoding: [0xe2,0x13,0x40,0xf9] 46*9880d681SAndroid Build Coastguard Worker; CHECK: ldr b5, [sp, #1] ; encoding: [0xe5,0x07,0x40,0x3d] 47*9880d681SAndroid Build Coastguard Worker; CHECK: ldr h6, [sp, #2] ; encoding: [0xe6,0x07,0x40,0x7d] 48*9880d681SAndroid Build Coastguard Worker; CHECK: ldr s7, [sp, #4] ; encoding: [0xe7,0x07,0x40,0xbd] 49*9880d681SAndroid Build Coastguard Worker; CHECK: ldr d8, [sp, #8] ; encoding: [0xe8,0x07,0x40,0xfd] 50*9880d681SAndroid Build Coastguard Worker; CHECK: ldr q9, [sp, #16] ; encoding: [0xe9,0x07,0xc0,0x3d] 51*9880d681SAndroid Build Coastguard Worker; CHECK: ldrb w4, [x3] ; encoding: [0x64,0x00,0x40,0x39] 52*9880d681SAndroid Build Coastguard Worker; CHECK: ldrb w5, [x4, #20] ; encoding: [0x85,0x50,0x40,0x39] 53*9880d681SAndroid Build Coastguard Worker; CHECK: ldrb w2, [x3, _foo@PAGEOFF] ; encoding: [0x62,0bAAAAAA00,0b01AAAAAA,0x39] 54*9880d681SAndroid Build Coastguard Worker; CHECK: ldrb w3, [x2, "+[Test method].var"@PAGEOFF] ; encoding: [0x43,0bAAAAAA00,0b01AAAAAA,0x39] 55*9880d681SAndroid Build Coastguard Worker; CHECK: ldrsb w9, [x3] ; encoding: [0x69,0x00,0xc0,0x39] 56*9880d681SAndroid Build Coastguard Worker; CHECK: ldrsb x2, [sp, #128] ; encoding: [0xe2,0x03,0x82,0x39] 57*9880d681SAndroid Build Coastguard Worker; CHECK: ldrh w2, [sp, #32] ; encoding: [0xe2,0x43,0x40,0x79] 58*9880d681SAndroid Build Coastguard Worker; CHECK: ldrsh w3, [sp, #32] ; encoding: [0xe3,0x43,0xc0,0x79] 59*9880d681SAndroid Build Coastguard Worker; CHECK: ldrsh x5, [x9, #24] ; encoding: [0x25,0x31,0x80,0x79] 60*9880d681SAndroid Build Coastguard Worker; CHECK: ldrsw x9, [sp, #512] ; encoding: [0xe9,0x03,0x82,0xb9] 61*9880d681SAndroid Build Coastguard Worker; CHECK: prfm pldl3strm, [sp, #32] ; encoding: [0xe5,0x13,0x80,0xf9] 62*9880d681SAndroid Build Coastguard Worker; CHECK: prfm #31, [sp, #32] ; encoding: [0xff,0x13,0x80,0xf9] 63*9880d681SAndroid Build Coastguard Worker; CHECK: prfm pldl1keep, [x2] ; encoding: [0x40,0x00,0x80,0xf9] 64*9880d681SAndroid Build Coastguard Worker; CHECK: prfm pldl1strm, [x2] ; encoding: [0x41,0x00,0x80,0xf9] 65*9880d681SAndroid Build Coastguard Worker; CHECK: prfm pldl2keep, [x2] ; encoding: [0x42,0x00,0x80,0xf9] 66*9880d681SAndroid Build Coastguard Worker; CHECK: prfm pldl2strm, [x2] ; encoding: [0x43,0x00,0x80,0xf9] 67*9880d681SAndroid Build Coastguard Worker; CHECK: prfm pldl3keep, [x2] ; encoding: [0x44,0x00,0x80,0xf9] 68*9880d681SAndroid Build Coastguard Worker; CHECK: prfm pldl3strm, [x2] ; encoding: [0x45,0x00,0x80,0xf9] 69*9880d681SAndroid Build Coastguard Worker; CHECK: prfm pstl1keep, [x2] ; encoding: [0x50,0x00,0x80,0xf9] 70*9880d681SAndroid Build Coastguard Worker; CHECK: prfm pstl1strm, [x2] ; encoding: [0x51,0x00,0x80,0xf9] 71*9880d681SAndroid Build Coastguard Worker; CHECK: prfm pstl2keep, [x2] ; encoding: [0x52,0x00,0x80,0xf9] 72*9880d681SAndroid Build Coastguard Worker; CHECK: prfm pstl2strm, [x2] ; encoding: [0x53,0x00,0x80,0xf9] 73*9880d681SAndroid Build Coastguard Worker; CHECK: prfm pstl3keep, [x2] ; encoding: [0x54,0x00,0x80,0xf9] 74*9880d681SAndroid Build Coastguard Worker; CHECK: prfm pstl3strm, [x2] ; encoding: [0x55,0x00,0x80,0xf9] 75*9880d681SAndroid Build Coastguard Worker; CHECK: prfm pstl3strm, [x4, x5, lsl #3] ; encoding: [0x95,0x78,0xa5,0xf8] 76*9880d681SAndroid Build Coastguard Worker 77*9880d681SAndroid Build Coastguard Worker;----------------------------------------------------------------------------- 78*9880d681SAndroid Build Coastguard Worker; Indexed stores 79*9880d681SAndroid Build Coastguard Worker;----------------------------------------------------------------------------- 80*9880d681SAndroid Build Coastguard Worker 81*9880d681SAndroid Build Coastguard Worker str x4, [x3] 82*9880d681SAndroid Build Coastguard Worker str x2, [sp, #32] 83*9880d681SAndroid Build Coastguard Worker str w5, [x4, #20] 84*9880d681SAndroid Build Coastguard Worker str b5, [sp, #1] 85*9880d681SAndroid Build Coastguard Worker str h6, [sp, #2] 86*9880d681SAndroid Build Coastguard Worker str s7, [sp, #4] 87*9880d681SAndroid Build Coastguard Worker str d8, [sp, #8] 88*9880d681SAndroid Build Coastguard Worker str q9, [sp, #16] 89*9880d681SAndroid Build Coastguard Worker strb w4, [x3] 90*9880d681SAndroid Build Coastguard Worker strb w5, [x4, #20] 91*9880d681SAndroid Build Coastguard Worker strh w2, [sp, #32] 92*9880d681SAndroid Build Coastguard Worker 93*9880d681SAndroid Build Coastguard Worker; CHECK: str x4, [x3] ; encoding: [0x64,0x00,0x00,0xf9] 94*9880d681SAndroid Build Coastguard Worker; CHECK: str x2, [sp, #32] ; encoding: [0xe2,0x13,0x00,0xf9] 95*9880d681SAndroid Build Coastguard Worker; CHECK: str w5, [x4, #20] ; encoding: [0x85,0x14,0x00,0xb9] 96*9880d681SAndroid Build Coastguard Worker; CHECK: str b5, [sp, #1] ; encoding: [0xe5,0x07,0x00,0x3d] 97*9880d681SAndroid Build Coastguard Worker; CHECK: str h6, [sp, #2] ; encoding: [0xe6,0x07,0x00,0x7d] 98*9880d681SAndroid Build Coastguard Worker; CHECK: str s7, [sp, #4] ; encoding: [0xe7,0x07,0x00,0xbd] 99*9880d681SAndroid Build Coastguard Worker; CHECK: str d8, [sp, #8] ; encoding: [0xe8,0x07,0x00,0xfd] 100*9880d681SAndroid Build Coastguard Worker; CHECK: str q9, [sp, #16] ; encoding: [0xe9,0x07,0x80,0x3d] 101*9880d681SAndroid Build Coastguard Worker; CHECK: strb w4, [x3] ; encoding: [0x64,0x00,0x00,0x39] 102*9880d681SAndroid Build Coastguard Worker; CHECK: strb w5, [x4, #20] ; encoding: [0x85,0x50,0x00,0x39] 103*9880d681SAndroid Build Coastguard Worker; CHECK: strh w2, [sp, #32] ; encoding: [0xe2,0x43,0x00,0x79] 104*9880d681SAndroid Build Coastguard Worker 105*9880d681SAndroid Build Coastguard Worker;----------------------------------------------------------------------------- 106*9880d681SAndroid Build Coastguard Worker; Unscaled immediate loads and stores 107*9880d681SAndroid Build Coastguard Worker;----------------------------------------------------------------------------- 108*9880d681SAndroid Build Coastguard Worker 109*9880d681SAndroid Build Coastguard Worker ldur w2, [x3] 110*9880d681SAndroid Build Coastguard Worker ldur w2, [sp, #24] 111*9880d681SAndroid Build Coastguard Worker ldur x2, [x3] 112*9880d681SAndroid Build Coastguard Worker ldur x2, [sp, #24] 113*9880d681SAndroid Build Coastguard Worker ldur b5, [sp, #1] 114*9880d681SAndroid Build Coastguard Worker ldur h6, [sp, #2] 115*9880d681SAndroid Build Coastguard Worker ldur s7, [sp, #4] 116*9880d681SAndroid Build Coastguard Worker ldur d8, [sp, #8] 117*9880d681SAndroid Build Coastguard Worker ldur q9, [sp, #16] 118*9880d681SAndroid Build Coastguard Worker ldursb w9, [x3] 119*9880d681SAndroid Build Coastguard Worker ldursb x2, [sp, #128] 120*9880d681SAndroid Build Coastguard Worker ldursh w3, [sp, #32] 121*9880d681SAndroid Build Coastguard Worker ldursh x5, [x9, #24] 122*9880d681SAndroid Build Coastguard Worker ldursw x9, [sp, #-128] 123*9880d681SAndroid Build Coastguard Worker 124*9880d681SAndroid Build Coastguard Worker; CHECK: ldur w2, [x3] ; encoding: [0x62,0x00,0x40,0xb8] 125*9880d681SAndroid Build Coastguard Worker; CHECK: ldur w2, [sp, #24] ; encoding: [0xe2,0x83,0x41,0xb8] 126*9880d681SAndroid Build Coastguard Worker; CHECK: ldur x2, [x3] ; encoding: [0x62,0x00,0x40,0xf8] 127*9880d681SAndroid Build Coastguard Worker; CHECK: ldur x2, [sp, #24] ; encoding: [0xe2,0x83,0x41,0xf8] 128*9880d681SAndroid Build Coastguard Worker; CHECK: ldur b5, [sp, #1] ; encoding: [0xe5,0x13,0x40,0x3c] 129*9880d681SAndroid Build Coastguard Worker; CHECK: ldur h6, [sp, #2] ; encoding: [0xe6,0x23,0x40,0x7c] 130*9880d681SAndroid Build Coastguard Worker; CHECK: ldur s7, [sp, #4] ; encoding: [0xe7,0x43,0x40,0xbc] 131*9880d681SAndroid Build Coastguard Worker; CHECK: ldur d8, [sp, #8] ; encoding: [0xe8,0x83,0x40,0xfc] 132*9880d681SAndroid Build Coastguard Worker; CHECK: ldur q9, [sp, #16] ; encoding: [0xe9,0x03,0xc1,0x3c] 133*9880d681SAndroid Build Coastguard Worker; CHECK: ldursb w9, [x3] ; encoding: [0x69,0x00,0xc0,0x38] 134*9880d681SAndroid Build Coastguard Worker; CHECK: ldursb x2, [sp, #128] ; encoding: [0xe2,0x03,0x88,0x38] 135*9880d681SAndroid Build Coastguard Worker; CHECK: ldursh w3, [sp, #32] ; encoding: [0xe3,0x03,0xc2,0x78] 136*9880d681SAndroid Build Coastguard Worker; CHECK: ldursh x5, [x9, #24] ; encoding: [0x25,0x81,0x81,0x78] 137*9880d681SAndroid Build Coastguard Worker; CHECK: ldursw x9, [sp, #-128] ; encoding: [0xe9,0x03,0x98,0xb8] 138*9880d681SAndroid Build Coastguard Worker 139*9880d681SAndroid Build Coastguard Worker stur w4, [x3] 140*9880d681SAndroid Build Coastguard Worker stur w2, [sp, #32] 141*9880d681SAndroid Build Coastguard Worker stur x4, [x3] 142*9880d681SAndroid Build Coastguard Worker stur x2, [sp, #32] 143*9880d681SAndroid Build Coastguard Worker stur w5, [x4, #20] 144*9880d681SAndroid Build Coastguard Worker stur b5, [sp, #1] 145*9880d681SAndroid Build Coastguard Worker stur h6, [sp, #2] 146*9880d681SAndroid Build Coastguard Worker stur s7, [sp, #4] 147*9880d681SAndroid Build Coastguard Worker stur d8, [sp, #8] 148*9880d681SAndroid Build Coastguard Worker stur q9, [sp, #16] 149*9880d681SAndroid Build Coastguard Worker sturb w4, [x3] 150*9880d681SAndroid Build Coastguard Worker sturb w5, [x4, #20] 151*9880d681SAndroid Build Coastguard Worker sturh w2, [sp, #32] 152*9880d681SAndroid Build Coastguard Worker prfum #5, [sp, #32] 153*9880d681SAndroid Build Coastguard Worker 154*9880d681SAndroid Build Coastguard Worker; CHECK: stur w4, [x3] ; encoding: [0x64,0x00,0x00,0xb8] 155*9880d681SAndroid Build Coastguard Worker; CHECK: stur w2, [sp, #32] ; encoding: [0xe2,0x03,0x02,0xb8] 156*9880d681SAndroid Build Coastguard Worker; CHECK: stur x4, [x3] ; encoding: [0x64,0x00,0x00,0xf8] 157*9880d681SAndroid Build Coastguard Worker; CHECK: stur x2, [sp, #32] ; encoding: [0xe2,0x03,0x02,0xf8] 158*9880d681SAndroid Build Coastguard Worker; CHECK: stur w5, [x4, #20] ; encoding: [0x85,0x40,0x01,0xb8] 159*9880d681SAndroid Build Coastguard Worker; CHECK: stur b5, [sp, #1] ; encoding: [0xe5,0x13,0x00,0x3c] 160*9880d681SAndroid Build Coastguard Worker; CHECK: stur h6, [sp, #2] ; encoding: [0xe6,0x23,0x00,0x7c] 161*9880d681SAndroid Build Coastguard Worker; CHECK: stur s7, [sp, #4] ; encoding: [0xe7,0x43,0x00,0xbc] 162*9880d681SAndroid Build Coastguard Worker; CHECK: stur d8, [sp, #8] ; encoding: [0xe8,0x83,0x00,0xfc] 163*9880d681SAndroid Build Coastguard Worker; CHECK: stur q9, [sp, #16] ; encoding: [0xe9,0x03,0x81,0x3c] 164*9880d681SAndroid Build Coastguard Worker; CHECK: sturb w4, [x3] ; encoding: [0x64,0x00,0x00,0x38] 165*9880d681SAndroid Build Coastguard Worker; CHECK: sturb w5, [x4, #20] ; encoding: [0x85,0x40,0x01,0x38] 166*9880d681SAndroid Build Coastguard Worker; CHECK: sturh w2, [sp, #32] ; encoding: [0xe2,0x03,0x02,0x78] 167*9880d681SAndroid Build Coastguard Worker; CHECK: prfum pldl3strm, [sp, #32] ; encoding: [0xe5,0x03,0x82,0xf8] 168*9880d681SAndroid Build Coastguard Worker 169*9880d681SAndroid Build Coastguard Worker;----------------------------------------------------------------------------- 170*9880d681SAndroid Build Coastguard Worker; Unprivileged loads and stores 171*9880d681SAndroid Build Coastguard Worker;----------------------------------------------------------------------------- 172*9880d681SAndroid Build Coastguard Worker 173*9880d681SAndroid Build Coastguard Worker ldtr w3, [x4, #16] 174*9880d681SAndroid Build Coastguard Worker ldtr x3, [x4, #16] 175*9880d681SAndroid Build Coastguard Worker ldtrb w3, [x4, #16] 176*9880d681SAndroid Build Coastguard Worker ldtrsb w9, [x3] 177*9880d681SAndroid Build Coastguard Worker ldtrsb x2, [sp, #128] 178*9880d681SAndroid Build Coastguard Worker ldtrh w3, [x4, #16] 179*9880d681SAndroid Build Coastguard Worker ldtrsh w3, [sp, #32] 180*9880d681SAndroid Build Coastguard Worker ldtrsh x5, [x9, #24] 181*9880d681SAndroid Build Coastguard Worker ldtrsw x9, [sp, #-128] 182*9880d681SAndroid Build Coastguard Worker 183*9880d681SAndroid Build Coastguard Worker; CHECK: ldtr w3, [x4, #16] ; encoding: [0x83,0x08,0x41,0xb8] 184*9880d681SAndroid Build Coastguard Worker; CHECK: ldtr x3, [x4, #16] ; encoding: [0x83,0x08,0x41,0xf8] 185*9880d681SAndroid Build Coastguard Worker; CHECK: ldtrb w3, [x4, #16] ; encoding: [0x83,0x08,0x41,0x38] 186*9880d681SAndroid Build Coastguard Worker; CHECK: ldtrsb w9, [x3] ; encoding: [0x69,0x08,0xc0,0x38] 187*9880d681SAndroid Build Coastguard Worker; CHECK: ldtrsb x2, [sp, #128] ; encoding: [0xe2,0x0b,0x88,0x38] 188*9880d681SAndroid Build Coastguard Worker; CHECK: ldtrh w3, [x4, #16] ; encoding: [0x83,0x08,0x41,0x78] 189*9880d681SAndroid Build Coastguard Worker; CHECK: ldtrsh w3, [sp, #32] ; encoding: [0xe3,0x0b,0xc2,0x78] 190*9880d681SAndroid Build Coastguard Worker; CHECK: ldtrsh x5, [x9, #24] ; encoding: [0x25,0x89,0x81,0x78] 191*9880d681SAndroid Build Coastguard Worker; CHECK: ldtrsw x9, [sp, #-128] ; encoding: [0xe9,0x0b,0x98,0xb8] 192*9880d681SAndroid Build Coastguard Worker 193*9880d681SAndroid Build Coastguard Worker sttr w5, [x4, #20] 194*9880d681SAndroid Build Coastguard Worker sttr x4, [x3] 195*9880d681SAndroid Build Coastguard Worker sttr x2, [sp, #32] 196*9880d681SAndroid Build Coastguard Worker sttrb w4, [x3] 197*9880d681SAndroid Build Coastguard Worker sttrb w5, [x4, #20] 198*9880d681SAndroid Build Coastguard Worker sttrh w2, [sp, #32] 199*9880d681SAndroid Build Coastguard Worker 200*9880d681SAndroid Build Coastguard Worker; CHECK: sttr w5, [x4, #20] ; encoding: [0x85,0x48,0x01,0xb8] 201*9880d681SAndroid Build Coastguard Worker; CHECK: sttr x4, [x3] ; encoding: [0x64,0x08,0x00,0xf8] 202*9880d681SAndroid Build Coastguard Worker; CHECK: sttr x2, [sp, #32] ; encoding: [0xe2,0x0b,0x02,0xf8] 203*9880d681SAndroid Build Coastguard Worker; CHECK: sttrb w4, [x3] ; encoding: [0x64,0x08,0x00,0x38] 204*9880d681SAndroid Build Coastguard Worker; CHECK: sttrb w5, [x4, #20] ; encoding: [0x85,0x48,0x01,0x38] 205*9880d681SAndroid Build Coastguard Worker; CHECK: sttrh w2, [sp, #32] ; encoding: [0xe2,0x0b,0x02,0x78] 206*9880d681SAndroid Build Coastguard Worker 207*9880d681SAndroid Build Coastguard Worker;----------------------------------------------------------------------------- 208*9880d681SAndroid Build Coastguard Worker; Pre-indexed loads and stores 209*9880d681SAndroid Build Coastguard Worker;----------------------------------------------------------------------------- 210*9880d681SAndroid Build Coastguard Worker 211*9880d681SAndroid Build Coastguard Worker ldr x29, [x7, #8]! 212*9880d681SAndroid Build Coastguard Worker ldr x30, [x7, #8]! 213*9880d681SAndroid Build Coastguard Worker ldr b5, [x0, #1]! 214*9880d681SAndroid Build Coastguard Worker ldr h6, [x0, #2]! 215*9880d681SAndroid Build Coastguard Worker ldr s7, [x0, #4]! 216*9880d681SAndroid Build Coastguard Worker ldr d8, [x0, #8]! 217*9880d681SAndroid Build Coastguard Worker ldr q9, [x0, #16]! 218*9880d681SAndroid Build Coastguard Worker 219*9880d681SAndroid Build Coastguard Worker str x30, [x7, #-8]! 220*9880d681SAndroid Build Coastguard Worker str x29, [x7, #-8]! 221*9880d681SAndroid Build Coastguard Worker str b5, [x0, #-1]! 222*9880d681SAndroid Build Coastguard Worker str h6, [x0, #-2]! 223*9880d681SAndroid Build Coastguard Worker str s7, [x0, #-4]! 224*9880d681SAndroid Build Coastguard Worker str d8, [x0, #-8]! 225*9880d681SAndroid Build Coastguard Worker str q9, [x0, #-16]! 226*9880d681SAndroid Build Coastguard Worker 227*9880d681SAndroid Build Coastguard Worker; CHECK: ldr x29, [x7, #8]! ; encoding: [0xfd,0x8c,0x40,0xf8] 228*9880d681SAndroid Build Coastguard Worker; CHECK: ldr x30, [x7, #8]! ; encoding: [0xfe,0x8c,0x40,0xf8] 229*9880d681SAndroid Build Coastguard Worker; CHECK: ldr b5, [x0, #1]! ; encoding: [0x05,0x1c,0x40,0x3c] 230*9880d681SAndroid Build Coastguard Worker; CHECK: ldr h6, [x0, #2]! ; encoding: [0x06,0x2c,0x40,0x7c] 231*9880d681SAndroid Build Coastguard Worker; CHECK: ldr s7, [x0, #4]! ; encoding: [0x07,0x4c,0x40,0xbc] 232*9880d681SAndroid Build Coastguard Worker; CHECK: ldr d8, [x0, #8]! ; encoding: [0x08,0x8c,0x40,0xfc] 233*9880d681SAndroid Build Coastguard Worker; CHECK: ldr q9, [x0, #16]! ; encoding: [0x09,0x0c,0xc1,0x3c] 234*9880d681SAndroid Build Coastguard Worker 235*9880d681SAndroid Build Coastguard Worker; CHECK: str x30, [x7, #-8]! ; encoding: [0xfe,0x8c,0x1f,0xf8] 236*9880d681SAndroid Build Coastguard Worker; CHECK: str x29, [x7, #-8]! ; encoding: [0xfd,0x8c,0x1f,0xf8] 237*9880d681SAndroid Build Coastguard Worker; CHECK: str b5, [x0, #-1]! ; encoding: [0x05,0xfc,0x1f,0x3c] 238*9880d681SAndroid Build Coastguard Worker; CHECK: str h6, [x0, #-2]! ; encoding: [0x06,0xec,0x1f,0x7c] 239*9880d681SAndroid Build Coastguard Worker; CHECK: str s7, [x0, #-4]! ; encoding: [0x07,0xcc,0x1f,0xbc] 240*9880d681SAndroid Build Coastguard Worker; CHECK: str d8, [x0, #-8]! ; encoding: [0x08,0x8c,0x1f,0xfc] 241*9880d681SAndroid Build Coastguard Worker; CHECK: str q9, [x0, #-16]! ; encoding: [0x09,0x0c,0x9f,0x3c] 242*9880d681SAndroid Build Coastguard Worker 243*9880d681SAndroid Build Coastguard Worker;----------------------------------------------------------------------------- 244*9880d681SAndroid Build Coastguard Worker; post-indexed loads and stores 245*9880d681SAndroid Build Coastguard Worker;----------------------------------------------------------------------------- 246*9880d681SAndroid Build Coastguard Worker str x30, [x7], #-8 247*9880d681SAndroid Build Coastguard Worker str x29, [x7], #-8 248*9880d681SAndroid Build Coastguard Worker str b5, [x0], #-1 249*9880d681SAndroid Build Coastguard Worker str h6, [x0], #-2 250*9880d681SAndroid Build Coastguard Worker str s7, [x0], #-4 251*9880d681SAndroid Build Coastguard Worker str d8, [x0], #-8 252*9880d681SAndroid Build Coastguard Worker str q9, [x0], #-16 253*9880d681SAndroid Build Coastguard Worker 254*9880d681SAndroid Build Coastguard Worker ldr x29, [x7], #8 255*9880d681SAndroid Build Coastguard Worker ldr x30, [x7], #8 256*9880d681SAndroid Build Coastguard Worker ldr b5, [x0], #1 257*9880d681SAndroid Build Coastguard Worker ldr h6, [x0], #2 258*9880d681SAndroid Build Coastguard Worker ldr s7, [x0], #4 259*9880d681SAndroid Build Coastguard Worker ldr d8, [x0], #8 260*9880d681SAndroid Build Coastguard Worker ldr q9, [x0], #16 261*9880d681SAndroid Build Coastguard Worker 262*9880d681SAndroid Build Coastguard Worker; CHECK: str x30, [x7], #-8 ; encoding: [0xfe,0x84,0x1f,0xf8] 263*9880d681SAndroid Build Coastguard Worker; CHECK: str x29, [x7], #-8 ; encoding: [0xfd,0x84,0x1f,0xf8] 264*9880d681SAndroid Build Coastguard Worker; CHECK: str b5, [x0], #-1 ; encoding: [0x05,0xf4,0x1f,0x3c] 265*9880d681SAndroid Build Coastguard Worker; CHECK: str h6, [x0], #-2 ; encoding: [0x06,0xe4,0x1f,0x7c] 266*9880d681SAndroid Build Coastguard Worker; CHECK: str s7, [x0], #-4 ; encoding: [0x07,0xc4,0x1f,0xbc] 267*9880d681SAndroid Build Coastguard Worker; CHECK: str d8, [x0], #-8 ; encoding: [0x08,0x84,0x1f,0xfc] 268*9880d681SAndroid Build Coastguard Worker; CHECK: str q9, [x0], #-16 ; encoding: [0x09,0x04,0x9f,0x3c] 269*9880d681SAndroid Build Coastguard Worker 270*9880d681SAndroid Build Coastguard Worker; CHECK: ldr x29, [x7], #8 ; encoding: [0xfd,0x84,0x40,0xf8] 271*9880d681SAndroid Build Coastguard Worker; CHECK: ldr x30, [x7], #8 ; encoding: [0xfe,0x84,0x40,0xf8] 272*9880d681SAndroid Build Coastguard Worker; CHECK: ldr b5, [x0], #1 ; encoding: [0x05,0x14,0x40,0x3c] 273*9880d681SAndroid Build Coastguard Worker; CHECK: ldr h6, [x0], #2 ; encoding: [0x06,0x24,0x40,0x7c] 274*9880d681SAndroid Build Coastguard Worker; CHECK: ldr s7, [x0], #4 ; encoding: [0x07,0x44,0x40,0xbc] 275*9880d681SAndroid Build Coastguard Worker; CHECK: ldr d8, [x0], #8 ; encoding: [0x08,0x84,0x40,0xfc] 276*9880d681SAndroid Build Coastguard Worker; CHECK: ldr q9, [x0], #16 ; encoding: [0x09,0x04,0xc1,0x3c] 277*9880d681SAndroid Build Coastguard Worker 278*9880d681SAndroid Build Coastguard Worker;----------------------------------------------------------------------------- 279*9880d681SAndroid Build Coastguard Worker; Load/Store pair (indexed, offset) 280*9880d681SAndroid Build Coastguard Worker;----------------------------------------------------------------------------- 281*9880d681SAndroid Build Coastguard Worker 282*9880d681SAndroid Build Coastguard Worker ldp w3, w2, [x15, #16] 283*9880d681SAndroid Build Coastguard Worker ldp x4, x9, [sp, #-16] 284*9880d681SAndroid Build Coastguard Worker ldpsw x2, x3, [x14, #16] 285*9880d681SAndroid Build Coastguard Worker ldpsw x2, x3, [sp, #-16] 286*9880d681SAndroid Build Coastguard Worker ldp s10, s1, [x2, #64] 287*9880d681SAndroid Build Coastguard Worker ldp d10, d1, [x2] 288*9880d681SAndroid Build Coastguard Worker ldp q2, q3, [x0, #32] 289*9880d681SAndroid Build Coastguard Worker 290*9880d681SAndroid Build Coastguard Worker; CHECK: ldp w3, w2, [x15, #16] ; encoding: [0xe3,0x09,0x42,0x29] 291*9880d681SAndroid Build Coastguard Worker; CHECK: ldp x4, x9, [sp, #-16] ; encoding: [0xe4,0x27,0x7f,0xa9] 292*9880d681SAndroid Build Coastguard Worker; CHECK: ldpsw x2, x3, [x14, #16] ; encoding: [0xc2,0x0d,0x42,0x69] 293*9880d681SAndroid Build Coastguard Worker; CHECK: ldpsw x2, x3, [sp, #-16] ; encoding: [0xe2,0x0f,0x7e,0x69] 294*9880d681SAndroid Build Coastguard Worker; CHECK: ldp s10, s1, [x2, #64] ; encoding: [0x4a,0x04,0x48,0x2d] 295*9880d681SAndroid Build Coastguard Worker; CHECK: ldp d10, d1, [x2] ; encoding: [0x4a,0x04,0x40,0x6d] 296*9880d681SAndroid Build Coastguard Worker; CHECK: ldp q2, q3, [x0, #32] ; encoding: [0x02,0x0c,0x41,0xad] 297*9880d681SAndroid Build Coastguard Worker 298*9880d681SAndroid Build Coastguard Worker stp w3, w2, [x15, #16] 299*9880d681SAndroid Build Coastguard Worker stp x4, x9, [sp, #-16] 300*9880d681SAndroid Build Coastguard Worker stp s10, s1, [x2, #64] 301*9880d681SAndroid Build Coastguard Worker stp d10, d1, [x2] 302*9880d681SAndroid Build Coastguard Worker stp q2, q3, [x0, #32] 303*9880d681SAndroid Build Coastguard Worker 304*9880d681SAndroid Build Coastguard Worker; CHECK: stp w3, w2, [x15, #16] ; encoding: [0xe3,0x09,0x02,0x29] 305*9880d681SAndroid Build Coastguard Worker; CHECK: stp x4, x9, [sp, #-16] ; encoding: [0xe4,0x27,0x3f,0xa9] 306*9880d681SAndroid Build Coastguard Worker; CHECK: stp s10, s1, [x2, #64] ; encoding: [0x4a,0x04,0x08,0x2d] 307*9880d681SAndroid Build Coastguard Worker; CHECK: stp d10, d1, [x2] ; encoding: [0x4a,0x04,0x00,0x6d] 308*9880d681SAndroid Build Coastguard Worker; CHECK: stp q2, q3, [x0, #32] ; encoding: [0x02,0x0c,0x01,0xad] 309*9880d681SAndroid Build Coastguard Worker 310*9880d681SAndroid Build Coastguard Worker;----------------------------------------------------------------------------- 311*9880d681SAndroid Build Coastguard Worker; Load/Store pair (pre-indexed) 312*9880d681SAndroid Build Coastguard Worker;----------------------------------------------------------------------------- 313*9880d681SAndroid Build Coastguard Worker 314*9880d681SAndroid Build Coastguard Worker ldp w3, w2, [x15, #16]! 315*9880d681SAndroid Build Coastguard Worker ldp x4, x9, [sp, #-16]! 316*9880d681SAndroid Build Coastguard Worker ldpsw x2, x3, [x14, #16]! 317*9880d681SAndroid Build Coastguard Worker ldpsw x2, x3, [sp, #-16]! 318*9880d681SAndroid Build Coastguard Worker ldp s10, s1, [x2, #64]! 319*9880d681SAndroid Build Coastguard Worker ldp d10, d1, [x2, #16]! 320*9880d681SAndroid Build Coastguard Worker 321*9880d681SAndroid Build Coastguard Worker; CHECK: ldp w3, w2, [x15, #16]! ; encoding: [0xe3,0x09,0xc2,0x29] 322*9880d681SAndroid Build Coastguard Worker; CHECK: ldp x4, x9, [sp, #-16]! ; encoding: [0xe4,0x27,0xff,0xa9] 323*9880d681SAndroid Build Coastguard Worker; CHECK: ldpsw x2, x3, [x14, #16]! ; encoding: [0xc2,0x0d,0xc2,0x69] 324*9880d681SAndroid Build Coastguard Worker; CHECK: ldpsw x2, x3, [sp, #-16]! ; encoding: [0xe2,0x0f,0xfe,0x69] 325*9880d681SAndroid Build Coastguard Worker; CHECK: ldp s10, s1, [x2, #64]! ; encoding: [0x4a,0x04,0xc8,0x2d] 326*9880d681SAndroid Build Coastguard Worker; CHECK: ldp d10, d1, [x2, #16]! ; encoding: [0x4a,0x04,0xc1,0x6d] 327*9880d681SAndroid Build Coastguard Worker 328*9880d681SAndroid Build Coastguard Worker stp w3, w2, [x15, #16]! 329*9880d681SAndroid Build Coastguard Worker stp x4, x9, [sp, #-16]! 330*9880d681SAndroid Build Coastguard Worker stp s10, s1, [x2, #64]! 331*9880d681SAndroid Build Coastguard Worker stp d10, d1, [x2, #16]! 332*9880d681SAndroid Build Coastguard Worker 333*9880d681SAndroid Build Coastguard Worker; CHECK: stp w3, w2, [x15, #16]! ; encoding: [0xe3,0x09,0x82,0x29] 334*9880d681SAndroid Build Coastguard Worker; CHECK: stp x4, x9, [sp, #-16]! ; encoding: [0xe4,0x27,0xbf,0xa9] 335*9880d681SAndroid Build Coastguard Worker; CHECK: stp s10, s1, [x2, #64]! ; encoding: [0x4a,0x04,0x88,0x2d] 336*9880d681SAndroid Build Coastguard Worker; CHECK: stp d10, d1, [x2, #16]! ; encoding: [0x4a,0x04,0x81,0x6d] 337*9880d681SAndroid Build Coastguard Worker 338*9880d681SAndroid Build Coastguard Worker;----------------------------------------------------------------------------- 339*9880d681SAndroid Build Coastguard Worker; Load/Store pair (post-indexed) 340*9880d681SAndroid Build Coastguard Worker;----------------------------------------------------------------------------- 341*9880d681SAndroid Build Coastguard Worker 342*9880d681SAndroid Build Coastguard Worker ldp w3, w2, [x15], #16 343*9880d681SAndroid Build Coastguard Worker ldp x4, x9, [sp], #-16 344*9880d681SAndroid Build Coastguard Worker ldpsw x2, x3, [x14], #16 345*9880d681SAndroid Build Coastguard Worker ldpsw x2, x3, [sp], #-16 346*9880d681SAndroid Build Coastguard Worker ldp s10, s1, [x2], #64 347*9880d681SAndroid Build Coastguard Worker ldp d10, d1, [x2], #16 348*9880d681SAndroid Build Coastguard Worker 349*9880d681SAndroid Build Coastguard Worker; CHECK: ldp w3, w2, [x15], #16 ; encoding: [0xe3,0x09,0xc2,0x28] 350*9880d681SAndroid Build Coastguard Worker; CHECK: ldp x4, x9, [sp], #-16 ; encoding: [0xe4,0x27,0xff,0xa8] 351*9880d681SAndroid Build Coastguard Worker; CHECK: ldpsw x2, x3, [x14], #16 ; encoding: [0xc2,0x0d,0xc2,0x68] 352*9880d681SAndroid Build Coastguard Worker; CHECK: ldpsw x2, x3, [sp], #-16 ; encoding: [0xe2,0x0f,0xfe,0x68] 353*9880d681SAndroid Build Coastguard Worker; CHECK: ldp s10, s1, [x2], #64 ; encoding: [0x4a,0x04,0xc8,0x2c] 354*9880d681SAndroid Build Coastguard Worker; CHECK: ldp d10, d1, [x2], #16 ; encoding: [0x4a,0x04,0xc1,0x6c] 355*9880d681SAndroid Build Coastguard Worker 356*9880d681SAndroid Build Coastguard Worker stp w3, w2, [x15], #16 357*9880d681SAndroid Build Coastguard Worker stp x4, x9, [sp], #-16 358*9880d681SAndroid Build Coastguard Worker stp s10, s1, [x2], #64 359*9880d681SAndroid Build Coastguard Worker stp d10, d1, [x2], #16 360*9880d681SAndroid Build Coastguard Worker 361*9880d681SAndroid Build Coastguard Worker; CHECK: stp w3, w2, [x15], #16 ; encoding: [0xe3,0x09,0x82,0x28] 362*9880d681SAndroid Build Coastguard Worker; CHECK: stp x4, x9, [sp], #-16 ; encoding: [0xe4,0x27,0xbf,0xa8] 363*9880d681SAndroid Build Coastguard Worker; CHECK: stp s10, s1, [x2], #64 ; encoding: [0x4a,0x04,0x88,0x2c] 364*9880d681SAndroid Build Coastguard Worker; CHECK: stp d10, d1, [x2], #16 ; encoding: [0x4a,0x04,0x81,0x6c] 365*9880d681SAndroid Build Coastguard Worker 366*9880d681SAndroid Build Coastguard Worker;----------------------------------------------------------------------------- 367*9880d681SAndroid Build Coastguard Worker; Load/Store pair (no-allocate) 368*9880d681SAndroid Build Coastguard Worker;----------------------------------------------------------------------------- 369*9880d681SAndroid Build Coastguard Worker 370*9880d681SAndroid Build Coastguard Worker ldnp w3, w2, [x15, #16] 371*9880d681SAndroid Build Coastguard Worker ldnp x4, x9, [sp, #-16] 372*9880d681SAndroid Build Coastguard Worker ldnp s10, s1, [x2, #64] 373*9880d681SAndroid Build Coastguard Worker ldnp d10, d1, [x2] 374*9880d681SAndroid Build Coastguard Worker 375*9880d681SAndroid Build Coastguard Worker; CHECK: ldnp w3, w2, [x15, #16] ; encoding: [0xe3,0x09,0x42,0x28] 376*9880d681SAndroid Build Coastguard Worker; CHECK: ldnp x4, x9, [sp, #-16] ; encoding: [0xe4,0x27,0x7f,0xa8] 377*9880d681SAndroid Build Coastguard Worker; CHECK: ldnp s10, s1, [x2, #64] ; encoding: [0x4a,0x04,0x48,0x2c] 378*9880d681SAndroid Build Coastguard Worker; CHECK: ldnp d10, d1, [x2] ; encoding: [0x4a,0x04,0x40,0x6c] 379*9880d681SAndroid Build Coastguard Worker 380*9880d681SAndroid Build Coastguard Worker stnp w3, w2, [x15, #16] 381*9880d681SAndroid Build Coastguard Worker stnp x4, x9, [sp, #-16] 382*9880d681SAndroid Build Coastguard Worker stnp s10, s1, [x2, #64] 383*9880d681SAndroid Build Coastguard Worker stnp d10, d1, [x2] 384*9880d681SAndroid Build Coastguard Worker 385*9880d681SAndroid Build Coastguard Worker; CHECK: stnp w3, w2, [x15, #16] ; encoding: [0xe3,0x09,0x02,0x28] 386*9880d681SAndroid Build Coastguard Worker; CHECK: stnp x4, x9, [sp, #-16] ; encoding: [0xe4,0x27,0x3f,0xa8] 387*9880d681SAndroid Build Coastguard Worker; CHECK: stnp s10, s1, [x2, #64] ; encoding: [0x4a,0x04,0x08,0x2c] 388*9880d681SAndroid Build Coastguard Worker; CHECK: stnp d10, d1, [x2] ; encoding: [0x4a,0x04,0x00,0x6c] 389*9880d681SAndroid Build Coastguard Worker 390*9880d681SAndroid Build Coastguard Worker;----------------------------------------------------------------------------- 391*9880d681SAndroid Build Coastguard Worker; Load/Store register offset 392*9880d681SAndroid Build Coastguard Worker;----------------------------------------------------------------------------- 393*9880d681SAndroid Build Coastguard Worker 394*9880d681SAndroid Build Coastguard Worker ldr w0, [x0, x0] 395*9880d681SAndroid Build Coastguard Worker ldr w0, [x0, x0, lsl #2] 396*9880d681SAndroid Build Coastguard Worker ldr x0, [x0, x0] 397*9880d681SAndroid Build Coastguard Worker ldr x0, [x0, x0, lsl #3] 398*9880d681SAndroid Build Coastguard Worker ldr x0, [x0, x0, sxtx] 399*9880d681SAndroid Build Coastguard Worker 400*9880d681SAndroid Build Coastguard Worker; CHECK: ldr w0, [x0, x0] ; encoding: [0x00,0x68,0x60,0xb8] 401*9880d681SAndroid Build Coastguard Worker; CHECK: ldr w0, [x0, x0, lsl #2] ; encoding: [0x00,0x78,0x60,0xb8] 402*9880d681SAndroid Build Coastguard Worker; CHECK: ldr x0, [x0, x0] ; encoding: [0x00,0x68,0x60,0xf8] 403*9880d681SAndroid Build Coastguard Worker; CHECK: ldr x0, [x0, x0, lsl #3] ; encoding: [0x00,0x78,0x60,0xf8] 404*9880d681SAndroid Build Coastguard Worker; CHECK: ldr x0, [x0, x0, sxtx] ; encoding: [0x00,0xe8,0x60,0xf8] 405*9880d681SAndroid Build Coastguard Worker 406*9880d681SAndroid Build Coastguard Worker ldr b1, [x1, x2] 407*9880d681SAndroid Build Coastguard Worker ldr b1, [x1, x2, lsl #0] 408*9880d681SAndroid Build Coastguard Worker ldr h1, [x1, x2] 409*9880d681SAndroid Build Coastguard Worker ldr h1, [x1, x2, lsl #1] 410*9880d681SAndroid Build Coastguard Worker ldr s1, [x1, x2] 411*9880d681SAndroid Build Coastguard Worker ldr s1, [x1, x2, lsl #2] 412*9880d681SAndroid Build Coastguard Worker ldr d1, [x1, x2] 413*9880d681SAndroid Build Coastguard Worker ldr d1, [x1, x2, lsl #3] 414*9880d681SAndroid Build Coastguard Worker ldr q1, [x1, x2] 415*9880d681SAndroid Build Coastguard Worker ldr q1, [x1, x2, lsl #4] 416*9880d681SAndroid Build Coastguard Worker 417*9880d681SAndroid Build Coastguard Worker; CHECK: ldr b1, [x1, x2] ; encoding: [0x21,0x68,0x62,0x3c] 418*9880d681SAndroid Build Coastguard Worker; CHECK: ldr b1, [x1, x2, lsl #0] ; encoding: [0x21,0x78,0x62,0x3c] 419*9880d681SAndroid Build Coastguard Worker; CHECK: ldr h1, [x1, x2] ; encoding: [0x21,0x68,0x62,0x7c] 420*9880d681SAndroid Build Coastguard Worker; CHECK: ldr h1, [x1, x2, lsl #1] ; encoding: [0x21,0x78,0x62,0x7c] 421*9880d681SAndroid Build Coastguard Worker; CHECK: ldr s1, [x1, x2] ; encoding: [0x21,0x68,0x62,0xbc] 422*9880d681SAndroid Build Coastguard Worker; CHECK: ldr s1, [x1, x2, lsl #2] ; encoding: [0x21,0x78,0x62,0xbc] 423*9880d681SAndroid Build Coastguard Worker; CHECK: ldr d1, [x1, x2] ; encoding: [0x21,0x68,0x62,0xfc] 424*9880d681SAndroid Build Coastguard Worker; CHECK: ldr d1, [x1, x2, lsl #3] ; encoding: [0x21,0x78,0x62,0xfc] 425*9880d681SAndroid Build Coastguard Worker; CHECK: ldr q1, [x1, x2] ; encoding: [0x21,0x68,0xe2,0x3c] 426*9880d681SAndroid Build Coastguard Worker; CHECK: ldr q1, [x1, x2, lsl #4] ; encoding: [0x21,0x78,0xe2,0x3c] 427*9880d681SAndroid Build Coastguard Worker 428*9880d681SAndroid Build Coastguard Worker str d1, [sp, x3] 429*9880d681SAndroid Build Coastguard Worker str d1, [sp, w3, uxtw #3] 430*9880d681SAndroid Build Coastguard Worker str q1, [sp, x3] 431*9880d681SAndroid Build Coastguard Worker str q1, [sp, w3, uxtw #4] 432*9880d681SAndroid Build Coastguard Worker 433*9880d681SAndroid Build Coastguard Worker; CHECK: str d1, [sp, x3] ; encoding: [0xe1,0x6b,0x23,0xfc] 434*9880d681SAndroid Build Coastguard Worker; CHECK: str d1, [sp, w3, uxtw #3] ; encoding: [0xe1,0x5b,0x23,0xfc] 435*9880d681SAndroid Build Coastguard Worker; CHECK: str q1, [sp, x3] ; encoding: [0xe1,0x6b,0xa3,0x3c] 436*9880d681SAndroid Build Coastguard Worker; CHECK: str q1, [sp, w3, uxtw #4] ; encoding: [0xe1,0x5b,0xa3,0x3c] 437*9880d681SAndroid Build Coastguard Worker 438*9880d681SAndroid Build Coastguard Worker;----------------------------------------------------------------------------- 439*9880d681SAndroid Build Coastguard Worker; Load literal 440*9880d681SAndroid Build Coastguard Worker;----------------------------------------------------------------------------- 441*9880d681SAndroid Build Coastguard Worker 442*9880d681SAndroid Build Coastguard Worker ldr w5, foo 443*9880d681SAndroid Build Coastguard Worker ldr x4, foo 444*9880d681SAndroid Build Coastguard Worker ldrsw x9, foo 445*9880d681SAndroid Build Coastguard Worker prfm #5, foo 446*9880d681SAndroid Build Coastguard Worker 447*9880d681SAndroid Build Coastguard Worker; CHECK: ldr w5, foo ; encoding: [0bAAA00101,A,A,0x18] 448*9880d681SAndroid Build Coastguard Worker; CHECK: ldr x4, foo ; encoding: [0bAAA00100,A,A,0x58] 449*9880d681SAndroid Build Coastguard Worker; CHECK: ldrsw x9, foo ; encoding: [0bAAA01001,A,A,0x98] 450*9880d681SAndroid Build Coastguard Worker; CHECK: prfm pldl3strm, foo ; encoding: [0bAAA00101,A,A,0xd8] 451*9880d681SAndroid Build Coastguard Worker 452*9880d681SAndroid Build Coastguard Worker;----------------------------------------------------------------------------- 453*9880d681SAndroid Build Coastguard Worker; Load/Store exclusive 454*9880d681SAndroid Build Coastguard Worker;----------------------------------------------------------------------------- 455*9880d681SAndroid Build Coastguard Worker 456*9880d681SAndroid Build Coastguard Worker ldxr w6, [x1] 457*9880d681SAndroid Build Coastguard Worker ldxr x6, [x1] 458*9880d681SAndroid Build Coastguard Worker ldxrb w6, [x1] 459*9880d681SAndroid Build Coastguard Worker ldxrh w6, [x1] 460*9880d681SAndroid Build Coastguard Worker ldxp w7, w3, [x9] 461*9880d681SAndroid Build Coastguard Worker ldxp x7, x3, [x9] 462*9880d681SAndroid Build Coastguard Worker 463*9880d681SAndroid Build Coastguard Worker; CHECK: ldxrb w6, [x1] ; encoding: [0x26,0x7c,0x5f,0x08] 464*9880d681SAndroid Build Coastguard Worker; CHECK: ldxrh w6, [x1] ; encoding: [0x26,0x7c,0x5f,0x48] 465*9880d681SAndroid Build Coastguard Worker; CHECK: ldxp w7, w3, [x9] ; encoding: [0x27,0x0d,0x7f,0x88] 466*9880d681SAndroid Build Coastguard Worker; CHECK: ldxp x7, x3, [x9] ; encoding: [0x27,0x0d,0x7f,0xc8] 467*9880d681SAndroid Build Coastguard Worker 468*9880d681SAndroid Build Coastguard Worker stxr w1, x4, [x3] 469*9880d681SAndroid Build Coastguard Worker stxr w1, w4, [x3] 470*9880d681SAndroid Build Coastguard Worker stxrb w1, w4, [x3] 471*9880d681SAndroid Build Coastguard Worker stxrh w1, w4, [x3] 472*9880d681SAndroid Build Coastguard Worker stxp w1, x2, x6, [x1] 473*9880d681SAndroid Build Coastguard Worker stxp w1, w2, w6, [x1] 474*9880d681SAndroid Build Coastguard Worker 475*9880d681SAndroid Build Coastguard Worker; CHECK: stxr w1, x4, [x3] ; encoding: [0x64,0x7c,0x01,0xc8] 476*9880d681SAndroid Build Coastguard Worker; CHECK: stxr w1, w4, [x3] ; encoding: [0x64,0x7c,0x01,0x88] 477*9880d681SAndroid Build Coastguard Worker; CHECK: stxrb w1, w4, [x3] ; encoding: [0x64,0x7c,0x01,0x08] 478*9880d681SAndroid Build Coastguard Worker; CHECK: stxrh w1, w4, [x3] ; encoding: [0x64,0x7c,0x01,0x48] 479*9880d681SAndroid Build Coastguard Worker; CHECK: stxp w1, x2, x6, [x1] ; encoding: [0x22,0x18,0x21,0xc8] 480*9880d681SAndroid Build Coastguard Worker; CHECK: stxp w1, w2, w6, [x1] ; encoding: [0x22,0x18,0x21,0x88] 481*9880d681SAndroid Build Coastguard Worker 482*9880d681SAndroid Build Coastguard Worker;----------------------------------------------------------------------------- 483*9880d681SAndroid Build Coastguard Worker; Load-acquire/Store-release non-exclusive 484*9880d681SAndroid Build Coastguard Worker;----------------------------------------------------------------------------- 485*9880d681SAndroid Build Coastguard Worker 486*9880d681SAndroid Build Coastguard Worker ldar w4, [sp] 487*9880d681SAndroid Build Coastguard Worker ldar x4, [sp, #0] 488*9880d681SAndroid Build Coastguard Worker ldarb w4, [sp] 489*9880d681SAndroid Build Coastguard Worker ldarh w4, [sp] 490*9880d681SAndroid Build Coastguard Worker 491*9880d681SAndroid Build Coastguard Worker; CHECK: ldar w4, [sp] ; encoding: [0xe4,0xff,0xdf,0x88] 492*9880d681SAndroid Build Coastguard Worker; CHECK: ldar x4, [sp] ; encoding: [0xe4,0xff,0xdf,0xc8] 493*9880d681SAndroid Build Coastguard Worker; CHECK: ldarb w4, [sp] ; encoding: [0xe4,0xff,0xdf,0x08] 494*9880d681SAndroid Build Coastguard Worker; CHECK: ldarh w4, [sp] ; encoding: [0xe4,0xff,0xdf,0x48] 495*9880d681SAndroid Build Coastguard Worker 496*9880d681SAndroid Build Coastguard Worker stlr w3, [x6] 497*9880d681SAndroid Build Coastguard Worker stlr x3, [x6] 498*9880d681SAndroid Build Coastguard Worker stlrb w3, [x6] 499*9880d681SAndroid Build Coastguard Worker stlrh w3, [x6] 500*9880d681SAndroid Build Coastguard Worker 501*9880d681SAndroid Build Coastguard Worker; CHECK: stlr w3, [x6] ; encoding: [0xc3,0xfc,0x9f,0x88] 502*9880d681SAndroid Build Coastguard Worker; CHECK: stlr x3, [x6] ; encoding: [0xc3,0xfc,0x9f,0xc8] 503*9880d681SAndroid Build Coastguard Worker; CHECK: stlrb w3, [x6] ; encoding: [0xc3,0xfc,0x9f,0x08] 504*9880d681SAndroid Build Coastguard Worker; CHECK: stlrh w3, [x6] ; encoding: [0xc3,0xfc,0x9f,0x48] 505*9880d681SAndroid Build Coastguard Worker 506*9880d681SAndroid Build Coastguard Worker;----------------------------------------------------------------------------- 507*9880d681SAndroid Build Coastguard Worker; Load-acquire/Store-release exclusive 508*9880d681SAndroid Build Coastguard Worker;----------------------------------------------------------------------------- 509*9880d681SAndroid Build Coastguard Worker 510*9880d681SAndroid Build Coastguard Worker ldaxr w2, [x4] 511*9880d681SAndroid Build Coastguard Worker ldaxr x2, [x4] 512*9880d681SAndroid Build Coastguard Worker ldaxrb w2, [x4, #0] 513*9880d681SAndroid Build Coastguard Worker ldaxrh w2, [x4] 514*9880d681SAndroid Build Coastguard Worker ldaxp w2, w6, [x1] 515*9880d681SAndroid Build Coastguard Worker ldaxp x2, x6, [x1] 516*9880d681SAndroid Build Coastguard Worker 517*9880d681SAndroid Build Coastguard Worker; CHECK: ldaxr w2, [x4] ; encoding: [0x82,0xfc,0x5f,0x88] 518*9880d681SAndroid Build Coastguard Worker; CHECK: ldaxr x2, [x4] ; encoding: [0x82,0xfc,0x5f,0xc8] 519*9880d681SAndroid Build Coastguard Worker; CHECK: ldaxrb w2, [x4] ; encoding: [0x82,0xfc,0x5f,0x08] 520*9880d681SAndroid Build Coastguard Worker; CHECK: ldaxrh w2, [x4] ; encoding: [0x82,0xfc,0x5f,0x48] 521*9880d681SAndroid Build Coastguard Worker; CHECK: ldaxp w2, w6, [x1] ; encoding: [0x22,0x98,0x7f,0x88] 522*9880d681SAndroid Build Coastguard Worker; CHECK: ldaxp x2, x6, [x1] ; encoding: [0x22,0x98,0x7f,0xc8] 523*9880d681SAndroid Build Coastguard Worker 524*9880d681SAndroid Build Coastguard Worker stlxr w8, x7, [x1] 525*9880d681SAndroid Build Coastguard Worker stlxr w8, w7, [x1] 526*9880d681SAndroid Build Coastguard Worker stlxrb w8, w7, [x1] 527*9880d681SAndroid Build Coastguard Worker stlxrh w8, w7, [x1] 528*9880d681SAndroid Build Coastguard Worker stlxp w1, x2, x6, [x1] 529*9880d681SAndroid Build Coastguard Worker stlxp w1, w2, w6, [x1] 530*9880d681SAndroid Build Coastguard Worker 531*9880d681SAndroid Build Coastguard Worker; CHECK: stlxr w8, x7, [x1] ; encoding: [0x27,0xfc,0x08,0xc8] 532*9880d681SAndroid Build Coastguard Worker; CHECK: stlxr w8, w7, [x1] ; encoding: [0x27,0xfc,0x08,0x88] 533*9880d681SAndroid Build Coastguard Worker; CHECK: stlxrb w8, w7, [x1] ; encoding: [0x27,0xfc,0x08,0x08] 534*9880d681SAndroid Build Coastguard Worker; CHECK: stlxrh w8, w7, [x1] ; encoding: [0x27,0xfc,0x08,0x48] 535*9880d681SAndroid Build Coastguard Worker; CHECK: stlxp w1, x2, x6, [x1] ; encoding: [0x22,0x98,0x21,0xc8] 536*9880d681SAndroid Build Coastguard Worker; CHECK: stlxp w1, w2, w6, [x1] ; encoding: [0x22,0x98,0x21,0x88] 537*9880d681SAndroid Build Coastguard Worker 538*9880d681SAndroid Build Coastguard Worker 539*9880d681SAndroid Build Coastguard Worker;----------------------------------------------------------------------------- 540*9880d681SAndroid Build Coastguard Worker; LDUR/STUR aliases for negative and unaligned LDR/STR instructions. 541*9880d681SAndroid Build Coastguard Worker; 542*9880d681SAndroid Build Coastguard Worker; According to the ARM ISA documentation: 543*9880d681SAndroid Build Coastguard Worker; "A programmer-friendly assembler should also generate these instructions 544*9880d681SAndroid Build Coastguard Worker; in response to the standard LDR/STR mnemonics when the immediate offset is 545*9880d681SAndroid Build Coastguard Worker; unambiguous, i.e. negative or unaligned." 546*9880d681SAndroid Build Coastguard Worker;----------------------------------------------------------------------------- 547*9880d681SAndroid Build Coastguard Worker 548*9880d681SAndroid Build Coastguard Worker ldr x11, [x29, #-8] 549*9880d681SAndroid Build Coastguard Worker ldr x11, [x29, #7] 550*9880d681SAndroid Build Coastguard Worker ldr w0, [x0, #2] 551*9880d681SAndroid Build Coastguard Worker ldr w0, [x0, #-256] 552*9880d681SAndroid Build Coastguard Worker ldr b2, [x1, #-2] 553*9880d681SAndroid Build Coastguard Worker ldr h3, [x2, #3] 554*9880d681SAndroid Build Coastguard Worker ldr h3, [x3, #-4] 555*9880d681SAndroid Build Coastguard Worker ldr s3, [x4, #3] 556*9880d681SAndroid Build Coastguard Worker ldr s3, [x5, #-4] 557*9880d681SAndroid Build Coastguard Worker ldr d4, [x6, #4] 558*9880d681SAndroid Build Coastguard Worker ldr d4, [x7, #-8] 559*9880d681SAndroid Build Coastguard Worker ldr q5, [x8, #8] 560*9880d681SAndroid Build Coastguard Worker ldr q5, [x9, #-16] 561*9880d681SAndroid Build Coastguard Worker 562*9880d681SAndroid Build Coastguard Worker; CHECK: ldur x11, [x29, #-8] ; encoding: [0xab,0x83,0x5f,0xf8] 563*9880d681SAndroid Build Coastguard Worker; CHECK: ldur x11, [x29, #7] ; encoding: [0xab,0x73,0x40,0xf8] 564*9880d681SAndroid Build Coastguard Worker; CHECK: ldur w0, [x0, #2] ; encoding: [0x00,0x20,0x40,0xb8] 565*9880d681SAndroid Build Coastguard Worker; CHECK: ldur w0, [x0, #-256] ; encoding: [0x00,0x00,0x50,0xb8] 566*9880d681SAndroid Build Coastguard Worker; CHECK: ldur b2, [x1, #-2] ; encoding: [0x22,0xe0,0x5f,0x3c] 567*9880d681SAndroid Build Coastguard Worker; CHECK: ldur h3, [x2, #3] ; encoding: [0x43,0x30,0x40,0x7c] 568*9880d681SAndroid Build Coastguard Worker; CHECK: ldur h3, [x3, #-4] ; encoding: [0x63,0xc0,0x5f,0x7c] 569*9880d681SAndroid Build Coastguard Worker; CHECK: ldur s3, [x4, #3] ; encoding: [0x83,0x30,0x40,0xbc] 570*9880d681SAndroid Build Coastguard Worker; CHECK: ldur s3, [x5, #-4] ; encoding: [0xa3,0xc0,0x5f,0xbc] 571*9880d681SAndroid Build Coastguard Worker; CHECK: ldur d4, [x6, #4] ; encoding: [0xc4,0x40,0x40,0xfc] 572*9880d681SAndroid Build Coastguard Worker; CHECK: ldur d4, [x7, #-8] ; encoding: [0xe4,0x80,0x5f,0xfc] 573*9880d681SAndroid Build Coastguard Worker; CHECK: ldur q5, [x8, #8] ; encoding: [0x05,0x81,0xc0,0x3c] 574*9880d681SAndroid Build Coastguard Worker; CHECK: ldur q5, [x9, #-16] ; encoding: [0x25,0x01,0xdf,0x3c] 575*9880d681SAndroid Build Coastguard Worker 576*9880d681SAndroid Build Coastguard Worker str x11, [x29, #-8] 577*9880d681SAndroid Build Coastguard Worker str x11, [x29, #7] 578*9880d681SAndroid Build Coastguard Worker str w0, [x0, #2] 579*9880d681SAndroid Build Coastguard Worker str w0, [x0, #-256] 580*9880d681SAndroid Build Coastguard Worker str b2, [x1, #-2] 581*9880d681SAndroid Build Coastguard Worker str h3, [x2, #3] 582*9880d681SAndroid Build Coastguard Worker str h3, [x3, #-4] 583*9880d681SAndroid Build Coastguard Worker str s3, [x4, #3] 584*9880d681SAndroid Build Coastguard Worker str s3, [x5, #-4] 585*9880d681SAndroid Build Coastguard Worker str d4, [x6, #4] 586*9880d681SAndroid Build Coastguard Worker str d4, [x7, #-8] 587*9880d681SAndroid Build Coastguard Worker str q5, [x8, #8] 588*9880d681SAndroid Build Coastguard Worker str q5, [x9, #-16] 589*9880d681SAndroid Build Coastguard Worker 590*9880d681SAndroid Build Coastguard Worker; CHECK: stur x11, [x29, #-8] ; encoding: [0xab,0x83,0x1f,0xf8] 591*9880d681SAndroid Build Coastguard Worker; CHECK: stur x11, [x29, #7] ; encoding: [0xab,0x73,0x00,0xf8] 592*9880d681SAndroid Build Coastguard Worker; CHECK: stur w0, [x0, #2] ; encoding: [0x00,0x20,0x00,0xb8] 593*9880d681SAndroid Build Coastguard Worker; CHECK: stur w0, [x0, #-256] ; encoding: [0x00,0x00,0x10,0xb8] 594*9880d681SAndroid Build Coastguard Worker; CHECK: stur b2, [x1, #-2] ; encoding: [0x22,0xe0,0x1f,0x3c] 595*9880d681SAndroid Build Coastguard Worker; CHECK: stur h3, [x2, #3] ; encoding: [0x43,0x30,0x00,0x7c] 596*9880d681SAndroid Build Coastguard Worker; CHECK: stur h3, [x3, #-4] ; encoding: [0x63,0xc0,0x1f,0x7c] 597*9880d681SAndroid Build Coastguard Worker; CHECK: stur s3, [x4, #3] ; encoding: [0x83,0x30,0x00,0xbc] 598*9880d681SAndroid Build Coastguard Worker; CHECK: stur s3, [x5, #-4] ; encoding: [0xa3,0xc0,0x1f,0xbc] 599*9880d681SAndroid Build Coastguard Worker; CHECK: stur d4, [x6, #4] ; encoding: [0xc4,0x40,0x00,0xfc] 600*9880d681SAndroid Build Coastguard Worker; CHECK: stur d4, [x7, #-8] ; encoding: [0xe4,0x80,0x1f,0xfc] 601*9880d681SAndroid Build Coastguard Worker; CHECK: stur q5, [x8, #8] ; encoding: [0x05,0x81,0x80,0x3c] 602*9880d681SAndroid Build Coastguard Worker; CHECK: stur q5, [x9, #-16] ; encoding: [0x25,0x01,0x9f,0x3c] 603*9880d681SAndroid Build Coastguard Worker 604*9880d681SAndroid Build Coastguard Worker ldrb w3, [x1, #-1] 605*9880d681SAndroid Build Coastguard Worker ldrh w4, [x2, #1] 606*9880d681SAndroid Build Coastguard Worker ldrh w5, [x3, #-1] 607*9880d681SAndroid Build Coastguard Worker ldrsb w6, [x4, #-1] 608*9880d681SAndroid Build Coastguard Worker ldrsb x7, [x5, #-1] 609*9880d681SAndroid Build Coastguard Worker ldrsh w8, [x6, #1] 610*9880d681SAndroid Build Coastguard Worker ldrsh w9, [x7, #-1] 611*9880d681SAndroid Build Coastguard Worker ldrsh x1, [x8, #1] 612*9880d681SAndroid Build Coastguard Worker ldrsh x2, [x9, #-1] 613*9880d681SAndroid Build Coastguard Worker ldrsw x3, [x10, #10] 614*9880d681SAndroid Build Coastguard Worker ldrsw x4, [x11, #-1] 615*9880d681SAndroid Build Coastguard Worker 616*9880d681SAndroid Build Coastguard Worker; CHECK: ldurb w3, [x1, #-1] ; encoding: [0x23,0xf0,0x5f,0x38] 617*9880d681SAndroid Build Coastguard Worker; CHECK: ldurh w4, [x2, #1] ; encoding: [0x44,0x10,0x40,0x78] 618*9880d681SAndroid Build Coastguard Worker; CHECK: ldurh w5, [x3, #-1] ; encoding: [0x65,0xf0,0x5f,0x78] 619*9880d681SAndroid Build Coastguard Worker; CHECK: ldursb w6, [x4, #-1] ; encoding: [0x86,0xf0,0xdf,0x38] 620*9880d681SAndroid Build Coastguard Worker; CHECK: ldursb x7, [x5, #-1] ; encoding: [0xa7,0xf0,0x9f,0x38] 621*9880d681SAndroid Build Coastguard Worker; CHECK: ldursh w8, [x6, #1] ; encoding: [0xc8,0x10,0xc0,0x78] 622*9880d681SAndroid Build Coastguard Worker; CHECK: ldursh w9, [x7, #-1] ; encoding: [0xe9,0xf0,0xdf,0x78] 623*9880d681SAndroid Build Coastguard Worker; CHECK: ldursh x1, [x8, #1] ; encoding: [0x01,0x11,0x80,0x78] 624*9880d681SAndroid Build Coastguard Worker; CHECK: ldursh x2, [x9, #-1] ; encoding: [0x22,0xf1,0x9f,0x78] 625*9880d681SAndroid Build Coastguard Worker; CHECK: ldursw x3, [x10, #10] ; encoding: [0x43,0xa1,0x80,0xb8] 626*9880d681SAndroid Build Coastguard Worker; CHECK: ldursw x4, [x11, #-1] ; encoding: [0x64,0xf1,0x9f,0xb8] 627*9880d681SAndroid Build Coastguard Worker 628*9880d681SAndroid Build Coastguard Worker strb w3, [x1, #-1] 629*9880d681SAndroid Build Coastguard Worker strh w4, [x2, #1] 630*9880d681SAndroid Build Coastguard Worker strh w5, [x3, #-1] 631*9880d681SAndroid Build Coastguard Worker 632*9880d681SAndroid Build Coastguard Worker; CHECK: sturb w3, [x1, #-1] ; encoding: [0x23,0xf0,0x1f,0x38] 633*9880d681SAndroid Build Coastguard Worker; CHECK: sturh w4, [x2, #1] ; encoding: [0x44,0x10,0x00,0x78] 634*9880d681SAndroid Build Coastguard Worker; CHECK: sturh w5, [x3, #-1] ; encoding: [0x65,0xf0,0x1f,0x78] 635