| 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 519 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 530 InstARM32LoadBase(const InstARM32LoadBase &) = delete; | 530 InstARM32LoadBase(const InstARM32LoadBase &) = delete; |
| 531 InstARM32LoadBase &operator=(const InstARM32LoadBase &) = delete; | 531 InstARM32LoadBase &operator=(const InstARM32LoadBase &) = delete; |
| 532 | 532 |
| 533 public: | 533 public: |
| 534 static InstARM32LoadBase *create(Cfg *Func, Variable *Dest, Operand *Source, | 534 static InstARM32LoadBase *create(Cfg *Func, Variable *Dest, Operand *Source, |
| 535 CondARM32::Cond Predicate) { | 535 CondARM32::Cond Predicate) { |
| 536 return new (Func->allocate<InstARM32LoadBase>()) | 536 return new (Func->allocate<InstARM32LoadBase>()) |
| 537 InstARM32LoadBase(Func, Dest, Source, Predicate); | 537 InstARM32LoadBase(Func, Dest, Source, Predicate); |
| 538 } | 538 } |
| 539 void emit(const Cfg *Func) const override; | 539 void emit(const Cfg *Func) const override; |
| 540 void emitIAS(const Cfg *Func) const override; |
| 540 void dump(const Cfg *Func) const override { | 541 void dump(const Cfg *Func) const override { |
| 541 if (!BuildDefs::dump()) | 542 if (!BuildDefs::dump()) |
| 542 return; | 543 return; |
| 543 Ostream &Str = Func->getContext()->getStrDump(); | 544 Ostream &Str = Func->getContext()->getStrDump(); |
| 544 dumpOpcodePred(Str, Opcode, getDest()->getType()); | 545 dumpOpcodePred(Str, Opcode, getDest()->getType()); |
| 545 Str << " "; | 546 Str << " "; |
| 546 dumpDest(Func); | 547 dumpDest(Func); |
| 547 Str << ", "; | 548 Str << ", "; |
| 548 dumpSources(Func); | 549 dumpSources(Func); |
| 549 } | 550 } |
| (...skipping 450 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1000 InstARM32Str &operator=(const InstARM32Str &) = delete; | 1001 InstARM32Str &operator=(const InstARM32Str &) = delete; |
| 1001 | 1002 |
| 1002 public: | 1003 public: |
| 1003 /// Value must be a register. | 1004 /// Value must be a register. |
| 1004 static InstARM32Str *create(Cfg *Func, Variable *Value, OperandARM32Mem *Mem, | 1005 static InstARM32Str *create(Cfg *Func, Variable *Value, OperandARM32Mem *Mem, |
| 1005 CondARM32::Cond Predicate) { | 1006 CondARM32::Cond Predicate) { |
| 1006 return new (Func->allocate<InstARM32Str>()) | 1007 return new (Func->allocate<InstARM32Str>()) |
| 1007 InstARM32Str(Func, Value, Mem, Predicate); | 1008 InstARM32Str(Func, Value, Mem, Predicate); |
| 1008 } | 1009 } |
| 1009 void emit(const Cfg *Func) const override; | 1010 void emit(const Cfg *Func) const override; |
| 1011 void emitIAS(const Cfg *Func) const override; |
| 1010 void dump(const Cfg *Func) const override; | 1012 void dump(const Cfg *Func) const override; |
| 1011 static bool classof(const Inst *Inst) { return isClassof(Inst, Str); } | 1013 static bool classof(const Inst *Inst) { return isClassof(Inst, Str); } |
| 1012 | 1014 |
| 1013 private: | 1015 private: |
| 1014 InstARM32Str(Cfg *Func, Variable *Value, OperandARM32Mem *Mem, | 1016 InstARM32Str(Cfg *Func, Variable *Value, OperandARM32Mem *Mem, |
| 1015 CondARM32::Cond Predicate); | 1017 CondARM32::Cond Predicate); |
| 1016 }; | 1018 }; |
| 1017 | 1019 |
| 1018 /// Exclusive Store instruction. Like its non-exclusive sibling, it's important | 1020 /// Exclusive Store instruction. Like its non-exclusive sibling, it's important |
| 1019 /// for liveness that there is no Dest operand (OperandARM32Mem instead of Dest | 1021 /// for liveness that there is no Dest operand (OperandARM32Mem instead of Dest |
| (...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1229 // default implementations. Without this, there is the possibility of ODR | 1231 // default implementations. Without this, there is the possibility of ODR |
| 1230 // violations and link errors. | 1232 // violations and link errors. |
| 1231 | 1233 |
| 1232 template <> void InstARM32Ldr::emit(const Cfg *Func) const; | 1234 template <> void InstARM32Ldr::emit(const Cfg *Func) const; |
| 1233 template <> void InstARM32Movw::emit(const Cfg *Func) const; | 1235 template <> void InstARM32Movw::emit(const Cfg *Func) const; |
| 1234 template <> void InstARM32Movt::emit(const Cfg *Func) const; | 1236 template <> void InstARM32Movt::emit(const Cfg *Func) const; |
| 1235 | 1237 |
| 1236 } // end of namespace Ice | 1238 } // end of namespace Ice |
| 1237 | 1239 |
| 1238 #endif // SUBZERO_SRC_ICEINSTARM32_H | 1240 #endif // SUBZERO_SRC_ICEINSTARM32_H |
| OLD | NEW |