File: rv32i-only-valid.s

package info (click to toggle)
llvm-toolchain-21 1%3A21.1.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 2,235,796 kB
  • sloc: cpp: 7,617,614; ansic: 1,433,901; asm: 1,058,726; python: 252,096; f90: 94,671; objc: 70,753; lisp: 42,813; pascal: 18,401; sh: 10,032; ml: 5,111; perl: 4,720; awk: 3,523; makefile: 3,401; javascript: 2,272; xml: 892; fortran: 770
file content (61 lines) | stat: -rw-r--r-- 1,945 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
# RUN: llvm-mc %s -triple=riscv32 -M no-aliases -show-encoding \
# RUN:     | FileCheck -check-prefixes=CHECK-ASM,CHECK-ASM-AND-OBJ %s
# RUN: llvm-mc -filetype=obj -triple=riscv32 < %s \
# RUN:     | llvm-objdump -M no-aliases --no-print-imm-hex -d -r - \
# RUN:     | FileCheck -check-prefixes=CHECK-OBJ,CHECK-ASM-AND-OBJ %s

# CHECK-ASM-AND-OBJ: addi a0, a1, -1
# CHECK-ASM: encoding: [0x13,0x85,0xf5,0xff]
addi a0, a1, 4294967295 # 0xffffffff
# CHECK-ASM-AND-OBJ: ori a2, a3, -2048
# CHECK-ASM: encoding: [0x13,0xe6,0x06,0x80]
ori a2, a3, 0xfffff800
# CHECK-ASM-AND-OBJ: lw a1, -1621(a2)
# CHECK-ASM: encoding: [0x83,0x25,0xb6,0x9a]
lw a1, 0xfffff9ab(a2)
# CHECK-ASM-AND-OBJ: sw a1, -8(a2)
# CHECK-ASM: encoding: [0x23,0x2c,0xb6,0xfe]
sw a1, 0xfffffff8(a2)

## Branch and Jump immediates are relative but printed as their absolute address
## when disassembling.

# CHECK-ASM: beq t0, t1, -4096
# CHECK-ASM: encoding: [0x63,0x80,0x62,0x80]
# CHECK-OBJ: beq t0, t1, 0xfffff010
beq t0, t1, 0xfffff000

# CHECK-ASM: bne t1, t2, -4082
# CHECK-ASM: encoding: [0x63,0x17,0x73,0x80]
# CHECK-OBJ: bne t1, t2, 0xfffff022
bne t1, t2, 0xfffff00e

# CHECK-ASM: beq t2, zero, -3550
# CHECK-ASM: encoding: [0x63,0x81,0x03,0xa2]
# CHECK-OBJ: beq t2, zero, 0xfffff23a
beqz t2, 0xfffff222

# CHECK-ASM: .insn b 99, 0, a0, a1, -3004
# CHECK-ASM: encoding: [0x63,0x02,0xb5,0xc4]
# CHECK-OBJ: beq a0, a1, 0xfffff460
.insn b  BRANCH,  0, a0, a1, 0xfffff444

# CHECK-ASM: jal ra, -2458
# CHECK-ASM: encoding: [0xef,0xf0,0x6f,0xe6]
# CHECK-OBJ: jal ra, 0xfffff686
jal ra, 0xfffff666

# CHECK-ASM: jal ra, -1912
# CHECK-ASM: encoding: [0xef,0xf0,0x9f,0x88]
# CHECK-OBJ: jal ra, 0xfffff8ac
jal 0xfffff888

# CHECK-ASM: jal zero, -1366
# CHECK-ASM: encoding: [0x6f,0xf0,0xbf,0xaa]
# CHECK-OBJ: jal zero, 0xfffffad2
j 0xfffffaaa

# CHECK-ASM: .insn j 111, a0, -820
# CHECK-ASM: encoding: [0x6f,0x65,0xe6,0xff]
# CHECK-OBJ: jal a0, 0xfff6682a
.insn j JAL, a0, 0xfffffccc