| 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 1331 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1342 NopVariant Variant; | 1342 NopVariant Variant; |
| 1343 }; | 1343 }; |
| 1344 | 1344 |
| 1345 // Fld - load a value onto the x87 FP stack. | 1345 // Fld - load a value onto the x87 FP stack. |
| 1346 class InstX8632Fld : public InstX8632 { | 1346 class InstX8632Fld : public InstX8632 { |
| 1347 public: | 1347 public: |
| 1348 static InstX8632Fld *create(Cfg *Func, Operand *Src) { | 1348 static InstX8632Fld *create(Cfg *Func, Operand *Src) { |
| 1349 return new (Func->allocate<InstX8632Fld>()) InstX8632Fld(Func, Src); | 1349 return new (Func->allocate<InstX8632Fld>()) InstX8632Fld(Func, Src); |
| 1350 } | 1350 } |
| 1351 void emit(const Cfg *Func) const override; | 1351 void emit(const Cfg *Func) const override; |
| 1352 void emitIAS(const Cfg *Func) const override; |
| 1352 void dump(const Cfg *Func) const override; | 1353 void dump(const Cfg *Func) const override; |
| 1353 static bool classof(const Inst *Inst) { return isClassof(Inst, Fld); } | 1354 static bool classof(const Inst *Inst) { return isClassof(Inst, Fld); } |
| 1354 | 1355 |
| 1355 private: | 1356 private: |
| 1356 InstX8632Fld(Cfg *Func, Operand *Src); | 1357 InstX8632Fld(Cfg *Func, Operand *Src); |
| 1357 InstX8632Fld(const InstX8632Fld &) = delete; | 1358 InstX8632Fld(const InstX8632Fld &) = delete; |
| 1358 InstX8632Fld &operator=(const InstX8632Fld &) = delete; | 1359 InstX8632Fld &operator=(const InstX8632Fld &) = delete; |
| 1359 ~InstX8632Fld() override {} | 1360 ~InstX8632Fld() override {} |
| 1360 }; | 1361 }; |
| 1361 | 1362 |
| 1362 // Fstp - store x87 st(0) into memory and pop st(0). | 1363 // Fstp - store x87 st(0) into memory and pop st(0). |
| 1363 class InstX8632Fstp : public InstX8632 { | 1364 class InstX8632Fstp : public InstX8632 { |
| 1364 public: | 1365 public: |
| 1365 static InstX8632Fstp *create(Cfg *Func, Variable *Dest) { | 1366 static InstX8632Fstp *create(Cfg *Func, Variable *Dest) { |
| 1366 return new (Func->allocate<InstX8632Fstp>()) InstX8632Fstp(Func, Dest); | 1367 return new (Func->allocate<InstX8632Fstp>()) InstX8632Fstp(Func, Dest); |
| 1367 } | 1368 } |
| 1368 void emit(const Cfg *Func) const override; | 1369 void emit(const Cfg *Func) const override; |
| 1370 void emitIAS(const Cfg *Func) const override; |
| 1369 void dump(const Cfg *Func) const override; | 1371 void dump(const Cfg *Func) const override; |
| 1370 static bool classof(const Inst *Inst) { return isClassof(Inst, Fstp); } | 1372 static bool classof(const Inst *Inst) { return isClassof(Inst, Fstp); } |
| 1371 | 1373 |
| 1372 private: | 1374 private: |
| 1373 InstX8632Fstp(Cfg *Func, Variable *Dest); | 1375 InstX8632Fstp(Cfg *Func, Variable *Dest); |
| 1374 InstX8632Fstp(const InstX8632Fstp &) = delete; | 1376 InstX8632Fstp(const InstX8632Fstp &) = delete; |
| 1375 InstX8632Fstp &operator=(const InstX8632Fstp &) = delete; | 1377 InstX8632Fstp &operator=(const InstX8632Fstp &) = delete; |
| 1376 ~InstX8632Fstp() override {} | 1378 ~InstX8632Fstp() override {} |
| 1377 }; | 1379 }; |
| 1378 | 1380 |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1514 template <> void InstX8632Cbwdq::emitIAS(const Cfg *Func) const; | 1516 template <> void InstX8632Cbwdq::emitIAS(const Cfg *Func) const; |
| 1515 template <> void InstX8632Movd::emitIAS(const Cfg *Func) const; | 1517 template <> void InstX8632Movd::emitIAS(const Cfg *Func) const; |
| 1516 template <> void InstX8632Movp::emitIAS(const Cfg *Func) const; | 1518 template <> void InstX8632Movp::emitIAS(const Cfg *Func) const; |
| 1517 template <> void InstX8632Movq::emitIAS(const Cfg *Func) const; | 1519 template <> void InstX8632Movq::emitIAS(const Cfg *Func) const; |
| 1518 template <> void InstX8632MovssRegs::emitIAS(const Cfg *Func) const; | 1520 template <> void InstX8632MovssRegs::emitIAS(const Cfg *Func) const; |
| 1519 template <> void InstX8632Pmull::emitIAS(const Cfg *Func) const; | 1521 template <> void InstX8632Pmull::emitIAS(const Cfg *Func) const; |
| 1520 | 1522 |
| 1521 } // end of namespace Ice | 1523 } // end of namespace Ice |
| 1522 | 1524 |
| 1523 #endif // SUBZERO_SRC_ICEINSTX8632_H | 1525 #endif // SUBZERO_SRC_ICEINSTX8632_H |
| OLD | NEW |