|
1 | 1 | # RUN: %clang --target=fuchsia-elf-riscv64 -march=rv64gc_zcb %s -nostdlib -o %t
|
| 2 | +# RUN: llvm-objcopy --add-symbol abs=0,global %t |
2 | 3 | # RUN: llvm-objdump -d %t | FileCheck %s
|
3 | 4 |
|
4 | 5 | # CHECK: 0000000000001000 <_start>:
|
|
20 | 21 | # CHECK-NEXT: 102a: 0511 addi a0, a0, 0x4 <target>
|
21 | 22 | # CHECK-NEXT: 102c: 0505 addi a0, a0, 0x1
|
22 | 23 | # CHECK-NEXT: 102e: 00200037 lui zero, 0x200
|
23 |
| -# CHECK-NEXT: 1032: 00a02423 sw a0, 0x8(zero) |
| 24 | +# CHECK-NEXT: 1032: 00a02423 sw a0, 0x8(zero) <abs+0x8> |
24 | 25 | # CHECK-NEXT: 1036: 00101097 auipc ra, 0x101
|
25 | 26 | # CHECK-NEXT: 103a: fd6080e7 jalr -0x2a(ra) <func>
|
26 | 27 | # CHECK-NEXT: 103e: 640d lui s0, 0x3
|
@@ -71,9 +72,11 @@ _start:
|
71 | 72 | addi a0, a0, 0x4
|
72 | 73 | addi a0, a0, 0x1 # verify register tracking terminates
|
73 | 74 |
|
74 |
| - # Test 5 ensures that an instruction writing into the zero register does |
75 |
| - # not trigger resolution because that register's value cannot change and |
76 |
| - # the sequence is equivalent to never running the first instruction |
| 75 | + # Test 5 check instructions providing upper bits does not change the tracked |
| 76 | + # value of zero register + ensure load/store instructions accessing data |
| 77 | + # relative to the zero register trigger address resolution. The latter kind |
| 78 | + # of instructions are essentially memory accesses relative to the zero |
| 79 | + # register |
77 | 80 |
|
78 | 81 | # test #5
|
79 | 82 | lui x0, 0x200
|
|
0 commit comments