diff options
author | Bill Wendling <isanbard@gmail.com> | 2010-12-14 03:36:38 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2010-12-14 03:36:38 +0000 |
commit | 092a7bdf9f15d31e72856b2823babed90d88c6ac (patch) | |
tree | 7d4f38905577188bce6c26c49441106a4b56d50e /llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.h | |
parent | c17781375532ce9974cb83408b03d88e47d1b3a8 (diff) | |
download | bcm5719-llvm-092a7bdf9f15d31e72856b2823babed90d88c6ac.tar.gz bcm5719-llvm-092a7bdf9f15d31e72856b2823babed90d88c6ac.zip |
The tLDR et al instructions were emitting either a reg/reg or reg/imm
instruction based on the t_addrmode_s# mode and what it returned. There is some
obvious badness to this. In particular, it's hard to do MC-encoding when the
instruction may change out from underneath you after the t_addrmode_s# variable
is finally resolved.
The solution is to revert a long-ago change that merged the reg/reg and reg/imm
versions. There is the addition of several new addressing modes. They no longer
have extraneous operands associated with them. I.e., if it's reg/reg we don't
have to have a dummy zero immediate tacked on to the SDNode.
There are some obvious cleanups here, which will happen shortly.
llvm-svn: 121747
Diffstat (limited to 'llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.h')
-rw-r--r-- | llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.h | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.h b/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.h index 8a216854e2f..eac539c2d0b 100644 --- a/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.h +++ b/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.h @@ -59,14 +59,14 @@ public: void printThumbITMask(const MCInst *MI, unsigned OpNum, raw_ostream &O); void printThumbAddrModeRROperand(const MCInst *MI, unsigned OpNum, raw_ostream &O); - void printThumbAddrModeRI5Operand(const MCInst *MI, unsigned OpNum, - raw_ostream &O, unsigned Scale); - void printThumbAddrModeS1Operand(const MCInst *MI, unsigned OpNum, - raw_ostream &O); - void printThumbAddrModeS2Operand(const MCInst *MI, unsigned OpNum, - raw_ostream &O); - void printThumbAddrModeS4Operand(const MCInst *MI, unsigned OpNum, - raw_ostream &O); + void printThumbAddrModeImm5SOperand(const MCInst *MI, unsigned OpNum, + raw_ostream &O, unsigned Scale); + void printThumbAddrModeImm5S1Operand(const MCInst *MI, unsigned OpNum, + raw_ostream &O); + void printThumbAddrModeImm5S2Operand(const MCInst *MI, unsigned OpNum, + raw_ostream &O); + void printThumbAddrModeImm5S4Operand(const MCInst *MI, unsigned OpNum, + raw_ostream &O); void printThumbAddrModeSPOperand(const MCInst *MI, unsigned OpNum, raw_ostream &O); |