Enables eip-based addressing, e.g.,
lea constant(%eip), %rax
lea constant(%eip), %eax
in llvm-mc, which is used in x32. EIP-base addressing is also valid in x86_64,
it is left enabled for that architecture as well.
Paths
| Differential D16581
llvm-mc. Enables eip-relative addressing. ClosedPublic Authored by jpp on Jan 26 2016, 7:02 AM.
Details Summary Enables eip-based addressing, e.g., lea constant(%eip), %rax in llvm-mc, which is used in x32. EIP-base addressing is also valid in x86_64,
Diff Detail
Event Timelinejpp updated this object. Comment Actions Could you add a little bit more detail to the commit description (e.g. this is used for x32, it still requires x86-64 codegen, etc) This revision is now accepted and ready to land.Jan 26 2016, 11:02 AM jpp edited edge metadata. Comment ActionsAdding EIP to GR32 introduces regressions in other llvm components. This patch reverts that change, and then it adds a check to Is32BitMemOperand. This patch was tested with ninja check-llvm. Let me know if any other tests are needed. Comment Actions Looks better, thanks. I'll leave it up for a bit more in case there are more comments, and land it soon. Closed by commit rL259528: [MC] Enable eip-relative addressing on x86-64 for X32 ABI (authored by dschuff). · Explain WhyFeb 2 2016, 9:24 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 46664 llvm/trunk/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
llvm/trunk/test/MC/X86/x86-64.s
|