Skip to content

Commit 11d61b0

Browse files
SixWeiningAmi-zhang
authored andcommitted
[lld][LoongArch] Add a another corner testcase for elf::getLoongArchPageDelta
Similar to e752b58. (cherry picked from commit 84a2098)
1 parent cf0d9db commit 11d61b0

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

lld/ELF/Arch/LoongArch.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,6 @@ uint64_t elf::getLoongArchPageDelta(uint64_t dest, uint64_t pc) {
168168
result -= 0x10000'0000;
169169
else if (!negativeA && negativeB)
170170
result += 0x10000'0000;
171-
172171
return result;
173172
}
174173

lld/test/ELF/loongarch-pc-aligned.s

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,19 @@
273273
# EXTREME16-NEXT: lu32i.d $t0, 0
274274
# EXTREME16-NEXT: lu52i.d $t0, $t0, 0
275275

276+
## FIXME: Correct %pc64_lo20 should be 0x00000 (0) and %pc64_hi12 should be 0x000 (0), but current values are:
277+
## page delta = 0xffffffff80000000, page offset = 0x888
278+
## %pc_lo12 = 0x888 = -1912
279+
## %pc_hi20 = 0x80000 = -524288
280+
## %pc64_lo20 = 0xfffff = -1
281+
## %pc64_hi12 = 0xfff = -1
282+
# RUN: ld.lld %t/extreme.o --section-start=.rodata=0x000071238ffff888 --section-start=.text=0x0000712310000678 -o %t/extreme17
283+
# RUN: llvm-objdump -d --no-show-raw-insn %t/extreme17 | FileCheck %s --check-prefix=EXTREME17
284+
# EXTREME17: addi.d $t0, $zero, -1912
285+
# EXTREME17-NEXT: pcalau12i $t1, -524288
286+
# EXTREME17-NEXT: lu32i.d $t0, -1
287+
# EXTREME17-NEXT: lu52i.d $t0, $t0, -1
288+
276289
#--- a.s
277290
.rodata
278291
x:

0 commit comments

Comments
 (0)