OLD | NEW |
1 //===- subzero/src/IceTargetLoweringX86Base.h - x86 lowering ----*- C++ -*-===// | 1 //===- subzero/src/IceTargetLoweringX86Base.h - x86 lowering ----*- 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 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
240 void initSandbox() { | 240 void initSandbox() { |
241 assert(SandboxingType != ST_None); | 241 assert(SandboxingType != ST_None); |
242 dispatchToConcrete(&Traits::ConcreteTarget::initSandbox); | 242 dispatchToConcrete(&Traits::ConcreteTarget::initSandbox); |
243 } | 243 } |
244 | 244 |
245 void lowerAlloca(const InstAlloca *Instr) override; | 245 void lowerAlloca(const InstAlloca *Instr) override; |
246 void lowerArguments() override; | 246 void lowerArguments() override; |
247 void lowerArithmetic(const InstArithmetic *Instr) override; | 247 void lowerArithmetic(const InstArithmetic *Instr) override; |
248 void lowerAssign(const InstAssign *Instr) override; | 248 void lowerAssign(const InstAssign *Instr) override; |
249 void lowerBr(const InstBr *Instr) override; | 249 void lowerBr(const InstBr *Instr) override; |
| 250 void lowerBreakpoint(const InstBreakpoint *Instr) override; |
250 void lowerCall(const InstCall *Instr) override; | 251 void lowerCall(const InstCall *Instr) override; |
251 void lowerCast(const InstCast *Instr) override; | 252 void lowerCast(const InstCast *Instr) override; |
252 void lowerExtractElement(const InstExtractElement *Instr) override; | 253 void lowerExtractElement(const InstExtractElement *Instr) override; |
253 void lowerFcmp(const InstFcmp *Instr) override; | 254 void lowerFcmp(const InstFcmp *Instr) override; |
254 void lowerIcmp(const InstIcmp *Instr) override; | 255 void lowerIcmp(const InstIcmp *Instr) override; |
255 | 256 |
256 void lowerIntrinsicCall(const InstIntrinsicCall *Instr) override; | 257 void lowerIntrinsicCall(const InstIntrinsicCall *Instr) override; |
257 void lowerInsertElement(const InstInsertElement *Instr) override; | 258 void lowerInsertElement(const InstInsertElement *Instr) override; |
258 void lowerLoad(const InstLoad *Instr) override; | 259 void lowerLoad(const InstLoad *Instr) override; |
259 void lowerPhi(const InstPhi *Instr) override; | 260 void lowerPhi(const InstPhi *Instr) override; |
(...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
649 Context.insert<typename Traits::Insts::Imul>(Dest, Src0); | 650 Context.insert<typename Traits::Insts::Imul>(Dest, Src0); |
650 } | 651 } |
651 void _imul_imm(Variable *Dest, Operand *Src0, Constant *Imm) { | 652 void _imul_imm(Variable *Dest, Operand *Src0, Constant *Imm) { |
652 AutoMemorySandboxer<> _(this, &Dest, &Src0); | 653 AutoMemorySandboxer<> _(this, &Dest, &Src0); |
653 Context.insert<typename Traits::Insts::ImulImm>(Dest, Src0, Imm); | 654 Context.insert<typename Traits::Insts::ImulImm>(Dest, Src0, Imm); |
654 } | 655 } |
655 void _insertps(Variable *Dest, Operand *Src0, Operand *Src1) { | 656 void _insertps(Variable *Dest, Operand *Src0, Operand *Src1) { |
656 AutoMemorySandboxer<> _(this, &Dest, &Src0, &Src1); | 657 AutoMemorySandboxer<> _(this, &Dest, &Src0, &Src1); |
657 Context.insert<typename Traits::Insts::Insertps>(Dest, Src0, Src1); | 658 Context.insert<typename Traits::Insts::Insertps>(Dest, Src0, Src1); |
658 } | 659 } |
| 660 void _int3() { Context.insert<typename Traits::Insts::Int3>(); } |
659 void _jmp(Operand *Target) { | 661 void _jmp(Operand *Target) { |
660 AutoMemorySandboxer<> _(this, &Target); | 662 AutoMemorySandboxer<> _(this, &Target); |
661 Context.insert<typename Traits::Insts::Jmp>(Target); | 663 Context.insert<typename Traits::Insts::Jmp>(Target); |
662 } | 664 } |
663 void _lea(Variable *Dest, Operand *Src0) { | 665 void _lea(Variable *Dest, Operand *Src0) { |
664 Context.insert<typename Traits::Insts::Lea>(Dest, Src0); | 666 Context.insert<typename Traits::Insts::Lea>(Dest, Src0); |
665 } | 667 } |
666 void _link_bp() { dispatchToConcrete(&Traits::ConcreteTarget::_link_bp); } | 668 void _link_bp() { dispatchToConcrete(&Traits::ConcreteTarget::_link_bp); } |
667 void _push_reg(Variable *Reg) { | 669 void _push_reg(Variable *Reg) { |
668 dispatchToConcrete(&Traits::ConcreteTarget::_push_reg, std::move(Reg)); | 670 dispatchToConcrete(&Traits::ConcreteTarget::_push_reg, std::move(Reg)); |
(...skipping 457 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1126 | 1128 |
1127 explicit TargetHeaderX86(GlobalContext *Ctx) : TargetHeaderLowering(Ctx) {} | 1129 explicit TargetHeaderX86(GlobalContext *Ctx) : TargetHeaderLowering(Ctx) {} |
1128 }; | 1130 }; |
1129 | 1131 |
1130 } // end of namespace X86NAMESPACE | 1132 } // end of namespace X86NAMESPACE |
1131 } // end of namespace Ice | 1133 } // end of namespace Ice |
1132 | 1134 |
1133 #include "IceTargetLoweringX86BaseImpl.h" | 1135 #include "IceTargetLoweringX86BaseImpl.h" |
1134 | 1136 |
1135 #endif // SUBZERO_SRC_ICETARGETLOWERINGX86BASE_H | 1137 #endif // SUBZERO_SRC_ICETARGETLOWERINGX86BASE_H |
OLD | NEW |