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