aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/Makefile
diff options
context:
space:
mode:
authorHeiko Carstens <hca@linux.ibm.com>2022-05-11 14:05:30 +0200
committerHeiko Carstens <hca@linux.ibm.com>2022-05-17 15:16:29 +0200
commite9953b729b789c0e2984859e3b2170b7fa8520d5 (patch)
tree9b0ed9313105dcd2b3028bc598d23e9f010a8a61 /arch/s390/Makefile
parents390/purgatory: workaround llvm's IAS limitations (diff)
downloadlinux-dev-e9953b729b789c0e2984859e3b2170b7fa8520d5.tar.xz
linux-dev-e9953b729b789c0e2984859e3b2170b7fa8520d5.zip
s390/boot: workaround llvm IAS bug
For at least the mvc and clc instructions llvm's integrated assembler can generate incorrect code. In particular this happens with decompressor boot code. The reason seems to be that relocations for the second displacement of each instruction are at incorrect locations (-/+: gas vs llvm IAS): mvc __LC_IO_NEW_PSW(16),.Lnewpsw results in 4: d2 0f 01 f0 00 00 mvc 496(16,%r0),0 - 8: R_390_12 .head.text+0x10 + 6: R_390_12 .head.text+0x10 and clc 0(3,%r4),.L_hdr results in 258: d5 02 40 00 00 00 clc 0(3,%r4),0 - 25c: R_390_12 .head.text+0x324 + 25a: R_390_12 .head.text+0x324 Workaround this by writing the code in a different way. Tested-by: Nathan Chancellor <nathan@kernel.org> Tested-by: Nick Desaulniers <ndesaulniers@google.com> Link: https://github.com/llvm/llvm-project/issues/55411 Link: https://lore.kernel.org/r/20220511120532.2228616-7-hca@linux.ibm.com Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Diffstat (limited to 'arch/s390/Makefile')
0 files changed, 0 insertions, 0 deletions