Hi,
Testcase:
$ cat llvm/test/MC/Mips/reloc-directive-bad-n64.s # RUN: llvm-mc -triple mips64el-unknown-linux < %s -show-encoding \ # RUN: -target-abi=n64 2>&1 | FileCheck %s .text .global main main: nop daddiu $t9, $ra, main - . # CHECK: :[[@LINE]]:25: warning: should use explicit constraints! nop .word main
GNU toolchain:
$ gcc -fPIC -c ./llvm/test/MC/Mips/reloc-directive-bad-n64.s -o t.gnu.o $ objdump -r t.gnu.o t.gnu.o: file format elf64-tradlittlemips RELOCATION RECORDS FOR [.text]: OFFSET TYPE VALUE 000000000000000c R_MIPS_32 main 000000000000000c R_MIPS_NONE *ABS* 000000000000000c R_MIPS_NONE *ABS*
But LLVM toolchain:
$ clang -fPIC -c ./llvm/test/MC/Mips/reloc-directive-bad-n64.s -o t.llvm.o $ objdump -r t.llvm.o t.llvm.o: file format elf64-tradlittlemips RELOCATION RECORDS FOR [.text]: OFFSET TYPE VALUE 0000000000000004 R_MIPS_32 main 0000000000000004 R_MIPS_NONE *ABS* 0000000000000004 R_MIPS_NONE *ABS* 0000000000000004 R_MIPS_32 .text+0x0000000000000004 0000000000000004 R_MIPS_NONE *ABS*+0x0000000000000004 0000000000000004 R_MIPS_NONE *ABS*+0x0000000000000004 000000000000000c R_MIPS_32 main 000000000000000c R_MIPS_NONE *ABS* 000000000000000c R_MIPS_NONE *ABS*
Warning the user and behaviour same as GNU toolchain after applied the workaround patch:
$ ./build/bin/clang -fPIC -c ./llvm/test/MC/Mips/reloc-directive-bad-n64.s -o t.llvm.o ./llvm/test/MC/Mips/reloc-directive-bad-n64.s:7:25: warning: should use explicit constraints! daddiu $t9, $ra, main - . # CHECK: :[[@LINE]]:25: warning: should use explicit constraints! ^ <unknown>:0: warning: should use explicit constraints! $ objdump -r t.llvm.o t.llvm.o: file format elf64-tradlittlemips RELOCATION RECORDS FOR [.text]: OFFSET TYPE VALUE 000000000000000c R_MIPS_32 main 000000000000000c R_MIPS_NONE *ABS* 000000000000000c R_MIPS_NONE *ABS*
Passed make check-llvm-mc-mips:
[100%] Running lit suite /home/loongson/zhaixiang/llvm-project-8.x/llvm/test/MC/Mips Testing Time: 5.36s Expected Passes : 415 Expected Failures : 19 [100%] Built target check-llvm-mc-mips
Please review the patch, and give me some advice!
Thanks,
Leslie Zhai