是否有任何简单的方法可以使LLVM不发出 1-bytes-displacement 的短跳转指令,如
75 30 JNE +30
,eb 1a JMP +1a
等;
相反,只发出带有3字节零填充的 4字节位移跳转指令
0f 85 30 00 00 00 JNE +30
,e9 1a 00 00 00 JMPQ +1a
等,
在x86_64架构下?
显然,这会增加代码大小。
答案 0 :(得分:4)
在X86AsmBackend.cpp
中有一个函数fixupNeedsRelaxation
。如果你总是在这里回归,那么它总是应该放松改为完全排量。