[Bug target/82303] Better PIE/PIC code generation for kernel code (x86_64 & arm64)
hjl.tools at gmail dot com
gcc-bugzilla@gcc.gnu.org
Tue Jan 23 21:42:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82303
--- Comment #17 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to Thomas Garnier from comment #16)
> Yes, I think you can't just default to the non-PIE mode.
>
> Clang does it well though:
>
> 0000000000000000 <phy_modes>:
> 0: 83 ff 16 cmp $0x16,%edi
> 3: 77 0f ja 14 <phy_modes+0x14>
> 5: 48 63 c7 movslq %edi,%rax
> 8: 48 8d 0d 00 00 00 00 lea 0x0(%rip),%rcx # f
> <phy_modes+0xf>
> b: R_X86_64_PC32 .data.rel.ro-0x4
> f: 48 8b 04 c1 mov (%rcx,%rax,8),%rax
> 13: c3 retq
> 14: 48 8d 05 00 00 00 00 lea 0x0(%rip),%rax # 1b
> <phy_modes+0x1b>
> 17: R_X86_64_PC32 .L.str.23-0x4
> 1b: c3 retq
Please open a separate bug report to improve switch codegen for PIC.
More information about the Gcc-bugs
mailing list