summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/RISCV/InstPrinter/RISCVInstPrinter.h
diff options
context:
space:
mode:
authorAlex Bradbury <asb@lowrisc.org>2017-12-07 10:26:05 +0000
committerAlex Bradbury <asb@lowrisc.org>2017-12-07 10:26:05 +0000
commit0d6cf90663e6662e9b7b6045d56755679c1ffdc9 (patch)
treebb2afe7a44942e06378623f5603275e9355d38be /llvm/lib/Target/RISCV/InstPrinter/RISCVInstPrinter.h
parent293da70b831f635be52ccf7fc79fb4c483623046 (diff)
downloadbcm5719-llvm-0d6cf90663e6662e9b7b6045d56755679c1ffdc9.tar.gz
bcm5719-llvm-0d6cf90663e6662e9b7b6045d56755679c1ffdc9.zip
[RISCV] MC layer support for the standard RV32F instruction set extension
The most interesting part of this patch is probably the handling of rounding mode arguments. Sadly, the RISC-V assembler handles floating point rounding modes as a special "argument" when it would be more consistent to handle them like the atomics, opcode suffixes. This patch supports parsing this optional parameter, using InstAlias to allow parsing these floating point instructions when no rounding mode is specified. Differential Revision: https://reviews.llvm.org/D39893 llvm-svn: 320020
Diffstat (limited to 'llvm/lib/Target/RISCV/InstPrinter/RISCVInstPrinter.h')
-rw-r--r--llvm/lib/Target/RISCV/InstPrinter/RISCVInstPrinter.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Target/RISCV/InstPrinter/RISCVInstPrinter.h b/llvm/lib/Target/RISCV/InstPrinter/RISCVInstPrinter.h
index 3bb4fa37f15..58f3f841015 100644
--- a/llvm/lib/Target/RISCV/InstPrinter/RISCVInstPrinter.h
+++ b/llvm/lib/Target/RISCV/InstPrinter/RISCVInstPrinter.h
@@ -33,9 +33,13 @@ public:
void printOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O,
const char *Modifier = nullptr);
void printFenceArg(const MCInst *MI, unsigned OpNo, raw_ostream &O);
+ void printFRMArg(const MCInst *MI, unsigned OpNo, raw_ostream &O);
// Autogenerated by tblgen.
void printInstruction(const MCInst *MI, raw_ostream &O);
+ bool printAliasInstr(const MCInst *MI, raw_ostream &O);
+ void printCustomAliasOperand(const MCInst *MI, unsigned OpIdx,
+ unsigned PrintMethodIdx, raw_ostream &O);
static const char *getRegisterName(unsigned RegNo,
unsigned AltIdx = RISCV::ABIRegAltName);
};
OpenPOWER on IntegriCloud