Fix PR313: [x86] JIT miscompiles unsigned short to floating point
authorChris Lattner <sabre@nondot.org>
Tue, 6 Apr 2004 19:29:36 +0000 (19:29 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 6 Apr 2004 19:29:36 +0000 (19:29 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12711 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/InstSelectSimple.cpp
lib/Target/X86/X86ISelSimple.cpp

index 05d2d887d11946eae584438dae6bbfcdec89f3e4..4a04b2910fcdc2688ea713045ccaf9c5518bdd03 100644 (file)
@@ -2640,8 +2640,7 @@ void ISel::emitCastOperation(MachineBasicBlock *BB,
     
     if (PromoteType) {
       unsigned TmpReg = makeAnotherReg(PromoteType);
-      unsigned Opc = SrcTy->isSigned() ? X86::MOVSX16rr8 : X86::MOVZX16rr8;
-      BuildMI(*BB, IP, Opc, 1, TmpReg).addReg(SrcReg);
+      BuildMI(*BB, IP, PromoteOpcode, 1, TmpReg).addReg(SrcReg);
       SrcTy = PromoteType;
       SrcClass = getClass(PromoteType);
       SrcReg = TmpReg;
index 05d2d887d11946eae584438dae6bbfcdec89f3e4..4a04b2910fcdc2688ea713045ccaf9c5518bdd03 100644 (file)
@@ -2640,8 +2640,7 @@ void ISel::emitCastOperation(MachineBasicBlock *BB,
     
     if (PromoteType) {
       unsigned TmpReg = makeAnotherReg(PromoteType);
-      unsigned Opc = SrcTy->isSigned() ? X86::MOVSX16rr8 : X86::MOVZX16rr8;
-      BuildMI(*BB, IP, Opc, 1, TmpReg).addReg(SrcReg);
+      BuildMI(*BB, IP, PromoteOpcode, 1, TmpReg).addReg(SrcReg);
       SrcTy = PromoteType;
       SrcClass = getClass(PromoteType);
       SrcReg = TmpReg;