summaryrefslogtreecommitdiffstats
path: root/gnu/llvm/lib/Target/XCore/XCoreMCInstLower.cpp
diff options
context:
space:
mode:
authorpatrick <patrick@openbsd.org>2020-08-03 15:06:44 +0000
committerpatrick <patrick@openbsd.org>2020-08-03 15:06:44 +0000
commitb64793999546ed8adebaeebd9d8345d18db8927d (patch)
tree4357c27b561d73b0e089727c6ed659f2ceff5f47 /gnu/llvm/lib/Target/XCore/XCoreMCInstLower.cpp
parentAdd support for UTF-8 DISPLAY-HINTs with octet length. For now only (diff)
downloadwireguard-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.cpp114
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);
- }
-}