Home | History | Annotate | Download | only in AArch64
      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