diff options
| author | Bob Wilson <bob.wilson@apple.com> | 2009-07-01 23:16:05 +0000 |
|---|---|---|
| committer | Bob Wilson <bob.wilson@apple.com> | 2009-07-01 23:16:05 +0000 |
| commit | 970a10d2563e597d2a012fe9b083589873700ac2 (patch) | |
| tree | b0374c162191192f0ebc78caf49e53e79c064fad /lib/Target/ARM/ARMAddressingModes.h | |
| parent | 92adb18f63b3e007acf7cde59318c595ed9d3d40 (diff) | |
| download | external_llvm-970a10d2563e597d2a012fe9b083589873700ac2.zip external_llvm-970a10d2563e597d2a012fe9b083589873700ac2.tar.gz external_llvm-970a10d2563e597d2a012fe9b083589873700ac2.tar.bz2 | |
Add a new addressing mode for NEON load/store instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74658 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMAddressingModes.h')
| -rw-r--r-- | lib/Target/ARM/ARMAddressingModes.h | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/lib/Target/ARM/ARMAddressingModes.h b/lib/Target/ARM/ARMAddressingModes.h index 7dc2dca..15c9ec1 100644 --- a/lib/Target/ARM/ARMAddressingModes.h +++ b/lib/Target/ARM/ARMAddressingModes.h @@ -496,7 +496,29 @@ namespace ARM_AM { static inline bool getAM5WBFlag(unsigned AM5Opc) { return ((AM5Opc >> 8) & 1); } - + + //===--------------------------------------------------------------------===// + // Addressing Mode #6 + //===--------------------------------------------------------------------===// + // + // This is used for NEON load / store instructions. + // + // addrmode6 := reg with optional writeback + // + // This is stored in three operands [regaddr, regupdate, opc]. The first is + // the address register. The second register holds the value of a post-access + // increment for writeback or reg0 if no writeback or if the writeback + // increment is the size of the memory access. The third operand encodes + // whether there is writeback to the address register. + + static inline unsigned getAM6Opc(bool WB = false) { + return (int)WB; + } + + static inline bool getAM6WBFlag(unsigned Mode) { + return Mode & 1; + } + } // end namespace ARM_AM } // end namespace llvm |
