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

Side by Side Diff: src/IceInstX8632.h

Issue 633553003: emitIAS for push -- simplify push since it's not used for args passing anymore (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: 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 1398 matching lines...) Expand 10 before | Expand all | Expand 10 after
1409 1409
1410 private: 1410 private:
1411 InstX8632Pop(Cfg *Func, Variable *Dest); 1411 InstX8632Pop(Cfg *Func, Variable *Dest);
1412 InstX8632Pop(const InstX8632Pop &) = delete; 1412 InstX8632Pop(const InstX8632Pop &) = delete;
1413 InstX8632Pop &operator=(const InstX8632Pop &) = delete; 1413 InstX8632Pop &operator=(const InstX8632Pop &) = delete;
1414 ~InstX8632Pop() override {} 1414 ~InstX8632Pop() override {}
1415 }; 1415 };
1416 1416
1417 class InstX8632Push : public InstX8632 { 1417 class InstX8632Push : public InstX8632 {
1418 public: 1418 public:
1419 static InstX8632Push *create(Cfg *Func, Operand *Source, 1419 static InstX8632Push *create(Cfg *Func, Variable *Source) {
1420 bool SuppressStackAdjustment) {
1421 return new (Func->allocate<InstX8632Push>()) 1420 return new (Func->allocate<InstX8632Push>())
1422 InstX8632Push(Func, Source, SuppressStackAdjustment); 1421 InstX8632Push(Func, Source);
1423 } 1422 }
1424 void emit(const Cfg *Func) const override; 1423 void emit(const Cfg *Func) const override;
1424 void emitIAS(const Cfg *Func) const override;
1425 void dump(const Cfg *Func) const override; 1425 void dump(const Cfg *Func) const override;
1426 static bool classof(const Inst *Inst) { return isClassof(Inst, Push); } 1426 static bool classof(const Inst *Inst) { return isClassof(Inst, Push); }
1427 1427
1428 private: 1428 private:
1429 InstX8632Push(Cfg *Func, Operand *Source, bool SuppressStackAdjustment); 1429 InstX8632Push(Cfg *Func, Variable *Source);
1430 InstX8632Push(const InstX8632Push &) = delete; 1430 InstX8632Push(const InstX8632Push &) = delete;
1431 InstX8632Push &operator=(const InstX8632Push &) = delete; 1431 InstX8632Push &operator=(const InstX8632Push &) = delete;
1432 bool SuppressStackAdjustment;
1433 ~InstX8632Push() override {} 1432 ~InstX8632Push() override {}
1434 }; 1433 };
1435 1434
1436 // Ret instruction. Currently only supports the "ret" version that 1435 // Ret instruction. Currently only supports the "ret" version that
1437 // does not pop arguments. This instruction takes a Source operand 1436 // does not pop arguments. This instruction takes a Source operand
1438 // (for non-void returning functions) for liveness analysis, though 1437 // (for non-void returning functions) for liveness analysis, though
1439 // a FakeUse before the ret would do just as well. 1438 // a FakeUse before the ret would do just as well.
1440 class InstX8632Ret : public InstX8632 { 1439 class InstX8632Ret : public InstX8632 {
1441 public: 1440 public:
1442 static InstX8632Ret *create(Cfg *Func, Variable *Source = NULL) { 1441 static InstX8632Ret *create(Cfg *Func, Variable *Source = NULL) {
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
1533 template <> void InstX8632Div::emitIAS(const Cfg *Func) const; 1532 template <> void InstX8632Div::emitIAS(const Cfg *Func) const;
1534 template <> void InstX8632Idiv::emitIAS(const Cfg *Func) const; 1533 template <> void InstX8632Idiv::emitIAS(const Cfg *Func) const;
1535 template <> void InstX8632Imul::emitIAS(const Cfg *Func) const; 1534 template <> void InstX8632Imul::emitIAS(const Cfg *Func) const;
1536 template <> void InstX8632Cbwdq::emitIAS(const Cfg *Func) const; 1535 template <> void InstX8632Cbwdq::emitIAS(const Cfg *Func) const;
1537 template <> void InstX8632Movd::emitIAS(const Cfg *Func) const; 1536 template <> void InstX8632Movd::emitIAS(const Cfg *Func) const;
1538 template <> void InstX8632Pmull::emitIAS(const Cfg *Func) const; 1537 template <> void InstX8632Pmull::emitIAS(const Cfg *Func) const;
1539 1538
1540 } // end of namespace Ice 1539 } // end of namespace Ice
1541 1540
1542 #endif // SUBZERO_SRC_ICEINSTX8632_H 1541 #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