Skip to content

Commit aee92c7

Browse files
committed
[CHERIoT] Add LLD tests for %cheriot_compartment_hi and %cheriot_compartment_lo_i
1 parent bfbfac6 commit aee92c7

File tree

2 files changed

+99
-0
lines changed

2 files changed

+99
-0
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# REQUIRES: riscv
2+
# RUN: llvm-mc -triple=riscv32cheriot-unknown-cheriotrtos -mcpu=cheriot -mattr=+c,+xcheri,+xcheriot -filetype=obj %s -o %t.o
3+
# RUN: ld.lld %t.o -o %t.exe
4+
# RUN: llvm-objdump -d %t.exe | FileCheck %s
5+
6+
.attribute 4, 16
7+
.attribute 5, "rv32e2p0_m2p0_c2p0_zmmul1p0_xcheri0p0_xcheriot1p0"
8+
.section .text,"ax",@progbits
9+
.globl _start
10+
.p2align 1
11+
.type _start,@function
12+
_start: # @_Z5entryv
13+
ct.auipcc ct1, %cheriot_compartment_hi(near)
14+
ct.auipcc ct1, %cheriot_compartment_hi(mid)
15+
16+
# CHECK: 00012000 <_start>:
17+
# CHECK-NEXT: 12000: 00000317 ct.auipcc ct1, 0x0
18+
# CHECK-NEXT: 12004: 00001317 ct.auipcc ct1, 0x1
19+
20+
.type near,@object
21+
.p2align 3, 0x0
22+
near:
23+
.word 1
24+
25+
# CHECK: 00012008 <near>:
26+
# CHECK-NEXT: 12008: 01 00 00 00 00 00 00 00
27+
28+
.type mid,@object
29+
.p2align 12, 0x0
30+
mid:
31+
.word 1
32+
33+
# CHECK: 00013000 <mid>:
34+
# CHECK-NEXT: 13000: 01 00 00 00
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# REQUIRES: riscv
2+
# RUN: llvm-mc -triple=riscv32cheriot-unknown-cheriotrtos -mcpu=cheriot -mattr=+c,+xcheri,+xcheriot -filetype=obj %s -o %t.o
3+
# RUN: ld.lld %t.o -o %t.exe
4+
# RUN: llvm-objdump -d %t.exe | FileCheck %s
5+
6+
.attribute 4, 16
7+
.attribute 5, "rv32e2p0_m2p0_c2p0_zmmul1p0_xcheri0p0_xcheriot1p0"
8+
.section .text,"ax",@progbits
9+
.globl _start
10+
.p2align 1
11+
.type _start,@function
12+
_start: # @_Z5entryv
13+
ct.auipcc ct1, %cheriot_compartment_hi(near)
14+
ct.clc ct1, %cheriot_compartment_lo_i(_start)(ct1)
15+
.MID_BLOCK:
16+
ct.auipcc ct1, %cheriot_compartment_hi(mid)
17+
ct.clc ct1, %cheriot_compartment_lo_i(.MID_BLOCK)(ct1)
18+
.CGP_BLOCK:
19+
ct.auipcc ct1, %cheriot_compartment_hi(cgp)
20+
ct.clw ra, %cheriot_compartment_lo_i(.CGP_BLOCK)(ct1)
21+
.CGP_FAR_BLOCK:
22+
ct.auipcc ct1, %cheriot_compartment_hi(cgp_far)
23+
ct.clw ra, %cheriot_compartment_lo_i(.CGP_FAR_BLOCK)(ct1)
24+
25+
# CHECK: 00012000 <_start>:
26+
# CHECK-NEXT: 12000: 00000317 ct.auipcc ct1, 0x0
27+
# CHECK-NEXT: 12004: 02033303 ct.clc ct1, 0x20(ct1)
28+
29+
# CHECK: 00012008 <.MID_BLOCK>:
30+
# CHECK-NEXT: 12008: 00001317 ct.auipcc ct1, 0x1
31+
# CHECK-NEXT: 1200c: 7f833303 ct.clc ct1, 0x7f8(ct1)
32+
33+
# CHECK: 00012010 <.CGP_BLOCK>:
34+
# CHECK-NEXT: 12010: ffffe37b ct.auicgp ct1, 0xffffe
35+
# CHECK-NEXT: 12014: ffc32083 ct.clw ra, -0x4(ct1)
36+
37+
# CHECK: 00012018 <.CGP_FAR_BLOCK>:
38+
# CHECK-NEXT: 12018: 0000237b ct.auicgp ct1, 0x2
39+
# CHECK-NEXT: 1201c: 00032083 ct.clw ra, 0x0(ct1)
40+
41+
.type near,@object
42+
.p2align 3, 0x0
43+
near:
44+
.word 1
45+
46+
# CHECK: 00012010 <near>:
47+
# CHECK-NEXT: 12010: 01 00 00 00 00 00 00 00
48+
49+
.type mid,@object
50+
.p2align 12, 0x0
51+
mid:
52+
.word 1
53+
54+
# CHECK: 00013000 <mid>:
55+
# CHECK-NEXT: 13000: 01 00 00 00
56+
57+
.section .data,"aw",@progbits
58+
.type cgp,@object
59+
.globl cgp
60+
.p2align 4, 0x0
61+
cgp:
62+
.word 2
63+
.zero 8192
64+
cgp_far:
65+
.word 3

0 commit comments

Comments
 (0)