仅发出长跳转指令而不是 LLVM 的短跳转指令

Emit only long jump instructions instead of short jump instructions for LLVM

有什么简单的方法可以让 LLVM 不发出 1 字节位移 的短跳转指令,比如 75 30 JNE +30eb 1a JMP +1a 等; 而是只发出 4 字节位移 带有 3 字节零填充的跳转指令,比如 0f 85 30 00 00 00 JNE +30e9 1a 00 00 00 JMPQ +1a 等, 在 x86_64 架构下?

显然,这会增加代码大小。

X86AsmBackend.cpp中有一个函数fixupNeedsRelaxation。如果你总是 return true 在这里它应该总是放松 e.g.改为全排量。