1*9880d681SAndroid Build Coastguard Worker// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.1a < %s 2>%t | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker// RUN: FileCheck --check-prefix=CHECK-ERROR %s <%t 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 6*9880d681SAndroid Build Coastguard Worker// Load acquire / store release 7*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 8*9880d681SAndroid Build Coastguard Worker ldlarb w0,[x1] 9*9880d681SAndroid Build Coastguard Worker ldlarh w0,[x1] 10*9880d681SAndroid Build Coastguard Worker ldlar w0,[x1] 11*9880d681SAndroid Build Coastguard Worker ldlar x0,[x1] 12*9880d681SAndroid Build Coastguard Worker// CHECK: ldlarb w0, [x1] // encoding: [0x20,0x7c,0xdf,0x08] 13*9880d681SAndroid Build Coastguard Worker// CHECK: ldlarh w0, [x1] // encoding: [0x20,0x7c,0xdf,0x48] 14*9880d681SAndroid Build Coastguard Worker// CHECK: ldlar w0, [x1] // encoding: [0x20,0x7c,0xdf,0x88] 15*9880d681SAndroid Build Coastguard Worker// CHECK: ldlar x0, [x1] // encoding: [0x20,0x7c,0xdf,0xc8] 16*9880d681SAndroid Build Coastguard Worker stllrb w0,[x1] 17*9880d681SAndroid Build Coastguard Worker stllrh w0,[x1] 18*9880d681SAndroid Build Coastguard Worker stllr w0,[x1] 19*9880d681SAndroid Build Coastguard Worker stllr x0,[x1] 20*9880d681SAndroid Build Coastguard Worker// CHECK: stllrb w0, [x1] // encoding: [0x20,0x7c,0x9f,0x08] 21*9880d681SAndroid Build Coastguard Worker// CHECK: stllrh w0, [x1] // encoding: [0x20,0x7c,0x9f,0x48] 22*9880d681SAndroid Build Coastguard Worker// CHECK: stllr w0, [x1] // encoding: [0x20,0x7c,0x9f,0x88] 23*9880d681SAndroid Build Coastguard Worker// CHECK: stllr x0, [x1] // encoding: [0x20,0x7c,0x9f,0xc8] 24*9880d681SAndroid Build Coastguard Worker 25*9880d681SAndroid Build Coastguard Worker msr LORSA_EL1, x0 26*9880d681SAndroid Build Coastguard Worker msr LOREA_EL1, x0 27*9880d681SAndroid Build Coastguard Worker msr LORN_EL1, x0 28*9880d681SAndroid Build Coastguard Worker msr LORC_EL1, x0 29*9880d681SAndroid Build Coastguard Worker mrs x0, LORID_EL1 30*9880d681SAndroid Build Coastguard Worker// CHECK: msr LORSA_EL1, x0 // encoding: [0x00,0xa4,0x18,0xd5] 31*9880d681SAndroid Build Coastguard Worker// CHECK: msr LOREA_EL1, x0 // encoding: [0x20,0xa4,0x18,0xd5] 32*9880d681SAndroid Build Coastguard Worker// CHECK: msr LORN_EL1, x0 // encoding: [0x40,0xa4,0x18,0xd5] 33*9880d681SAndroid Build Coastguard Worker// CHECK: msr LORC_EL1, x0 // encoding: [0x60,0xa4,0x18,0xd5] 34*9880d681SAndroid Build Coastguard Worker// CHECK: mrs x0, LORID_EL1 // encoding: [0xe0,0xa4,0x38,0xd5] 35*9880d681SAndroid Build Coastguard Worker 36*9880d681SAndroid Build Coastguard Worker ldlarb w0,[w1] 37*9880d681SAndroid Build Coastguard Worker ldlarh x0,[x1] 38*9880d681SAndroid Build Coastguard Worker stllrb w0,[w1] 39*9880d681SAndroid Build Coastguard Worker stllrh x0,[x1] 40*9880d681SAndroid Build Coastguard Worker stllr w0,[w1] 41*9880d681SAndroid Build Coastguard Worker msr LORSA_EL1, #0 42*9880d681SAndroid Build Coastguard Worker msr LOREA_EL1, #0 43*9880d681SAndroid Build Coastguard Worker msr LORN_EL1, #0 44*9880d681SAndroid Build Coastguard Worker msr LORC_EL1, #0 45*9880d681SAndroid Build Coastguard Worker msr LORID_EL1, x0 46*9880d681SAndroid Build Coastguard Worker mrs LORID_EL1, #0 47*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 48*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ldlarb w0,[w1] 49*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 50*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 51*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ldlarh x0,[x1] 52*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 53*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 54*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: stllrb w0,[w1] 55*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 56*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 57*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: stllrh x0,[x1] 58*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 59*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 60*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: stllr w0,[w1] 61*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 62*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 63*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: msr LORSA_EL1, #0 64*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 65*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 66*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: msr LOREA_EL1, #0 67*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 68*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 69*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: msr LORN_EL1, #0 70*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 71*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 72*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: msr LORC_EL1, #0 73*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 74*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected writable system register or pstate 75*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: msr LORID_EL1, x0 76*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 77*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 78*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: mrs LORID_EL1, #0 79*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 80