| OLD | NEW | 
|---|
| 1 //===- subzero/src/IceTargetLoweringX8664.h - lowering for x86-64 -*- C++ -*-=// | 1 //===- subzero/src/IceTargetLoweringX8664.h - lowering for x86-64 -*- 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 27 matching lines...) Expand all  Loading... | 
| 38                      const InstJumpTable *JumpTable) const override; | 38                      const InstJumpTable *JumpTable) const override; | 
| 39 | 39 | 
| 40 public: | 40 public: | 
| 41   ~TargetX8664() = default; | 41   ~TargetX8664() = default; | 
| 42 | 42 | 
| 43   static std::unique_ptr<::Ice::TargetLowering> create(Cfg *Func) { | 43   static std::unique_ptr<::Ice::TargetLowering> create(Cfg *Func) { | 
| 44     return makeUnique<TargetX8664>(Func); | 44     return makeUnique<TargetX8664>(Func); | 
| 45   } | 45   } | 
| 46 | 46 | 
| 47   std::unique_ptr<::Ice::Assembler> createAssembler() const override { | 47   std::unique_ptr<::Ice::Assembler> createAssembler() const override { | 
| 48     return makeUnique<X8664::AssemblerX8664>(); | 48     const bool EmitAddrSizeOverridePrefix = !NeedSandboxing; | 
|  | 49     return makeUnique<X8664::AssemblerX8664>(EmitAddrSizeOverridePrefix); | 
| 49   } | 50   } | 
| 50 | 51 | 
|  | 52   bool needSandboxing() const { return NeedSandboxing; } | 
|  | 53 | 
| 51 protected: | 54 protected: | 
|  | 55   void _add_sp(Operand *Adjustment); | 
|  | 56   void _mov_sp(Operand *NewValue); | 
|  | 57   void _push_rbp(); | 
|  | 58   Traits::X86OperandMem *_sandbox_mem_reference(X86OperandMem *Mem); | 
|  | 59   void _sub_sp(Operand *Adjustment); | 
|  | 60 | 
|  | 61   void initSandbox(); | 
|  | 62   void lowerIndirectJump(Variable *JumpTarget); | 
| 52   void lowerCall(const InstCall *Instr) override; | 63   void lowerCall(const InstCall *Instr) override; | 
| 53   void lowerArguments() override; | 64   void lowerArguments() override; | 
| 54   void lowerRet(const InstRet *Inst) override; | 65   void lowerRet(const InstRet *Inst) override; | 
| 55   void addProlog(CfgNode *Node) override; | 66   void addProlog(CfgNode *Node) override; | 
| 56   void addEpilog(CfgNode *Node) override; | 67   void addEpilog(CfgNode *Node) override; | 
| 57 | 68 | 
| 58 private: | 69 private: | 
| 59   ENABLE_MAKE_UNIQUE; | 70   ENABLE_MAKE_UNIQUE; | 
| 60   friend class X8664::TargetX86Base<X8664::Traits>; | 71   friend class X8664::TargetX86Base<X8664::Traits>; | 
| 61 | 72 | 
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 110 private: | 121 private: | 
| 111   ENABLE_MAKE_UNIQUE; | 122   ENABLE_MAKE_UNIQUE; | 
| 112 | 123 | 
| 113   explicit TargetHeaderX8664(GlobalContext *Ctx) : TargetHeaderLowering(Ctx) {} | 124   explicit TargetHeaderX8664(GlobalContext *Ctx) : TargetHeaderLowering(Ctx) {} | 
| 114 }; | 125 }; | 
| 115 | 126 | 
| 116 } // end of namespace X8664 | 127 } // end of namespace X8664 | 
| 117 } // end of namespace Ice | 128 } // end of namespace Ice | 
| 118 | 129 | 
| 119 #endif // SUBZERO_SRC_ICETARGETLOWERINGX8664_H | 130 #endif // SUBZERO_SRC_ICETARGETLOWERINGX8664_H | 
| OLD | NEW | 
|---|