[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