diff options
| author | 2020-08-03 15:06:44 +0000 | |
|---|---|---|
| committer | 2020-08-03 15:06:44 +0000 | |
| commit | b64793999546ed8adebaeebd9d8345d18db8927d (patch) | |
| tree | 4357c27b561d73b0e089727c6ed659f2ceff5f47 /gnu/llvm/lib/Target/XCore/XCoreMCInstLower.cpp | |
| parent | Add support for UTF-8 DISPLAY-HINTs with octet length. For now only (diff) | |
| download | wireguard-openbsd-b64793999546ed8adebaeebd9d8345d18db8927d.tar.xz wireguard-openbsd-b64793999546ed8adebaeebd9d8345d18db8927d.zip | |
Remove LLVM 8.0.1 files.
Diffstat (limited to 'gnu/llvm/lib/Target/XCore/XCoreMCInstLower.cpp')
| -rw-r--r-- | gnu/llvm/lib/Target/XCore/XCoreMCInstLower.cpp | 114 |
1 files changed, 0 insertions, 114 deletions
diff --git a/gnu/llvm/lib/Target/XCore/XCoreMCInstLower.cpp b/gnu/llvm/lib/Target/XCore/XCoreMCInstLower.cpp deleted file mode 100644 index 21270192b23..00000000000 --- a/gnu/llvm/lib/Target/XCore/XCoreMCInstLower.cpp +++ /dev/null @@ -1,114 +0,0 @@ -//===-- XCoreMCInstLower.cpp - Convert XCore MachineInstr to MCInst -------===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -/// -/// \file -/// This file contains code to lower XCore MachineInstrs to their -/// corresponding MCInst records. -/// -//===----------------------------------------------------------------------===// -#include "XCoreMCInstLower.h" -#include "llvm/CodeGen/AsmPrinter.h" -#include "llvm/CodeGen/MachineFunction.h" -#include "llvm/CodeGen/MachineInstr.h" -#include "llvm/CodeGen/MachineOperand.h" -#include "llvm/IR/Mangler.h" -#include "llvm/MC/MCContext.h" -#include "llvm/MC/MCExpr.h" -#include "llvm/MC/MCInst.h" - -using namespace llvm; - -XCoreMCInstLower::XCoreMCInstLower(class AsmPrinter &asmprinter) - : Printer(asmprinter) {} - -void XCoreMCInstLower::Initialize(MCContext *C) { Ctx = C; } - -MCOperand XCoreMCInstLower::LowerSymbolOperand(const MachineOperand &MO, - MachineOperandType MOTy, - unsigned Offset) const { - MCSymbolRefExpr::VariantKind Kind = MCSymbolRefExpr::VK_None; - const MCSymbol *Symbol; - - switch (MOTy) { - case MachineOperand::MO_MachineBasicBlock: - Symbol = MO.getMBB()->getSymbol(); - break; - case MachineOperand::MO_GlobalAddress: - Symbol = Printer.getSymbol(MO.getGlobal()); - Offset += MO.getOffset(); - break; - case MachineOperand::MO_BlockAddress: - Symbol = Printer.GetBlockAddressSymbol(MO.getBlockAddress()); - Offset += MO.getOffset(); - break; - case MachineOperand::MO_ExternalSymbol: - Symbol = Printer.GetExternalSymbolSymbol(MO.getSymbolName()); - Offset += MO.getOffset(); - break; - case MachineOperand::MO_JumpTableIndex: - Symbol = Printer.GetJTISymbol(MO.getIndex()); - break; - case MachineOperand::MO_ConstantPoolIndex: - Symbol = Printer.GetCPISymbol(MO.getIndex()); - Offset += MO.getOffset(); - break; - default: - llvm_unreachable("<unknown operand type>"); - } - - const MCSymbolRefExpr *MCSym = MCSymbolRefExpr::create(Symbol, Kind, *Ctx); - - if (!Offset) - return MCOperand::createExpr(MCSym); - - // Assume offset is never negative. - assert(Offset > 0); - - const MCConstantExpr *OffsetExpr = MCConstantExpr::create(Offset, *Ctx); - const MCBinaryExpr *Add = MCBinaryExpr::createAdd(MCSym, OffsetExpr, *Ctx); - return MCOperand::createExpr(Add); -} - -MCOperand XCoreMCInstLower::LowerOperand(const MachineOperand &MO, - unsigned offset) const { - MachineOperandType MOTy = MO.getType(); - - switch (MOTy) { - default: llvm_unreachable("unknown operand type"); - case MachineOperand::MO_Register: - // Ignore all implicit register operands. - if (MO.isImplicit()) break; - return MCOperand::createReg(MO.getReg()); - case MachineOperand::MO_Immediate: - return MCOperand::createImm(MO.getImm() + offset); - case MachineOperand::MO_MachineBasicBlock: - case MachineOperand::MO_GlobalAddress: - case MachineOperand::MO_ExternalSymbol: - case MachineOperand::MO_JumpTableIndex: - case MachineOperand::MO_ConstantPoolIndex: - case MachineOperand::MO_BlockAddress: - return LowerSymbolOperand(MO, MOTy, offset); - case MachineOperand::MO_RegisterMask: - break; - } - - return MCOperand(); -} - -void XCoreMCInstLower::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 = LowerOperand(MO); - - if (MCOp.isValid()) - OutMI.addOperand(MCOp); - } -} |
