Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: src/IceInstX8632.h

Issue 634333002: emitIAS for fld and fstp (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: handle st(0) Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | src/IceInstX8632.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « no previous file | src/IceInstX8632.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698