Fix the non-MC encoding of pkhbt and pkhtb.
authorEric Christopher <echristo@apple.com>
Sat, 7 May 2011 04:37:27 +0000 (04:37 +0000)
committerEric Christopher <echristo@apple.com>
Sat, 7 May 2011 04:37:27 +0000 (04:37 +0000)
Patch by Stephen Hines.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131045 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMCodeEmitter.cpp

index fa7371626f2938d88b7fd409337ce34ebd7f6200..d0c0e95251248dd5b8a1d298ef8a5144e8edffdb 100644 (file)
@@ -1372,6 +1372,12 @@ void ARMCodeEmitter::emitMiscArithInstruction(const MachineInstr &MI) {
   // Set the conditional execution predicate
   Binary |= II->getPredicate(&MI) << ARMII::CondShift;
 
+  // PKH instructions are finished at this point
+  if (TID.Opcode == ARM::PKHBT || TID.Opcode == ARM::PKHTB) {
+    emitWordLE(Binary);
+    return;
+  }
+
   unsigned OpIdx = 0;
 
   // Encode Rd