You've already forked linux-packaging-mono
Imported Upstream version 5.18.0.246
Former-commit-id: 0c7ce5b1a7851e13f22acfd379b7f9fb304e4833
This commit is contained in:
parent
a7724cd563
commit
279aa8f685
1
external/llvm/lib/Target/Nios2/InstPrinter/CMakeLists.txt
vendored
Normal file
1
external/llvm/lib/Target/Nios2/InstPrinter/CMakeLists.txt
vendored
Normal file
@ -0,0 +1 @@
|
||||
add_llvm_library(LLVMNios2AsmPrinter Nios2InstPrinter.cpp)
|
23
external/llvm/lib/Target/Nios2/InstPrinter/LLVMBuild.txt
vendored
Normal file
23
external/llvm/lib/Target/Nios2/InstPrinter/LLVMBuild.txt
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
;===- ./lib/Target/Nios2/InstPrinter/LLVMBuild.txt -------------*- Conf -*--===;
|
||||
;
|
||||
; The LLVM Compiler Infrastructure
|
||||
;
|
||||
; This file is distributed under the University of Illinois Open Source
|
||||
; License. See LICENSE.TXT for details.
|
||||
;
|
||||
;===------------------------------------------------------------------------===;
|
||||
;
|
||||
; This is an LLVMBuild description file for the components in this subdirectory.
|
||||
;
|
||||
; For more information on the LLVMBuild system, please see:
|
||||
;
|
||||
; http://llvm.org/docs/LLVMBuild.html
|
||||
;
|
||||
;===------------------------------------------------------------------------===;
|
||||
|
||||
[component_0]
|
||||
type = Library
|
||||
name = Nios2AsmPrinter
|
||||
parent = Nios2
|
||||
required_libraries = MC Support
|
||||
add_to_library_groups = Nios2
|
66
external/llvm/lib/Target/Nios2/InstPrinter/Nios2InstPrinter.cpp
vendored
Normal file
66
external/llvm/lib/Target/Nios2/InstPrinter/Nios2InstPrinter.cpp
vendored
Normal file
@ -0,0 +1,66 @@
|
||||
//===-- Nios2InstPrinter.cpp - Convert Nios2 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 Nios2 MCInst to a .s file.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "Nios2InstPrinter.h"
|
||||
|
||||
#include "Nios2InstrInfo.h"
|
||||
#include "llvm/MC/MCExpr.h"
|
||||
#include "llvm/MC/MCInst.h"
|
||||
#include "llvm/MC/MCInstrInfo.h"
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
using namespace llvm;
|
||||
|
||||
#define DEBUG_TYPE "asm-printer"
|
||||
|
||||
#define PRINT_ALIAS_INSTR
|
||||
#include "Nios2GenAsmWriter.inc"
|
||||
|
||||
void Nios2InstPrinter::printRegName(raw_ostream &OS, unsigned RegNo) const {
|
||||
OS << getRegisterName(RegNo);
|
||||
}
|
||||
|
||||
void Nios2InstPrinter::printInst(const MCInst *MI, raw_ostream &O,
|
||||
StringRef Annot, const MCSubtargetInfo &STI) {
|
||||
// Try to print any aliases first.
|
||||
if (!printAliasInstr(MI, STI, O))
|
||||
printInstruction(MI, STI, O);
|
||||
printAnnotation(O, Annot);
|
||||
}
|
||||
|
||||
void Nios2InstPrinter::printOperand(const MCInst *MI, int OpNo,
|
||||
const MCSubtargetInfo &STI,
|
||||
raw_ostream &O) {
|
||||
const MCOperand &Op = MI->getOperand(OpNo);
|
||||
if (Op.isReg()) {
|
||||
printRegName(O, Op.getReg());
|
||||
return;
|
||||
}
|
||||
|
||||
if (Op.isImm()) {
|
||||
O << Op.getImm();
|
||||
return;
|
||||
}
|
||||
|
||||
assert(Op.isExpr() && "unknown operand kind in printOperand");
|
||||
Op.getExpr()->print(O, &MAI, true);
|
||||
}
|
||||
|
||||
void Nios2InstPrinter::printMemOperand(const MCInst *MI, int opNum,
|
||||
const MCSubtargetInfo &STI,
|
||||
raw_ostream &O, const char *Modifier) {
|
||||
// Load/Store memory operands -- imm($reg)
|
||||
printOperand(MI, opNum + 1, STI, O);
|
||||
O << "(";
|
||||
printOperand(MI, opNum, STI, O);
|
||||
O << ")";
|
||||
}
|
49
external/llvm/lib/Target/Nios2/InstPrinter/Nios2InstPrinter.h
vendored
Normal file
49
external/llvm/lib/Target/Nios2/InstPrinter/Nios2InstPrinter.h
vendored
Normal file
@ -0,0 +1,49 @@
|
||||
//= Nios2InstPrinter.h - Convert Nios2 MCInst to assembly syntax -*- C++ -*-==//
|
||||
//
|
||||
// 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 Nios2 MCInst to a .s file.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_LIB_TARGET_NIOS2_INSTPRINTER_NIOS2INSTPRINTER_H
|
||||
#define LLVM_LIB_TARGET_NIOS2_INSTPRINTER_NIOS2INSTPRINTER_H
|
||||
|
||||
#include "llvm/MC/MCInstPrinter.h"
|
||||
|
||||
namespace llvm {
|
||||
|
||||
class Nios2InstPrinter : public MCInstPrinter {
|
||||
public:
|
||||
Nios2InstPrinter(const MCAsmInfo &MAI, const MCInstrInfo &MII,
|
||||
const MCRegisterInfo &MRI)
|
||||
: MCInstPrinter(MAI, MII, MRI) {}
|
||||
|
||||
void printRegName(raw_ostream &OS, unsigned RegNo) const override;
|
||||
void printInst(const MCInst *MI, raw_ostream &O, StringRef Annot,
|
||||
const MCSubtargetInfo &STI) override;
|
||||
|
||||
// Autogenerated by tblgen.
|
||||
void printInstruction(const MCInst *MI, const MCSubtargetInfo &STI,
|
||||
raw_ostream &O);
|
||||
static const char *getRegisterName(unsigned RegNo);
|
||||
|
||||
bool printAliasInstr(const MCInst *MI, const MCSubtargetInfo &STI,
|
||||
raw_ostream &O);
|
||||
|
||||
void printCustomAliasOperand(const MCInst *MI, unsigned OpIdx,
|
||||
unsigned PrintMethodIdx,
|
||||
const MCSubtargetInfo &STI, raw_ostream &O);
|
||||
void printOperand(const MCInst *MI, int opNum, const MCSubtargetInfo &STI,
|
||||
raw_ostream &OS);
|
||||
void printMemOperand(const MCInst *MI, int opNum, const MCSubtargetInfo &STI,
|
||||
raw_ostream &OS, const char *Modifier = nullptr);
|
||||
};
|
||||
} // end namespace llvm
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user