OLD | NEW |
1 //===- subzero/src/IceInstX8632.h - Low-level x86 instructions --*- C++ -*-===// | 1 //===- subzero/src/IceInstX8632.h - Low-level x86 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 // This file declares the InstX8632 and OperandX8632 classes and | 10 // This file declares the InstX8632 and OperandX8632 classes and |
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
283 // report_fatal_error() if one is found. This function should be | 283 // report_fatal_error() if one is found. This function should be |
284 // called during emission, and maybe also in the ctor (as long as | 284 // called during emission, and maybe also in the ctor (as long as |
285 // that fits the lowering style). | 285 // that fits the lowering style). |
286 void validateVectorAddrMode() const { | 286 void validateVectorAddrMode() const { |
287 if (getDest()) | 287 if (getDest()) |
288 validateVectorAddrModeOpnd(getDest()); | 288 validateVectorAddrModeOpnd(getDest()); |
289 for (SizeT i = 0; i < getSrcSize(); ++i) { | 289 for (SizeT i = 0; i < getSrcSize(); ++i) { |
290 validateVectorAddrModeOpnd(getSrc(i)); | 290 validateVectorAddrModeOpnd(getSrc(i)); |
291 } | 291 } |
292 } | 292 } |
| 293 |
293 private: | 294 private: |
294 static void validateVectorAddrModeOpnd(const Operand *Opnd) { | 295 static void validateVectorAddrModeOpnd(const Operand *Opnd) { |
295 if (llvm::isa<OperandX8632Mem>(Opnd) && isVectorType(Opnd->getType())) { | 296 if (llvm::isa<OperandX8632Mem>(Opnd) && isVectorType(Opnd->getType())) { |
296 llvm::report_fatal_error("Possible misaligned vector memory operation"); | 297 llvm::report_fatal_error("Possible misaligned vector memory operation"); |
297 } | 298 } |
298 } | 299 } |
299 }; | 300 }; |
300 | 301 |
301 // InstX8632Label represents an intra-block label that is the target | 302 // InstX8632Label represents an intra-block label that is the target |
302 // of an intra-block branch. The offset between the label and the | 303 // of an intra-block branch. The offset between the label and the |
(...skipping 1375 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1678 template <> void InstX8632Pinsr::emitIAS(const Cfg *Func) const; | 1679 template <> void InstX8632Pinsr::emitIAS(const Cfg *Func) const; |
1679 template <> void InstX8632Movsx::emitIAS(const Cfg *Func) const; | 1680 template <> void InstX8632Movsx::emitIAS(const Cfg *Func) const; |
1680 template <> void InstX8632Movzx::emitIAS(const Cfg *Func) const; | 1681 template <> void InstX8632Movzx::emitIAS(const Cfg *Func) const; |
1681 template <> void InstX8632Pmull::emitIAS(const Cfg *Func) const; | 1682 template <> void InstX8632Pmull::emitIAS(const Cfg *Func) const; |
1682 template <> void InstX8632Pshufd::emitIAS(const Cfg *Func) const; | 1683 template <> void InstX8632Pshufd::emitIAS(const Cfg *Func) const; |
1683 template <> void InstX8632Shufps::emitIAS(const Cfg *Func) const; | 1684 template <> void InstX8632Shufps::emitIAS(const Cfg *Func) const; |
1684 | 1685 |
1685 } // end of namespace Ice | 1686 } // end of namespace Ice |
1686 | 1687 |
1687 #endif // SUBZERO_SRC_ICEINSTX8632_H | 1688 #endif // SUBZERO_SRC_ICEINSTX8632_H |
OLD | NEW |