[llvm] r335660 - Revert "[X86][AsmParser] Emit an error when RIP-relative instructions are used in 32-bit mode"

Jessica Paquette via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 26 13:57:19 PDT 2018


Author: paquette
Date: Tue Jun 26 13:57:19 2018
New Revision: 335660

URL: http://llvm.org/viewvc/llvm-project?rev=335660&view=rev
Log:
Revert "[X86][AsmParser] Emit an error when RIP-relative instructions are used in 32-bit mode"

This reverts commit 4850a9aae8b38c7deadc103d634ec7397e6c323b.

It caused MC/X86/x86_errors.s to fail. Will fix and recommit shortly.

Removed:
    llvm/trunk/test/CodeGen/X86/eip-addressing-i386.ll
Modified:
    llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp

Modified: llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp?rev=335660&r1=335659&r2=335660&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp (original)
+++ llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp Tue Jun 26 13:57:19 2018
@@ -974,13 +974,6 @@ static unsigned MatchRegisterName(String
 static bool CheckBaseRegAndIndexRegAndScale(unsigned BaseReg, unsigned IndexReg,
                                             unsigned Scale, bool Is64BitMode,
                                             StringRef &ErrMsg) {
-  // RIP/EIP-relative addressing is only supported in 64-bit mode.
-  if (!Is64BitMode && BaseReg != 0 &&
-      (BaseReg == X86::RIP || BaseReg == X86::EIP)) {
-    ErrMsg = "RIP-relative addressing requires 64-bit mode";
-    return true;
-  }
-
   // If we have both a base register and an index register make sure they are
   // both 64-bit or 32-bit registers.
   // To support VSIB, IndexReg can be 128-bit or 256-bit registers.

Removed: llvm/trunk/test/CodeGen/X86/eip-addressing-i386.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/eip-addressing-i386.ll?rev=335659&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/X86/eip-addressing-i386.ll (original)
+++ llvm/trunk/test/CodeGen/X86/eip-addressing-i386.ll (removed)
@@ -1,13 +0,0 @@
-; RUN: not llc -mtriple i386-apple-- -o /dev/null < %s 2>&1| FileCheck %s
-; CHECK: <inline asm>:1:13: error: RIP-relative addressing requires 64-bit mode
-; CHECK-NEXT: jmpl *_foo(%eip)
-
-; Make sure that we emit an error if we encounter RIP-relative instructions in
-; 32-bit mode.
-
-define i32 @foo() { ret i32 0 }
-
-define i32 @bar() {
-  call void asm sideeffect "jmpl *_foo(%eip)\0A", "~{dirflag},~{fpsr},~{flags}"()
-  ret i32 0
-}




More information about the llvm-commits mailing list