[LoongArch] Allow %pc_lo12 relocs in JIRL's immediate operand position
Currently, gcc-13 will generate such assembly when `-mcmodel=medium`, which is ostensibly a dirty hack to allow bigger offsets for extern function calls without having to add more reloc types. This is not the best way to accomplish the original goal, but such usages will appear soon and we have to support it anyway. Example: ```c extern int foo(int); int bar(int x) { return foo(x + 123); } ``` will produce the following (simplified) assembly when compiled with `-O2 -mcmodel=medium`: ``` .globl bar .type bar, @function bar: .cfi_startproc addi.w $r4,$r4,123 pcalau12i $r12,%pc_hi20(foo) jirl $r0,$r12,%pc_lo12(foo) .cfi_endproc ``` Reviewed By: SixWeining, wangleiat, MaskRay, xry111 Differential Revision: https://reviews.llvm.org/D142278
Loading
Please sign in to comment