summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Nios2/Nios2AsmPrinter.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2019-01-15 19:59:19 +0000
committerCraig Topper <craig.topper@intel.com>2019-01-15 19:59:19 +0000
commit99fcbf67d04d488d819bffb8fda3bb9d5504b63b (patch)
treed4875f7ae2caec0f1958b8906c5da47d82b78f25 /llvm/lib/Target/Nios2/Nios2AsmPrinter.cpp
parent55897389799ed8759c3f1da0cb0a07959ca8467e (diff)
downloadbcm5719-llvm-99fcbf67d04d488d819bffb8fda3bb9d5504b63b.tar.gz
bcm5719-llvm-99fcbf67d04d488d819bffb8fda3bb9d5504b63b.zip
[Nios2] Remove Nios2 backend
As mentioned here http://lists.llvm.org/pipermail/llvm-dev/2019-January/129121.html This backend is incomplete and has not been maintained in several months. Differential Revision: https://reviews.llvm.org/D56691 llvm-svn: 351231
Diffstat (limited to 'llvm/lib/Target/Nios2/Nios2AsmPrinter.cpp')
-rw-r--r--llvm/lib/Target/Nios2/Nios2AsmPrinter.cpp153
1 files changed, 0 insertions, 153 deletions
diff --git a/llvm/lib/Target/Nios2/Nios2AsmPrinter.cpp b/llvm/lib/Target/Nios2/Nios2AsmPrinter.cpp
deleted file mode 100644
index 1abf1959177..00000000000
--- a/llvm/lib/Target/Nios2/Nios2AsmPrinter.cpp
+++ /dev/null
@@ -1,153 +0,0 @@
-//===-- Nios2AsmPrinter.cpp - Nios2 LLVM Assembly Printer -----------------===//
-//
-// 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 GAS-format NIOS2 assembly language.
-//
-//===----------------------------------------------------------------------===//
-
-#include "InstPrinter/Nios2InstPrinter.h"
-#include "MCTargetDesc/Nios2BaseInfo.h"
-#include "Nios2.h"
-#include "Nios2TargetMachine.h"
-#include "llvm/CodeGen/AsmPrinter.h"
-#include "llvm/MC/MCStreamer.h"
-#include "llvm/Support/TargetRegistry.h"
-
-using namespace llvm;
-
-#define DEBUG_TYPE "nios2-asm-printer"
-
-namespace {
-
-class Nios2AsmPrinter : public AsmPrinter {
-
-public:
- explicit Nios2AsmPrinter(TargetMachine &TM,
- std::unique_ptr<MCStreamer> Streamer)
- : AsmPrinter(TM, std::move(Streamer)) {}
-
- StringRef getPassName() const override { return "Nios2 Assembly Printer"; }
-
- //- EmitInstruction() must exists or will have run time error.
- void EmitInstruction(const MachineInstr *MI) override;
- bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
- unsigned AsmVariant, const char *ExtraCode,
- raw_ostream &O) override;
- bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNum,
- unsigned AsmVariant, const char *ExtraCode,
- raw_ostream &O) override;
- void printOperand(const MachineInstr *MI, int opNum, raw_ostream &O);
- void EmitFunctionEntryLabel() override;
-};
-} // namespace
-
-//- EmitInstruction() must exists or will have run time error.
-void Nios2AsmPrinter::EmitInstruction(const MachineInstr *MI) {
-
- // Print out both ordinary instruction and boudle instruction
- MachineBasicBlock::const_instr_iterator I = MI->getIterator();
- MachineBasicBlock::const_instr_iterator E = MI->getParent()->instr_end();
-
- do {
-
- if (I->isPseudo()) {
- llvm_unreachable("Pseudo opcode found in EmitInstruction()");
- }
-
- MCInst TmpInst0;
- LowerNios2MachineInstToMCInst(&*I, TmpInst0, *this);
- EmitToStreamer(*OutStreamer, TmpInst0);
- } while ((++I != E) && I->isInsideBundle()); // Delay slot check
-}
-
-// .type main,@function
-//-> .ent main # @main
-// main:
-void Nios2AsmPrinter::EmitFunctionEntryLabel() {
- OutStreamer->EmitLabel(CurrentFnSym);
-}
-
-// Print out an operand for an inline asm expression.
-bool Nios2AsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNum,
- unsigned AsmVariant,
- const char *ExtraCode, raw_ostream &O) {
- printOperand(MI, OpNum, O);
- return false;
-}
-
-bool Nios2AsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,
- unsigned OpNum, unsigned AsmVariant,
- const char *ExtraCode,
- raw_ostream &O) {
- if (ExtraCode && ExtraCode[0])
- return true; // Unknown modifier
-
- const MachineOperand &MO = MI->getOperand(OpNum);
- assert(MO.isReg() && "unexpected inline asm memory operand");
- O << "($" << Nios2InstPrinter::getRegisterName(MO.getReg()) << ")";
-
- return false;
-}
-
-void Nios2AsmPrinter::printOperand(const MachineInstr *MI, int opNum,
- raw_ostream &O) {
- const MachineOperand &MO = MI->getOperand(opNum);
- bool closeP = false;
-
- if (MO.getTargetFlags())
- closeP = true;
-
- switch (MO.getTargetFlags()) {
- case Nios2FG::MO_ABS_HI:
- O << "%hiadj(";
- break;
- case Nios2FG::MO_ABS_LO:
- O << "%lo(";
- break;
- }
-
- switch (MO.getType()) {
- case MachineOperand::MO_Register:
- O << '$'
- << StringRef(Nios2InstPrinter::getRegisterName(MO.getReg())).lower();
- break;
-
- case MachineOperand::MO_Immediate:
- O << MO.getImm();
- break;
-
- case MachineOperand::MO_MachineBasicBlock:
- MO.getMBB()->getSymbol()->print(O, MAI);
- return;
-
- case MachineOperand::MO_GlobalAddress:
- getSymbol(MO.getGlobal())->print(O, MAI);
- break;
-
- case MachineOperand::MO_BlockAddress:
- O << GetBlockAddressSymbol(MO.getBlockAddress())->getName();
- break;
-
- case MachineOperand::MO_ExternalSymbol:
- O << MO.getSymbolName();
- break;
-
- default:
- llvm_unreachable("<unknown operand type>");
- }
-
- if (closeP)
- O << ")";
-}
-
-// Force static initialization.
-extern "C" void LLVMInitializeNios2AsmPrinter() {
- RegisterAsmPrinter<Nios2AsmPrinter> X(getTheNios2Target());
-}
OpenPOWER on IntegriCloud