[llvm-commits] [llvm] r107809 - in /llvm/trunk: lib/Target/X86/X86InstrInfo.cpp test/CodeGen/X86/crash.ll

Jakob Stoklund Olesen stoklund at 2pi.dk
Wed Jul 7 13:33:28 PDT 2010


Author: stoklund
Date: Wed Jul  7 15:33:27 2010
New Revision: 107809

URL: http://llvm.org/viewvc/llvm-project?rev=107809&view=rev
Log:
Allow copies between GR8_ABCD_L and GR8_ABCD_H.

This fixes PR7540.

Modified:
    llvm/trunk/lib/Target/X86/X86InstrInfo.cpp
    llvm/trunk/test/CodeGen/X86/crash.ll

Modified: llvm/trunk/lib/Target/X86/X86InstrInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrInfo.cpp?rev=107809&r1=107808&r2=107809&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrInfo.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86InstrInfo.cpp Wed Jul  7 15:33:27 2010
@@ -1913,6 +1913,9 @@
     else if (SrcRC->hasSuperClass(&X86::GR32RegClass) &&
              DestRC->hasSuperClass(&X86::GR32RegClass))
       CommonRC = &X86::GR32RegClass;
+    else if (SrcRC->hasSuperClass(&X86::GR8RegClass) &&
+             DestRC->hasSuperClass(&X86::GR8RegClass))
+      CommonRC = &X86::GR8RegClass;
     else
       CommonRC = 0;
   }

Modified: llvm/trunk/test/CodeGen/X86/crash.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/crash.ll?rev=107809&r1=107808&r2=107809&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/crash.ll (original)
+++ llvm/trunk/test/CodeGen/X86/crash.ll Wed Jul  7 15:33:27 2010
@@ -130,3 +130,14 @@
 bb67:
   ret void
 }
+
+; Crash when trying to copy AH to AL.
+; PR7540
+define void @copy8bitregs() nounwind {
+entry:
+  %div.i = sdiv i32 115200, 0
+  %shr8.i = lshr i32 %div.i, 8
+  %conv4.i = trunc i32 %shr8.i to i8
+  call void asm sideeffect "outb $0, ${1:w}", "{ax},N{dx},~{dirflag},~{fpsr},~{flags}"(i8 %conv4.i, i32 1017) nounwind
+  unreachable
+}





More information about the llvm-commits mailing list