diff options
author | Alex Bradbury <asb@lowrisc.org> | 2017-12-07 10:26:05 +0000 |
---|---|---|
committer | Alex Bradbury <asb@lowrisc.org> | 2017-12-07 10:26:05 +0000 |
commit | 0d6cf90663e6662e9b7b6045d56755679c1ffdc9 (patch) | |
tree | bb2afe7a44942e06378623f5603275e9355d38be /llvm/lib/Target/RISCV/InstPrinter/RISCVInstPrinter.h | |
parent | 293da70b831f635be52ccf7fc79fb4c483623046 (diff) | |
download | bcm5719-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.h | 4 |
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); }; |