Chromium Code Reviews| 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 |