[llvm-commits] [llvm] r115393 - in /llvm/trunk: CMakeLists.txt lib/Target/MSP430/InstPrinter/CMakeLists.txt lib/Target/MSP430/InstPrinter/MSP430InstPrinter.cpp lib/Target/MSP430/InstPrinter/MSP430InstPrinter.h lib/Target/MSP430/InstPrinter/Makefile lib/Target/MSP430/MSP430AsmPrinter.cpp lib/Target/MSP430/MSP430MCInstLower.cpp lib/Target/MSP430/MSP430MCInstLower.h lib/Target/MSP430/Makefile
Jim Grosbach
grosbach at apple.com
Fri Oct 1 18:22:42 PDT 2010
Nick,
These only break for you under CMake, right? That's the only place I've been able to reproduce failures.
-Jim
On Oct 1, 2010, at 6:06 PM, Nick Lewycky wrote:
> Author: nicholas
> Date: Fri Oct 1 20:06:42 2010
> New Revision: 115393
>
> URL: http://llvm.org/viewvc/llvm-project?rev=115393&view=rev
> Log:
> Revert patches r115363 r115367 r115391 due to build breakage:
> llvm[2]: Updated LibDeps.txt because dependencies changed
> llvm[2]: Checking for cyclic dependencies between LLVM libraries.
> find-cycles.pl: Circular dependency between *.a files:
> find-cycles.pl: libLLVMMSP430AsmPrinter.a libLLVMMSP430CodeGen.a
>
>
> Modified:
> llvm/trunk/CMakeLists.txt
> llvm/trunk/lib/Target/MSP430/InstPrinter/CMakeLists.txt
> llvm/trunk/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.cpp
> llvm/trunk/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.h
> llvm/trunk/lib/Target/MSP430/InstPrinter/Makefile
> llvm/trunk/lib/Target/MSP430/MSP430AsmPrinter.cpp
> llvm/trunk/lib/Target/MSP430/MSP430MCInstLower.cpp
> llvm/trunk/lib/Target/MSP430/MSP430MCInstLower.h
> llvm/trunk/lib/Target/MSP430/Makefile
>
> Modified: llvm/trunk/CMakeLists.txt
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/CMakeLists.txt?rev=115393&r1=115392&r2=115393&view=diff
> ==============================================================================
> --- llvm/trunk/CMakeLists.txt (original)
> +++ llvm/trunk/CMakeLists.txt Fri Oct 1 20:06:42 2010
> @@ -323,10 +323,6 @@
> add_subdirectory(lib/Target/${t}/AsmPrinter)
> set(LLVM_ENUM_ASM_PRINTERS
> "${LLVM_ENUM_ASM_PRINTERS}LLVM_ASM_PRINTER(${t})\n")
> - if( EXISTS ${LLVM_MAIN_SRC_DIR}/lib/Target/${t}/InstPrinter/CMakeLists.txt )
> - add_subdirectory(lib/Target/${t}/InstPrinter)
> - set(LLVM_ENUM_ASM_PRINTERS
> - "${LLVM_ENUM_ASM_PRINTERS}LLVM_ASM_PRINTER(${t})\n")
> endif( EXISTS ${LLVM_MAIN_SRC_DIR}/lib/Target/${t}/AsmPrinter/CMakeLists.txt )
> if( EXISTS ${LLVM_MAIN_SRC_DIR}/lib/Target/${t}/AsmParser/CMakeLists.txt )
> add_subdirectory(lib/Target/${t}/AsmParser)
>
> Modified: llvm/trunk/lib/Target/MSP430/InstPrinter/CMakeLists.txt
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSP430/InstPrinter/CMakeLists.txt?rev=115393&r1=115392&r2=115393&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/MSP430/InstPrinter/CMakeLists.txt (original)
> +++ llvm/trunk/lib/Target/MSP430/InstPrinter/CMakeLists.txt Fri Oct 1 20:06:42 2010
> @@ -1,6 +0,0 @@
> -include_directories( ${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/.. )
> -
> -add_llvm_library(LLVMMSP430AsmPrinter
> - MSP430InstPrinter.cpp
> - )
> -add_dependencies(LLVMMSP430AsmPrinter MSP430CodeGenTable_gen)
>
> Modified: llvm/trunk/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.cpp?rev=115393&r1=115392&r2=115393&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.cpp (original)
> +++ llvm/trunk/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.cpp Fri Oct 1 20:06:42 2010
> @@ -1,114 +0,0 @@
> -//===-- MSP430InstPrinter.cpp - Convert MSP430 MCInst to assembly syntax --===//
> -//
> -// The LLVM Compiler Infrastructure
> -//
> -// This file is distributed under the University of Illinois Open Source
> -// License. See LICENSE.TXT for details.
> -//
> -//===----------------------------------------------------------------------===//
> -//
> -// This class prints an MSP430 MCInst to a .s file.
> -//
> -//===----------------------------------------------------------------------===//
> -
> -#define DEBUG_TYPE "asm-printer"
> -#include "MSP430.h"
> -#include "MSP430InstrInfo.h"
> -#include "MSP430InstPrinter.h"
> -#include "llvm/MC/MCInst.h"
> -#include "llvm/MC/MCAsmInfo.h"
> -#include "llvm/MC/MCExpr.h"
> -#include "llvm/Support/ErrorHandling.h"
> -#include "llvm/Support/FormattedStream.h"
> -using namespace llvm;
> -
> -
> -// Include the auto-generated portion of the assembly writer.
> -#include "MSP430GenAsmWriter.inc"
> -
> -void MSP430InstPrinter::printInst(const MCInst *MI, raw_ostream &O) {
> - printInstruction(MI, O);
> -}
> -
> -void MSP430InstPrinter::printPCRelImmOperand(const MCInst *MI, unsigned OpNo,
> - raw_ostream &O) {
> - const MCOperand &Op = MI->getOperand(OpNo);
> - if (Op.isImm())
> - O << Op.getImm();
> - else {
> - assert(Op.isExpr() && "unknown pcrel immediate operand");
> - O << *Op.getExpr();
> - }
> -}
> -
> -void MSP430InstPrinter::printOperand(const MCInst *MI, unsigned OpNo,
> - raw_ostream &O, const char *Modifier) {
> - assert((Modifier == 0 || Modifier[0] == 0) && "No modifiers supported");
> - const MCOperand &Op = MI->getOperand(OpNo);
> - if (Op.isReg()) {
> - O << getRegisterName(Op.getReg());
> - } else if (Op.isImm()) {
> - O << '#' << Op.getImm();
> - } else {
> - assert(Op.isExpr() && "unknown operand kind in printOperand");
> - O << '#' << *Op.getExpr();
> - }
> -}
> -
> -void MSP430InstPrinter::printSrcMemOperand(const MCInst *MI, unsigned OpNo,
> - raw_ostream &O,
> - const char *Modifier) {
> - const MCOperand &Base = MI->getOperand(OpNo);
> - const MCOperand &Disp = MI->getOperand(OpNo+1);
> -
> - // Print displacement first
> -
> - // If the global address expression is a part of displacement field with a
> - // register base, we should not emit any prefix symbol here, e.g.
> - // mov.w &foo, r1
> - // vs
> - // mov.w glb(r1), r2
> - // Otherwise (!) msp430-as will silently miscompile the output :(
> - if (!Base.getReg())
> - O << '&';
> -
> - if (Disp.isExpr())
> - O << *Disp.getExpr();
> - else {
> - assert(Disp.isImm() && "Expected immediate in displacement field");
> - O << Disp.getImm();
> - }
> -
> - // Print register base field
> - if (Base.getReg())
> - O << '(' << getRegisterName(Base.getReg()) << ')';
> -}
> -
> -void MSP430InstPrinter::printCCOperand(const MCInst *MI, unsigned OpNo,
> - raw_ostream &O) {
> - unsigned CC = MI->getOperand(OpNo).getImm();
> -
> - switch (CC) {
> - default:
> - llvm_unreachable("Unsupported CC code");
> - break;
> - case MSP430CC::COND_E:
> - O << "eq";
> - break;
> - case MSP430CC::COND_NE:
> - O << "ne";
> - break;
> - case MSP430CC::COND_HS:
> - O << "hs";
> - break;
> - case MSP430CC::COND_LO:
> - O << "lo";
> - break;
> - case MSP430CC::COND_GE:
> - O << "ge";
> - break;
> - case MSP430CC::COND_L:
> - O << 'l';
> - break;
> - }
> -}
>
> Modified: llvm/trunk/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.h?rev=115393&r1=115392&r2=115393&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.h (original)
> +++ llvm/trunk/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.h Fri Oct 1 20:06:42 2010
> @@ -1,43 +0,0 @@
> -//===-- MSP430InstPrinter.h - Convert MSP430 MCInst to assembly syntax ----===//
> -//
> -// The LLVM Compiler Infrastructure
> -//
> -// This file is distributed under the University of Illinois Open Source
> -// License. See LICENSE.TXT for details.
> -//
> -//===----------------------------------------------------------------------===//
> -//
> -// This class prints a MSP430 MCInst to a .s file.
> -//
> -//===----------------------------------------------------------------------===//
> -
> -#ifndef MSP430INSTPRINTER_H
> -#define MSP430INSTPRINTER_H
> -
> -#include "llvm/MC/MCInstPrinter.h"
> -
> -namespace llvm {
> - class MCOperand;
> -
> - class MSP430InstPrinter : public MCInstPrinter {
> - public:
> - MSP430InstPrinter(const MCAsmInfo &MAI) : MCInstPrinter(MAI) {
> - }
> -
> - virtual void printInst(const MCInst *MI, raw_ostream &O);
> -
> - // Autogenerated by tblgen.
> - void printInstruction(const MCInst *MI, raw_ostream &O);
> - static const char *getRegisterName(unsigned RegNo);
> -
> - void printOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O,
> - const char *Modifier = 0);
> - void printPCRelImmOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O);
> - void printSrcMemOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O,
> - const char *Modifier = 0);
> - void printCCOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O);
> -
> - };
> -}
> -
> -#endif
>
> Modified: llvm/trunk/lib/Target/MSP430/InstPrinter/Makefile
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSP430/InstPrinter/Makefile?rev=115393&r1=115392&r2=115393&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/MSP430/InstPrinter/Makefile (original)
> +++ llvm/trunk/lib/Target/MSP430/InstPrinter/Makefile Fri Oct 1 20:06:42 2010
> @@ -1,15 +0,0 @@
> -##===- lib/Target/MSP430/AsmPrinter/Makefile ---------------*- Makefile -*-===##
> -#
> -# The LLVM Compiler Infrastructure
> -#
> -# This file is distributed under the University of Illinois Open Source
> -# License. See LICENSE.TXT for details.
> -#
> -##===----------------------------------------------------------------------===##
> -LEVEL = ../../../..
> -LIBRARYNAME = LLVMMSP430AsmPrinter
> -
> -# Hack: we need to include 'main' MSP430 target directory to grab private headers
> -CPP.Flags += -I$(PROJ_OBJ_DIR)/.. -I$(PROJ_SRC_DIR)/..
> -
> -include $(LEVEL)/Makefile.common
>
> Modified: llvm/trunk/lib/Target/MSP430/MSP430AsmPrinter.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSP430/MSP430AsmPrinter.cpp?rev=115393&r1=115392&r2=115393&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/MSP430/MSP430AsmPrinter.cpp (original)
> +++ llvm/trunk/lib/Target/MSP430/MSP430AsmPrinter.cpp Fri Oct 1 20:06:42 2010
> @@ -1,179 +0,0 @@
> -//===-- MSP430AsmPrinter.cpp - MSP430 LLVM assembly writer ----------------===//
> -//
> -// The LLVM Compiler Infrastructure
> -//
> -// This file is distributed under the University of Illinois Open Source
> -// License. See LICENSE.TXT for details.
> -//
> -//===----------------------------------------------------------------------===//
> -//
> -// This file contains a printer that converts from our internal representation
> -// of machine-dependent LLVM code to the MSP430 assembly language.
> -//
> -//===----------------------------------------------------------------------===//
> -
> -#define DEBUG_TYPE "asm-printer"
> -#include "MSP430.h"
> -#include "MSP430InstrInfo.h"
> -#include "InstPrinter/MSP430InstPrinter.h"
> -#include "MSP430MCAsmInfo.h"
> -#include "MSP430MCInstLower.h"
> -#include "MSP430TargetMachine.h"
> -#include "llvm/Constants.h"
> -#include "llvm/DerivedTypes.h"
> -#include "llvm/Module.h"
> -#include "llvm/Assembly/Writer.h"
> -#include "llvm/CodeGen/AsmPrinter.h"
> -#include "llvm/CodeGen/MachineModuleInfo.h"
> -#include "llvm/CodeGen/MachineFunctionPass.h"
> -#include "llvm/CodeGen/MachineConstantPool.h"
> -#include "llvm/CodeGen/MachineInstr.h"
> -#include "llvm/MC/MCInst.h"
> -#include "llvm/MC/MCStreamer.h"
> -#include "llvm/MC/MCSymbol.h"
> -#include "llvm/Target/Mangler.h"
> -#include "llvm/Target/TargetData.h"
> -#include "llvm/Target/TargetLoweringObjectFile.h"
> -#include "llvm/Target/TargetRegistry.h"
> -#include "llvm/Support/raw_ostream.h"
> -using namespace llvm;
> -
> -namespace {
> - class MSP430AsmPrinter : public AsmPrinter {
> - public:
> - MSP430AsmPrinter(TargetMachine &TM, MCStreamer &Streamer)
> - : AsmPrinter(TM, Streamer) {}
> -
> - virtual const char *getPassName() const {
> - return "MSP430 Assembly Printer";
> - }
> -
> - void printOperand(const MachineInstr *MI, int OpNum,
> - raw_ostream &O, const char* Modifier = 0);
> - void printSrcMemOperand(const MachineInstr *MI, int OpNum,
> - raw_ostream &O);
> - bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
> - unsigned AsmVariant, const char *ExtraCode,
> - raw_ostream &O);
> - bool PrintAsmMemoryOperand(const MachineInstr *MI,
> - unsigned OpNo, unsigned AsmVariant,
> - const char *ExtraCode, raw_ostream &O);
> - void EmitInstruction(const MachineInstr *MI);
> - };
> -} // end of anonymous namespace
> -
> -
> -void MSP430AsmPrinter::printOperand(const MachineInstr *MI, int OpNum,
> - raw_ostream &O, const char *Modifier) {
> - const MachineOperand &MO = MI->getOperand(OpNum);
> - switch (MO.getType()) {
> - default: assert(0 && "Not implemented yet!");
> - case MachineOperand::MO_Register:
> - O << MSP430InstPrinter::getRegisterName(MO.getReg());
> - return;
> - case MachineOperand::MO_Immediate:
> - if (!Modifier || strcmp(Modifier, "nohash"))
> - O << '#';
> - O << MO.getImm();
> - return;
> - case MachineOperand::MO_MachineBasicBlock:
> - O << *MO.getMBB()->getSymbol();
> - return;
> - case MachineOperand::MO_GlobalAddress: {
> - bool isMemOp = Modifier && !strcmp(Modifier, "mem");
> - uint64_t Offset = MO.getOffset();
> -
> - // If the global address expression is a part of displacement field with a
> - // register base, we should not emit any prefix symbol here, e.g.
> - // mov.w &foo, r1
> - // vs
> - // mov.w glb(r1), r2
> - // Otherwise (!) msp430-as will silently miscompile the output :(
> - if (!Modifier || strcmp(Modifier, "nohash"))
> - O << (isMemOp ? '&' : '#');
> - if (Offset)
> - O << '(' << Offset << '+';
> -
> - O << *Mang->getSymbol(MO.getGlobal());
> -
> - if (Offset)
> - O << ')';
> -
> - return;
> - }
> - case MachineOperand::MO_ExternalSymbol: {
> - bool isMemOp = Modifier && !strcmp(Modifier, "mem");
> - O << (isMemOp ? '&' : '#');
> - O << MAI->getGlobalPrefix() << MO.getSymbolName();
> - return;
> - }
> - }
> -}
> -
> -void MSP430AsmPrinter::printSrcMemOperand(const MachineInstr *MI, int OpNum,
> - raw_ostream &O) {
> - const MachineOperand &Base = MI->getOperand(OpNum);
> - const MachineOperand &Disp = MI->getOperand(OpNum+1);
> -
> - // Print displacement first
> -
> - // Imm here is in fact global address - print extra modifier.
> - if (Disp.isImm() && !Base.getReg())
> - O << '&';
> - printOperand(MI, OpNum+1, O, "nohash");
> -
> - // Print register base field
> - if (Base.getReg()) {
> - O << '(';
> - printOperand(MI, OpNum, O);
> - O << ')';
> - }
> -}
> -
> -/// PrintAsmOperand - Print out an operand for an inline asm expression.
> -///
> -bool MSP430AsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
> - unsigned AsmVariant,
> - const char *ExtraCode, raw_ostream &O) {
> - // Does this asm operand have a single letter operand modifier?
> - if (ExtraCode && ExtraCode[0])
> - return true; // Unknown modifier.
> -
> - printOperand(MI, OpNo, O);
> - return false;
> -}
> -
> -bool MSP430AsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,
> - unsigned OpNo, unsigned AsmVariant,
> - const char *ExtraCode,
> - raw_ostream &O) {
> - if (ExtraCode && ExtraCode[0]) {
> - return true; // Unknown modifier.
> - }
> - printSrcMemOperand(MI, OpNo, O);
> - return false;
> -}
> -
> -//===----------------------------------------------------------------------===//
> -void MSP430AsmPrinter::EmitInstruction(const MachineInstr *MI) {
> - MSP430MCInstLower MCInstLowering(OutContext, *Mang, *this);
> -
> - MCInst TmpInst;
> - MCInstLowering.Lower(MI, TmpInst);
> - OutStreamer.EmitInstruction(TmpInst);
> -}
> -
> -static MCInstPrinter *createMSP430MCInstPrinter(const Target &T,
> - unsigned SyntaxVariant,
> - const MCAsmInfo &MAI) {
> - if (SyntaxVariant == 0)
> - return new MSP430InstPrinter(MAI);
> - return 0;
> -}
> -
> -// Force static initialization.
> -extern "C" void LLVMInitializeMSP430AsmPrinter() {
> - RegisterAsmPrinter<MSP430AsmPrinter> X(TheMSP430Target);
> - TargetRegistry::RegisterMCInstPrinter(TheMSP430Target,
> - createMSP430MCInstPrinter);
> -}
>
> Modified: llvm/trunk/lib/Target/MSP430/MSP430MCInstLower.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSP430/MSP430MCInstLower.cpp?rev=115393&r1=115392&r2=115393&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/MSP430/MSP430MCInstLower.cpp (original)
> +++ llvm/trunk/lib/Target/MSP430/MSP430MCInstLower.cpp Fri Oct 1 20:06:42 2010
> @@ -1,150 +0,0 @@
> -//===-- MSP430MCInstLower.cpp - Convert MSP430 MachineInstr to an MCInst---===//
> -//
> -// The LLVM Compiler Infrastructure
> -//
> -// This file is distributed under the University of Illinois Open Source
> -// License. See LICENSE.TXT for details.
> -//
> -//===----------------------------------------------------------------------===//
> -//
> -// This file contains code to lower MSP430 MachineInstrs to their corresponding
> -// MCInst records.
> -//
> -//===----------------------------------------------------------------------===//
> -
> -#include "MSP430MCInstLower.h"
> -#include "llvm/CodeGen/AsmPrinter.h"
> -#include "llvm/CodeGen/MachineBasicBlock.h"
> -#include "llvm/CodeGen/MachineInstr.h"
> -#include "llvm/MC/MCAsmInfo.h"
> -#include "llvm/MC/MCContext.h"
> -#include "llvm/MC/MCExpr.h"
> -#include "llvm/MC/MCInst.h"
> -#include "llvm/Target/Mangler.h"
> -#include "llvm/Support/raw_ostream.h"
> -#include "llvm/Support/ErrorHandling.h"
> -#include "llvm/ADT/SmallString.h"
> -using namespace llvm;
> -
> -MCSymbol *MSP430MCInstLower::
> -GetGlobalAddressSymbol(const MachineOperand &MO) const {
> - switch (MO.getTargetFlags()) {
> - default: llvm_unreachable("Unknown target flag on GV operand");
> - case 0: break;
> - }
> -
> - return Printer.Mang->getSymbol(MO.getGlobal());
> -}
> -
> -MCSymbol *MSP430MCInstLower::
> -GetExternalSymbolSymbol(const MachineOperand &MO) const {
> - switch (MO.getTargetFlags()) {
> - default: assert(0 && "Unknown target flag on GV operand");
> - case 0: break;
> - }
> -
> - return Printer.GetExternalSymbolSymbol(MO.getSymbolName());
> -}
> -
> -MCSymbol *MSP430MCInstLower::
> -GetJumpTableSymbol(const MachineOperand &MO) const {
> - SmallString<256> Name;
> - raw_svector_ostream(Name) << Printer.MAI->getPrivateGlobalPrefix() << "JTI"
> - << Printer.getFunctionNumber() << '_'
> - << MO.getIndex();
> -
> - switch (MO.getTargetFlags()) {
> - default: llvm_unreachable("Unknown target flag on GV operand");
> - case 0: break;
> - }
> -
> - // Create a symbol for the name.
> - return Ctx.GetOrCreateSymbol(Name.str());
> -}
> -
> -MCSymbol *MSP430MCInstLower::
> -GetConstantPoolIndexSymbol(const MachineOperand &MO) const {
> - SmallString<256> Name;
> - raw_svector_ostream(Name) << Printer.MAI->getPrivateGlobalPrefix() << "CPI"
> - << Printer.getFunctionNumber() << '_'
> - << MO.getIndex();
> -
> - switch (MO.getTargetFlags()) {
> - default: llvm_unreachable("Unknown target flag on GV operand");
> - case 0: break;
> - }
> -
> - // Create a symbol for the name.
> - return Ctx.GetOrCreateSymbol(Name.str());
> -}
> -
> -MCSymbol *MSP430MCInstLower::
> -GetBlockAddressSymbol(const MachineOperand &MO) const {
> - switch (MO.getTargetFlags()) {
> - default: assert(0 && "Unknown target flag on GV operand");
> - case 0: break;
> - }
> -
> - return Printer.GetBlockAddressSymbol(MO.getBlockAddress());
> -}
> -
> -MCOperand MSP430MCInstLower::
> -LowerSymbolOperand(const MachineOperand &MO, MCSymbol *Sym) const {
> - // FIXME: We would like an efficient form for this, so we don't have to do a
> - // lot of extra uniquing.
> - const MCExpr *Expr = MCSymbolRefExpr::Create(Sym, Ctx);
> -
> - switch (MO.getTargetFlags()) {
> - default: llvm_unreachable("Unknown target flag on GV operand");
> - case 0: break;
> - }
> -
> - if (!MO.isJTI() && MO.getOffset())
> - Expr = MCBinaryExpr::CreateAdd(Expr,
> - MCConstantExpr::Create(MO.getOffset(), Ctx),
> - Ctx);
> - return MCOperand::CreateExpr(Expr);
> -}
> -
> -void MSP430MCInstLower::Lower(const MachineInstr *MI, MCInst &OutMI) const {
> - OutMI.setOpcode(MI->getOpcode());
> -
> - for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
> - const MachineOperand &MO = MI->getOperand(i);
> -
> - MCOperand MCOp;
> - switch (MO.getType()) {
> - default:
> - MI->dump();
> - assert(0 && "unknown operand type");
> - case MachineOperand::MO_Register:
> - // Ignore all implicit register operands.
> - if (MO.isImplicit()) continue;
> - MCOp = MCOperand::CreateReg(MO.getReg());
> - break;
> - case MachineOperand::MO_Immediate:
> - MCOp = MCOperand::CreateImm(MO.getImm());
> - break;
> - case MachineOperand::MO_MachineBasicBlock:
> - MCOp = MCOperand::CreateExpr(MCSymbolRefExpr::Create(
> - MO.getMBB()->getSymbol(), Ctx));
> - break;
> - case MachineOperand::MO_GlobalAddress:
> - MCOp = LowerSymbolOperand(MO, GetGlobalAddressSymbol(MO));
> - break;
> - case MachineOperand::MO_ExternalSymbol:
> - MCOp = LowerSymbolOperand(MO, GetExternalSymbolSymbol(MO));
> - break;
> - case MachineOperand::MO_JumpTableIndex:
> - MCOp = LowerSymbolOperand(MO, GetJumpTableSymbol(MO));
> - break;
> - case MachineOperand::MO_ConstantPoolIndex:
> - MCOp = LowerSymbolOperand(MO, GetConstantPoolIndexSymbol(MO));
> - break;
> - case MachineOperand::MO_BlockAddress:
> - MCOp = LowerSymbolOperand(MO, GetBlockAddressSymbol(MO));
> - }
> -
> - OutMI.addOperand(MCOp);
> - }
> -}
>
> Modified: llvm/trunk/lib/Target/MSP430/MSP430MCInstLower.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSP430/MSP430MCInstLower.h?rev=115393&r1=115392&r2=115393&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/MSP430/MSP430MCInstLower.h (original)
> +++ llvm/trunk/lib/Target/MSP430/MSP430MCInstLower.h Fri Oct 1 20:06:42 2010
> @@ -1,50 +0,0 @@
> -//===-- MSP430MCInstLower.h - Lower MachineInstr to MCInst ----------------===//
> -//
> -// The LLVM Compiler Infrastructure
> -//
> -// This file is distributed under the University of Illinois Open Source
> -// License. See LICENSE.TXT for details.
> -//
> -//===----------------------------------------------------------------------===//
> -
> -#ifndef MSP430_MCINSTLOWER_H
> -#define MSP430_MCINSTLOWER_H
> -
> -#include "llvm/Support/Compiler.h"
> -
> -namespace llvm {
> - class AsmPrinter;
> - class MCAsmInfo;
> - class MCContext;
> - class MCInst;
> - class MCOperand;
> - class MCSymbol;
> - class MachineInstr;
> - class MachineModuleInfoMachO;
> - class MachineOperand;
> - class Mangler;
> -
> - /// MSP430MCInstLower - This class is used to lower an MachineInstr
> - /// into an MCInst.
> -class LLVM_LIBRARY_VISIBILITY MSP430MCInstLower {
> - MCContext &Ctx;
> - Mangler &Mang;
> -
> - AsmPrinter &Printer;
> -public:
> - MSP430MCInstLower(MCContext &ctx, Mangler &mang, AsmPrinter &printer)
> - : Ctx(ctx), Mang(mang), Printer(printer) {}
> - void Lower(const MachineInstr *MI, MCInst &OutMI) const;
> -
> - MCOperand LowerSymbolOperand(const MachineOperand &MO, MCSymbol *Sym) const;
> -
> - MCSymbol *GetGlobalAddressSymbol(const MachineOperand &MO) const;
> - MCSymbol *GetExternalSymbolSymbol(const MachineOperand &MO) const;
> - MCSymbol *GetJumpTableSymbol(const MachineOperand &MO) const;
> - MCSymbol *GetConstantPoolIndexSymbol(const MachineOperand &MO) const;
> - MCSymbol *GetBlockAddressSymbol(const MachineOperand &MO) const;
> -};
> -
> -}
> -
> -#endif
>
> Modified: llvm/trunk/lib/Target/MSP430/Makefile
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSP430/Makefile?rev=115393&r1=115392&r2=115393&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/MSP430/Makefile (original)
> +++ llvm/trunk/lib/Target/MSP430/Makefile Fri Oct 1 20:06:42 2010
> @@ -18,7 +18,7 @@
> MSP430GenDAGISel.inc MSP430GenCallingConv.inc \
> MSP430GenSubtarget.inc
>
> -DIRS = InstPrinter TargetInfo
> +DIRS = AsmPrinter TargetInfo
>
> include $(LEVEL)/Makefile.common
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list