| OLD | NEW |
| 1 //===- subzero/src/IceInstARM32.h - ARM32 machine instructions --*- C++ -*-===// | 1 //===- subzero/src/IceInstARM32.h - ARM32 machine instructions --*- C++ -*-===// |
| 2 // | 2 // |
| 3 // The Subzero Code Generator | 3 // The Subzero Code Generator |
| 4 // | 4 // |
| 5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
| 6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
| 7 // | 7 // |
| 8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
| 9 /// | 9 /// |
| 10 /// \file | 10 /// \file |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 69 class OperandARM32Mem : public OperandARM32 { | 69 class OperandARM32Mem : public OperandARM32 { |
| 70 OperandARM32Mem() = delete; | 70 OperandARM32Mem() = delete; |
| 71 OperandARM32Mem(const OperandARM32Mem &) = delete; | 71 OperandARM32Mem(const OperandARM32Mem &) = delete; |
| 72 OperandARM32Mem &operator=(const OperandARM32Mem &) = delete; | 72 OperandARM32Mem &operator=(const OperandARM32Mem &) = delete; |
| 73 | 73 |
| 74 public: | 74 public: |
| 75 /// Memory operand addressing mode. | 75 /// Memory operand addressing mode. |
| 76 /// The enum value also carries the encoding. | 76 /// The enum value also carries the encoding. |
| 77 // TODO(jvoung): unify with the assembler. | 77 // TODO(jvoung): unify with the assembler. |
| 78 enum AddrMode { | 78 enum AddrMode { |
| 79 // bit encoding P U W | 79 // bit encoding P U 0 W |
| 80 Offset = (8 | 4 | 0) << 21, // offset (w/o writeback to base) | 80 Offset = (8 | 4 | 0) << 21, // offset (w/o writeback to base) |
| 81 PreIndex = (8 | 4 | 1) << 21, // pre-indexed addressing with writeback | 81 PreIndex = (8 | 4 | 1) << 21, // pre-indexed addressing with writeback |
| 82 PostIndex = (0 | 4 | 0) << 21, // post-indexed addressing with writeback | 82 PostIndex = (0 | 4 | 0) << 21, // post-indexed addressing with writeback |
| 83 NegOffset = (8 | 0 | 0) << 21, // negative offset (w/o writeback to base) | 83 NegOffset = (8 | 0 | 0) << 21, // negative offset (w/o writeback to base) |
| 84 NegPreIndex = (8 | 0 | 1) << 21, // negative pre-indexed with writeback | 84 NegPreIndex = (8 | 0 | 1) << 21, // negative pre-indexed with writeback |
| 85 NegPostIndex = (0 | 0 | 0) << 21 // negative post-indexed with writeback | 85 NegPostIndex = (0 | 0 | 0) << 21 // negative post-indexed with writeback |
| 86 }; | 86 }; |
| 87 | 87 |
| 88 /// Provide two constructors. | 88 /// Provide two constructors. |
| 89 /// NOTE: The Variable-typed operands have to be registers. | 89 /// NOTE: The Variable-typed operands have to be registers. |
| (...skipping 1225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1315 // default implementations. Without this, there is the possibility of ODR | 1315 // default implementations. Without this, there is the possibility of ODR |
| 1316 // violations and link errors. | 1316 // violations and link errors. |
| 1317 | 1317 |
| 1318 template <> void InstARM32Ldr::emit(const Cfg *Func) const; | 1318 template <> void InstARM32Ldr::emit(const Cfg *Func) const; |
| 1319 template <> void InstARM32Movw::emit(const Cfg *Func) const; | 1319 template <> void InstARM32Movw::emit(const Cfg *Func) const; |
| 1320 template <> void InstARM32Movt::emit(const Cfg *Func) const; | 1320 template <> void InstARM32Movt::emit(const Cfg *Func) const; |
| 1321 | 1321 |
| 1322 } // end of namespace Ice | 1322 } // end of namespace Ice |
| 1323 | 1323 |
| 1324 #endif // SUBZERO_SRC_ICEINSTARM32_H | 1324 #endif // SUBZERO_SRC_ICEINSTARM32_H |
| OLD | NEW |