mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-04-08 09:43:20 +00:00
add the files that go with the previous rev
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84531 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
97f0693744
commit
9cf0eb5e58
81
lib/Target/ARM/AsmPrinter/ARMMCInstLower.cpp
Normal file
81
lib/Target/ARM/AsmPrinter/ARMMCInstLower.cpp
Normal file
@ -0,0 +1,81 @@
|
||||
//===-- ARMMCInstLower.cpp - Convert ARM 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 ARM MachineInstrs to their corresponding
|
||||
// MCInst records.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "ARMMCInstLower.h"
|
||||
//#include "ARMMCAsmInfo.h"
|
||||
//#include "llvm/CodeGen/MachineModuleInfoImpls.h"
|
||||
#include "llvm/CodeGen/MachineInstr.h"
|
||||
//#include "llvm/MC/MCContext.h"
|
||||
//#include "llvm/MC/MCExpr.h"
|
||||
#include "llvm/MC/MCInst.h"
|
||||
//#include "llvm/MC/MCStreamer.h"
|
||||
//#include "llvm/Support/FormattedStream.h"
|
||||
//#include "llvm/Support/Mangler.h"
|
||||
//#include "llvm/ADT/SmallString.h"
|
||||
using namespace llvm;
|
||||
|
||||
|
||||
#if 0
|
||||
const ARMSubtarget &ARMMCInstLower::getSubtarget() const {
|
||||
return AsmPrinter.getSubtarget();
|
||||
}
|
||||
|
||||
MachineModuleInfoMachO &ARMMCInstLower::getMachOMMI() const {
|
||||
assert(getSubtarget().isTargetDarwin() &&"Can only get MachO info on darwin");
|
||||
return AsmPrinter.MMI->getObjFileInfo<MachineModuleInfoMachO>();
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
void ARMMCInstLower::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:
|
||||
MCOp = MCOperand::CreateReg(MO.getReg());
|
||||
break;
|
||||
case MachineOperand::MO_Immediate:
|
||||
MCOp = MCOperand::CreateImm(MO.getImm());
|
||||
break;
|
||||
#if 0
|
||||
case MachineOperand::MO_MachineBasicBlock:
|
||||
MCOp = MCOperand::CreateExpr(MCSymbolRefExpr::Create(
|
||||
AsmPrinter.GetMBBSymbol(MO.getMBB()->getNumber()), 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;
|
||||
#endif
|
||||
}
|
||||
|
||||
OutMI.addOperand(MCOp);
|
||||
}
|
||||
|
||||
}
|
54
lib/Target/ARM/AsmPrinter/ARMMCInstLower.h
Normal file
54
lib/Target/ARM/AsmPrinter/ARMMCInstLower.h
Normal file
@ -0,0 +1,54 @@
|
||||
//===-- ARMMCInstLower.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 ARM_MCINSTLOWER_H
|
||||
#define ARM_MCINSTLOWER_H
|
||||
|
||||
#include "llvm/Support/Compiler.h"
|
||||
|
||||
namespace llvm {
|
||||
class MCContext;
|
||||
class MCInst;
|
||||
class MCOperand;
|
||||
class MCSymbol;
|
||||
class MachineInstr;
|
||||
class MachineModuleInfoMachO;
|
||||
class MachineOperand;
|
||||
class Mangler;
|
||||
//class ARMSubtarget;
|
||||
|
||||
/// ARMMCInstLower - This class is used to lower an MachineInstr into an MCInst.
|
||||
class VISIBILITY_HIDDEN ARMMCInstLower {
|
||||
MCContext &Ctx;
|
||||
Mangler *Mang;
|
||||
|
||||
//const ARMSubtarget &getSubtarget() const;
|
||||
public:
|
||||
ARMMCInstLower(MCContext &ctx, Mangler *mang)
|
||||
: Ctx(ctx), Mang(mang) {}
|
||||
|
||||
void Lower(const MachineInstr *MI, MCInst &OutMI) const;
|
||||
|
||||
/*
|
||||
MCSymbol *GetPICBaseSymbol() 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;
|
||||
MCOperand LowerSymbolOperand(const MachineOperand &MO, MCSymbol *Sym) const;
|
||||
|
||||
private:
|
||||
MachineModuleInfoMachO &getMachOMMI() const;
|
||||
*/
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
Loading…
x
Reference in New Issue
Block a user