From d9fd44e97ae91e8499cebb0d841fd1e9080227a6 Mon Sep 17 00:00:00 2001 From: Sanjoy Das Date: Wed, 6 May 2015 23:53:26 +0000 Subject: [PATCH] [X86MCInst] Move LowerSTATEPOINT to inside X86AsmPrinter. NFC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@236676 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/X86AsmPrinter.h | 1 + lib/Target/X86/X86MCInstLower.cpp | 18 +++++++----------- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/lib/Target/X86/X86AsmPrinter.h b/lib/Target/X86/X86AsmPrinter.h index b8aa17752dc..3beeb1752bf 100644 --- a/lib/Target/X86/X86AsmPrinter.h +++ b/lib/Target/X86/X86AsmPrinter.h @@ -82,6 +82,7 @@ class LLVM_LIBRARY_VISIBILITY X86AsmPrinter : public AsmPrinter { void InsertStackMapShadows(MachineFunction &MF); void LowerSTACKMAP(const MachineInstr &MI); void LowerPATCHPOINT(const MachineInstr &MI, X86MCInstLower &MCIL); + void LowerSTATEPOINT(const MachineInstr &MI, X86MCInstLower &MCIL); void LowerTlsAddr(X86MCInstLower &MCInstLowering, const MachineInstr &MI); diff --git a/lib/Target/X86/X86MCInstLower.cpp b/lib/Target/X86/X86MCInstLower.cpp index b98e4879de3..273444cccc0 100644 --- a/lib/Target/X86/X86MCInstLower.cpp +++ b/lib/Target/X86/X86MCInstLower.cpp @@ -808,12 +808,9 @@ static void EmitNops(MCStreamer &OS, unsigned NumBytes, bool Is64Bit, const MCSu } // while (NumBytes) } -static void LowerSTATEPOINT(MCStreamer &OS, StackMaps &SM, - const MachineInstr &MI, bool Is64Bit, - const TargetMachine& TM, - const MCSubtargetInfo& STI, - X86MCInstLower &MCInstLowering) { - assert(Is64Bit && "Statepoint currently only supports X86-64"); +void X86AsmPrinter::LowerSTATEPOINT(const MachineInstr &MI, + X86MCInstLower &MCIL) { + assert(Subtarget->is64Bit() && "Statepoint currently only supports X86-64"); // Lower call target and choose correct opcode const MachineOperand &CallTarget = StatepointOpers(&MI).getCallTarget(); @@ -822,8 +819,8 @@ static void LowerSTATEPOINT(MCStreamer &OS, StackMaps &SM, switch (CallTarget.getType()) { case MachineOperand::MO_GlobalAddress: case MachineOperand::MO_ExternalSymbol: - CallTargetMCOp = MCInstLowering.LowerSymbolOperand( - CallTarget, MCInstLowering.GetSymbolFromOperand(CallTarget)); + CallTargetMCOp = MCIL.LowerSymbolOperand( + CallTarget, MCIL.GetSymbolFromOperand(CallTarget)); CallOpcode = X86::CALL64pcrel32; // Currently, we only support relative addressing with statepoints. // Otherwise, we'll need a scratch register to hold the target @@ -851,7 +848,7 @@ static void LowerSTATEPOINT(MCStreamer &OS, StackMaps &SM, MCInst CallInst; CallInst.setOpcode(CallOpcode); CallInst.addOperand(CallTargetMCOp); - OS.EmitInstruction(CallInst, STI); + OutStreamer->EmitInstruction(CallInst, getSubtargetInfo()); // Record our statepoint node in the same section used by STACKMAP // and PATCHPOINT @@ -1111,8 +1108,7 @@ void X86AsmPrinter::EmitInstruction(const MachineInstr *MI) { return; } case TargetOpcode::STATEPOINT: - return LowerSTATEPOINT(*OutStreamer, SM, *MI, Subtarget->is64Bit(), TM, - getSubtargetInfo(), MCInstLowering); + return LowerSTATEPOINT(*MI, MCInstLowering); case TargetOpcode::STACKMAP: return LowerSTACKMAP(*MI); -- 2.34.1