As noticed in https://github.com/llvm/llvm-project/pull/140471, the SystemZ target currently implements disassembly of PC-relative target addresses differently from other back-ends. This patch brings SystemZ in line with other targets. Specifically, this patch changes the relevant MCInst instructions to carry a PC-relative displacement instead of an absolute target address in their immediate fields. When printing the instruction, this displacement will either be shown as is (e.g. for llvm-mc), or else translated into an absolute address at print time (e.g. for llvm-objdump). The existing llvm-mc based tests using PC-relative operands no longer work and have to be rewritten, but printing displacements makes those tests easier to maintain anyway.
14 KiB
14 KiB