File: armv9a-rme.s

package info (click to toggle)
swiftlang 6.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,519,992 kB
  • sloc: cpp: 9,107,863; ansic: 2,040,022; asm: 1,135,751; python: 296,500; objc: 82,456; f90: 60,502; lisp: 34,951; pascal: 19,946; sh: 18,133; perl: 7,482; ml: 4,937; javascript: 4,117; makefile: 3,840; awk: 3,535; xml: 914; fortran: 619; cs: 573; ruby: 573
file content (70 lines) | stat: -rw-r--r-- 3,151 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
// RUN: not llvm-mc -triple aarch64 -mattr +rme -show-encoding %s 2> %t | FileCheck %s
// RUN: FileCheck --check-prefix=CHECK-ERROR %s < %t
// RUN: not llvm-mc -triple aarch64 -show-encoding %s 2> %t | FileCheck --check-prefix=CHECK-NO-RME %s
// RUN: FileCheck --check-prefix=CHECK-NO-RME-ERROR %s < %t

msr MFAR_EL3, x0
msr GPCCR_EL3, x0
msr GPTBR_EL3, x0
mrs x0, MFAR_EL3
mrs x0, GPCCR_EL3
mrs x0, GPTBR_EL3
// CHECK: msr MFAR_EL3,  x0   // encoding: [0xa0,0x60,0x1e,0xd5]
// CHECK: msr GPCCR_EL3, x0   // encoding: [0xc0,0x21,0x1e,0xd5]
// CHECK: msr GPTBR_EL3, x0   // encoding: [0x80,0x21,0x1e,0xd5]
// CHECK: mrs x0, MFAR_EL3    // encoding: [0xa0,0x60,0x3e,0xd5]
// CHECK: mrs x0, GPCCR_EL3   // encoding: [0xc0,0x21,0x3e,0xd5]
// CHECK: mrs x0, GPTBR_EL3   // encoding: [0x80,0x21,0x3e,0xd5]
// CHECK-NO-RME: msr MFAR_EL3,  x0   // encoding: [0xa0,0x60,0x1e,0xd5]
// CHECK-NO-RME-ERROR: [[@LINE-12]]:5: error: expected writable system register
// CHECK-NO-RME-ERROR: [[@LINE-12]]:5: error: expected writable system register
// CHECK-NO-RME: mrs x0, MFAR_EL3    // encoding: [0xa0,0x60,0x3e,0xd5]
// CHECK-NO-RME-ERROR: [[@LINE-12]]:9: error: expected readable system register
// CHECK-NO-RME-ERROR: [[@LINE-12]]:9: error: expected readable system register

tlbi rpaos, x0
tlbi rpalos, x0
tlbi paallos
tlbi paall
// CHECK: tlbi rpaos, x0      // encoding: [0x60,0x84,0x0e,0xd5]
// CHECK: tlbi rpalos, x0     // encoding: [0xe0,0x84,0x0e,0xd5]
// CHECK: tlbi paallos        // encoding: [0x9f,0x81,0x0e,0xd5]
// CHECK: tlbi paall          // encoding: [0x9f,0x87,0x0e,0xd5]
// CHECK-NO-RME-ERROR: [[@LINE-8]]:6: error: TLBI RPAOS requires: rme
// CHECK-NO-RME-ERROR: [[@LINE-8]]:6: error: TLBI RPALOS requires: rme
// CHECK-NO-RME-ERROR: [[@LINE-8]]:6: error: TLBI PAALLOS requires: rme
// CHECK-NO-RME-ERROR: [[@LINE-8]]:6: error: TLBI PAALL requires: rme

tlbi RPAOS
tlbi RPALOS
tlbi PAALLOS, x25
tlbi PAALL, x25
// CHECK-ERROR: error: specified {{TLBI|tlbi}} op requires a register
// CHECK-ERROR-NEXT:         tlbi RPAOS
// CHECK-ERROR-NEXT:              ^
// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register
// CHECK-ERROR-NEXT:         tlbi RPALOS
// CHECK-ERROR-NEXT:              ^
// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op does not use a register
// CHECK-ERROR-NEXT:         tlbi PAALLOS, x25
// CHECK-ERROR-NEXT:                       ^
// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op does not use a register
// CHECK-ERROR-NEXT:         tlbi PAALL, x25
// CHECK-ERROR-NEXT:                    ^
// CHECK-NO-RME-ERROR: [[@LINE-16]]:6: error: TLBI RPAOS requires: rme
// CHECK-NO-RME-ERROR: [[@LINE-16]]:6: error: TLBI RPALOS requires: rme
// CHECK-NO-RME-ERROR: [[@LINE-16]]:6: error: TLBI PAALLOS requires: rme
// CHECK-NO-RME-ERROR: [[@LINE-16]]:6: error: TLBI PAALL requires: rme

sys #6, c8, c4, #3
sys #6, c8, c4, #7
sys #6, c8, c1, #4
sys #6, c8, c7, #4
// CHECK: tlbi rpaos
// CHECK: tlbi rpalos
// CHECK: tlbi paallos
// CHECK: tlbi paall
// CHECK-NO-RME: sys #6, c8, c4, #3
// CHECK-NO-RME: sys #6, c8, c4, #7
// CHECK-NO-RME: sys #6, c8, c1, #4
// CHECK-NO-RME: sys #6, c8, c7, #4