OSDN Git Service

Merge upstream r129128
authorJush Lu <jush.msn@gmail.com>
Sat, 9 Apr 2011 03:27:00 +0000 (11:27 +0800)
committerJush Lu <jush.msn@gmail.com>
Sat, 9 Apr 2011 03:27:00 +0000 (11:27 +0800)
1  2 
lib/CodeGen/AsmPrinter/AsmPrinter.cpp
lib/Target/ARM/ARMCodeEmitter.cpp
lib/Target/ARM/ARMInstrInfo.td
lib/Target/ARM/ARMInstrVFP.td
lib/Target/X86/X86AsmPrinter.cpp

@@@ -463,9 -460,8 +465,9 @@@ void AsmPrinter::EmitFunctionHeader() 
                                     CurrentFnSym->getName());
      OutStreamer.EmitLabel(FakeStub);
    }
-   
    // Emit pre-function debug and/or EH information.
 +#ifndef ANDROID_TARGET_BUILD
    if (DE) {
      NamedRegionTimer T(EHTimerName, DWARFGroupName, TimePassesIsEnabled);
      DE->BeginFunction(MF);
@@@ -737,9 -728,8 +739,9 @@@ void AsmPrinter::EmitFunctionBody() 
                                OutContext);
      OutStreamer.EmitELFSize(CurrentFnSym, SizeExp);
    }
-   
    // Emit post-function debug information.
 +#ifndef ANDROID_TARGET_BUILD
    if (DD) {
      NamedRegionTimer T(DbgTimerName, DWARFGroupName, TimePassesIsEnabled);
      DD->endFunction(MF);
      NamedRegionTimer T(EHTimerName, DWARFGroupName, TimePassesIsEnabled);
      DE->EndFunction();
    }
 +#endif // ANDROID_TARGET_BUILD
    MMI->EndFunction();
-   
    // Print out jump tables referenced by the function.
    EmitJumpTableInfo();
-   
    OutStreamer.AddBlankLine();
  }
  
Simple merge
@@@ -3003,11 -2993,17 +2993,19 @@@ def REVSH : AMiscA1I<0b01101111, 0b1011
                          (shl GPR:$Rm, (i32 8))), i16))]>,
                 Requires<[IsARM, HasV6]>;
  
+ def : ARMV6Pat<(sext_inreg (or (srl (and GPR:$Rm, 0xFF00), (i32 8)),
+                                (shl GPR:$Rm, (i32 8))), i16),
+                (REVSH GPR:$Rm)>;
+ // Need the AddedComplexity or else MOVs + REV would be chosen.
+ let AddedComplexity = 5 in
+ def : ARMV6Pat<(sra (bswap GPR:$Rm), (i32 16)), (REVSH GPR:$Rm)>;
  def lsl_shift_imm : SDNodeXForm<imm, [{
 -  unsigned Sh = ARM_AM::getSORegOpc(ARM_AM::lsl, N->getZExtValue());
 -  return CurDAG->getTargetConstant(Sh, MVT::i32);
 +  // Note that since the shift kind is fixed for both PKHBT and PKHTB,
 +  // we don't encode anything other than the ShiftAmt [see ARMCodeEmitter.cpp]
 +  //unsigned Sh = ARM_AM::getSORegOpc(ARM_AM::lsl, N->getZExtValue());
 +  return CurDAG->getTargetConstant(N->getZExtValue(), MVT::i32);
  }]>;
  
  def lsl_amt : PatLeaf<(i32 imm), [{
Simple merge
Simple merge