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 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
255 | 255 |
256 void lowerIntrinsicCall(const InstIntrinsicCall *Instr) override; | 256 void lowerIntrinsicCall(const InstIntrinsicCall *Instr) override; |
257 void lowerInsertElement(const InstInsertElement *Instr) override; | 257 void lowerInsertElement(const InstInsertElement *Instr) override; |
258 void lowerLoad(const InstLoad *Instr) override; | 258 void lowerLoad(const InstLoad *Instr) override; |
259 void lowerPhi(const InstPhi *Instr) override; | 259 void lowerPhi(const InstPhi *Instr) override; |
260 void lowerRet(const InstRet *Instr) override; | 260 void lowerRet(const InstRet *Instr) override; |
261 void lowerSelect(const InstSelect *Instr) override; | 261 void lowerSelect(const InstSelect *Instr) override; |
262 void lowerStore(const InstStore *Instr) override; | 262 void lowerStore(const InstStore *Instr) override; |
263 void lowerSwitch(const InstSwitch *Instr) override; | 263 void lowerSwitch(const InstSwitch *Instr) override; |
264 void lowerUnreachable(const InstUnreachable *Instr) override; | 264 void lowerUnreachable(const InstUnreachable *Instr) override; |
265 void lowerBreakpoint(const InstBreakpoint *Instr) override; | |
Jim Stichnoth
2016/04/14 20:03:44
sort
Eric Holk
2016/04/15 15:24:27
Done.
| |
265 void lowerOther(const Inst *Instr) override; | 266 void lowerOther(const Inst *Instr) override; |
266 void lowerRMW(const InstX86FakeRMW *RMW); | 267 void lowerRMW(const InstX86FakeRMW *RMW); |
267 void prelowerPhis() override; | 268 void prelowerPhis() override; |
268 uint32_t getCallStackArgumentsSizeBytes(const CfgVector<Type> &ArgTypes, | 269 uint32_t getCallStackArgumentsSizeBytes(const CfgVector<Type> &ArgTypes, |
269 Type ReturnType); | 270 Type ReturnType); |
270 uint32_t getCallStackArgumentsSizeBytes(const InstCall *Instr) override; | 271 uint32_t getCallStackArgumentsSizeBytes(const InstCall *Instr) override; |
271 void genTargetHelperCallFor(Inst *Instr) override; | 272 void genTargetHelperCallFor(Inst *Instr) override; |
272 | 273 |
273 /// OptAddr wraps all the possible operands that an x86 address might have. | 274 /// OptAddr wraps all the possible operands that an x86 address might have. |
274 struct OptAddr { | 275 struct OptAddr { |
(...skipping 633 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
908 } | 909 } |
909 void _test(Operand *Src0, Operand *Src1) { | 910 void _test(Operand *Src0, Operand *Src1) { |
910 AutoMemorySandboxer<> _(this, &Src0, &Src1); | 911 AutoMemorySandboxer<> _(this, &Src0, &Src1); |
911 Context.insert<typename Traits::Insts::Test>(Src0, Src1); | 912 Context.insert<typename Traits::Insts::Test>(Src0, Src1); |
912 } | 913 } |
913 void _ucomiss(Operand *Src0, Operand *Src1) { | 914 void _ucomiss(Operand *Src0, Operand *Src1) { |
914 AutoMemorySandboxer<> _(this, &Src0, &Src1); | 915 AutoMemorySandboxer<> _(this, &Src0, &Src1); |
915 Context.insert<typename Traits::Insts::Ucomiss>(Src0, Src1); | 916 Context.insert<typename Traits::Insts::Ucomiss>(Src0, Src1); |
916 } | 917 } |
917 void _ud2() { Context.insert<typename Traits::Insts::UD2>(); } | 918 void _ud2() { Context.insert<typename Traits::Insts::UD2>(); } |
919 void _int3() { Context.insert<typename Traits::Insts::Int3>(); } | |
Jim Stichnoth
2016/04/14 20:03:44
sort, I think
Eric Holk
2016/04/15 15:24:27
Done.
| |
918 void _unlink_bp() { dispatchToConcrete(&Traits::ConcreteTarget::_unlink_bp); } | 920 void _unlink_bp() { dispatchToConcrete(&Traits::ConcreteTarget::_unlink_bp); } |
919 void _xadd(Operand *Dest, Variable *Src, bool Locked) { | 921 void _xadd(Operand *Dest, Variable *Src, bool Locked) { |
920 AutoMemorySandboxer<> _(this, &Dest, &Src); | 922 AutoMemorySandboxer<> _(this, &Dest, &Src); |
921 Context.insert<typename Traits::Insts::Xadd>(Dest, Src, Locked); | 923 Context.insert<typename Traits::Insts::Xadd>(Dest, Src, Locked); |
922 // The xadd exchanges Dest and Src (modifying Src). Model that update with | 924 // The xadd exchanges Dest and Src (modifying Src). Model that update with |
923 // a FakeDef followed by a FakeUse. | 925 // a FakeDef followed by a FakeUse. |
924 Context.insert<InstFakeDef>(Src, llvm::dyn_cast<Variable>(Dest)); | 926 Context.insert<InstFakeDef>(Src, llvm::dyn_cast<Variable>(Dest)); |
925 _set_dest_redefined(); | 927 _set_dest_redefined(); |
926 Context.insert<InstFakeUse>(Src); | 928 Context.insert<InstFakeUse>(Src); |
927 } | 929 } |
(...skipping 198 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 |