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/RISCV/RISCVMCInstLower.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/RISCV/RISCVMCInstLower.cpp')
| -rw-r--r-- | gnu/llvm/lib/Target/RISCV/RISCVMCInstLower.cpp | 108 |
1 files changed, 0 insertions, 108 deletions
diff --git a/gnu/llvm/lib/Target/RISCV/RISCVMCInstLower.cpp b/gnu/llvm/lib/Target/RISCV/RISCVMCInstLower.cpp deleted file mode 100644 index e0100b1679b..00000000000 --- a/gnu/llvm/lib/Target/RISCV/RISCVMCInstLower.cpp +++ /dev/null @@ -1,108 +0,0 @@ -//===-- RISCVMCInstLower.cpp - Convert RISCV 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 RISCV MachineInstrs to their corresponding -// MCInst records. -// -//===----------------------------------------------------------------------===// - -#include "RISCV.h" -#include "MCTargetDesc/RISCVMCExpr.h" -#include "llvm/CodeGen/AsmPrinter.h" -#include "llvm/CodeGen/MachineBasicBlock.h" -#include "llvm/CodeGen/MachineInstr.h" -#include "llvm/MC/MCAsmInfo.h" -#include "llvm/MC/MCContext.h" -#include "llvm/MC/MCExpr.h" -#include "llvm/MC/MCInst.h" -#include "llvm/Support/ErrorHandling.h" -#include "llvm/Support/raw_ostream.h" - -using namespace llvm; - -static MCOperand lowerSymbolOperand(const MachineOperand &MO, MCSymbol *Sym, - const AsmPrinter &AP) { - MCContext &Ctx = AP.OutContext; - RISCVMCExpr::VariantKind Kind; - - switch (MO.getTargetFlags()) { - default: - llvm_unreachable("Unknown target flag on GV operand"); - case RISCVII::MO_None: - Kind = RISCVMCExpr::VK_RISCV_None; - break; - case RISCVII::MO_LO: - Kind = RISCVMCExpr::VK_RISCV_LO; - break; - case RISCVII::MO_HI: - Kind = RISCVMCExpr::VK_RISCV_HI; - break; - } - - const MCExpr *ME = - MCSymbolRefExpr::create(Sym, MCSymbolRefExpr::VK_None, Ctx); - - if (!MO.isJTI() && !MO.isMBB() && MO.getOffset()) - ME = MCBinaryExpr::createAdd( - ME, MCConstantExpr::create(MO.getOffset(), Ctx), Ctx); - - if (Kind != RISCVMCExpr::VK_RISCV_None) - ME = RISCVMCExpr::create(ME, Kind, Ctx); - return MCOperand::createExpr(ME); -} - -bool llvm::LowerRISCVMachineOperandToMCOperand(const MachineOperand &MO, - MCOperand &MCOp, - const AsmPrinter &AP) { - switch (MO.getType()) { - default: - report_fatal_error("LowerRISCVMachineInstrToMCInst: unknown operand type"); - case MachineOperand::MO_Register: - // Ignore all implicit register operands. - if (MO.isImplicit()) - return false; - MCOp = MCOperand::createReg(MO.getReg()); - break; - case MachineOperand::MO_RegisterMask: - // Regmasks are like implicit defs. - return false; - case MachineOperand::MO_Immediate: - MCOp = MCOperand::createImm(MO.getImm()); - break; - case MachineOperand::MO_MachineBasicBlock: - MCOp = lowerSymbolOperand(MO, MO.getMBB()->getSymbol(), AP); - break; - case MachineOperand::MO_GlobalAddress: - MCOp = lowerSymbolOperand(MO, AP.getSymbol(MO.getGlobal()), AP); - break; - case MachineOperand::MO_BlockAddress: - MCOp = lowerSymbolOperand( - MO, AP.GetBlockAddressSymbol(MO.getBlockAddress()), AP); - break; - case MachineOperand::MO_ExternalSymbol: - MCOp = lowerSymbolOperand( - MO, AP.GetExternalSymbolSymbol(MO.getSymbolName()), AP); - break; - case MachineOperand::MO_ConstantPoolIndex: - MCOp = lowerSymbolOperand(MO, AP.GetCPISymbol(MO.getIndex()), AP); - break; - } - return true; -} - -void llvm::LowerRISCVMachineInstrToMCInst(const MachineInstr *MI, MCInst &OutMI, - const AsmPrinter &AP) { - OutMI.setOpcode(MI->getOpcode()); - - for (const MachineOperand &MO : MI->operands()) { - MCOperand MCOp; - if (LowerRISCVMachineOperandToMCOperand(MO, MCOp, AP)) - OutMI.addOperand(MCOp); - } -} |
