| OLD | NEW |
| 1 //===- subzero/src/IceTargetLoweringX8632.h - x86-32 lowering ---*- C++ -*-===// | 1 //===- subzero/src/IceTargetLoweringX8632.h - x86-32 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 // This file declares the TargetLoweringX8632 class, which | 10 // This file declares the TargetLoweringX8632 class, which |
| (...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 223 } | 223 } |
| 224 void _bsf(Variable *Dest, Operand *Src0) { | 224 void _bsf(Variable *Dest, Operand *Src0) { |
| 225 Context.insert(InstX8632Bsf::create(Func, Dest, Src0)); | 225 Context.insert(InstX8632Bsf::create(Func, Dest, Src0)); |
| 226 } | 226 } |
| 227 void _bsr(Variable *Dest, Operand *Src0) { | 227 void _bsr(Variable *Dest, Operand *Src0) { |
| 228 Context.insert(InstX8632Bsr::create(Func, Dest, Src0)); | 228 Context.insert(InstX8632Bsr::create(Func, Dest, Src0)); |
| 229 } | 229 } |
| 230 void _bswap(Variable *SrcDest) { | 230 void _bswap(Variable *SrcDest) { |
| 231 Context.insert(InstX8632Bswap::create(Func, SrcDest)); | 231 Context.insert(InstX8632Bswap::create(Func, SrcDest)); |
| 232 } | 232 } |
| 233 void |
| 234 _bundle_lock(InstBundleLock::Option BundleOption = InstBundleLock::Opt_None) { |
| 235 Context.insert(InstBundleLock::create(Func, BundleOption)); |
| 236 } |
| 237 void _bundle_unlock() { Context.insert(InstBundleUnlock::create(Func)); } |
| 233 void _cbwdq(Variable *Dest, Operand *Src0) { | 238 void _cbwdq(Variable *Dest, Operand *Src0) { |
| 234 Context.insert(InstX8632Cbwdq::create(Func, Dest, Src0)); | 239 Context.insert(InstX8632Cbwdq::create(Func, Dest, Src0)); |
| 235 } | 240 } |
| 236 void _cmov(Variable *Dest, Operand *Src0, CondX86::BrCond Condition) { | 241 void _cmov(Variable *Dest, Operand *Src0, CondX86::BrCond Condition) { |
| 237 Context.insert(InstX8632Cmov::create(Func, Dest, Src0, Condition)); | 242 Context.insert(InstX8632Cmov::create(Func, Dest, Src0, Condition)); |
| 238 } | 243 } |
| 239 void _cmp(Operand *Src0, Operand *Src1) { | 244 void _cmp(Operand *Src0, Operand *Src1) { |
| 240 Context.insert(InstX8632Icmp::create(Func, Src0, Src1)); | 245 Context.insert(InstX8632Icmp::create(Func, Src0, Src1)); |
| 241 } | 246 } |
| 242 void _cmpps(Variable *Dest, Operand *Src0, CondX86::CmppsCond Condition) { | 247 void _cmpps(Variable *Dest, Operand *Src0, CondX86::CmppsCond Condition) { |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 279 } | 284 } |
| 280 void _idiv(Variable *Dest, Operand *Src0, Operand *Src1) { | 285 void _idiv(Variable *Dest, Operand *Src0, Operand *Src1) { |
| 281 Context.insert(InstX8632Idiv::create(Func, Dest, Src0, Src1)); | 286 Context.insert(InstX8632Idiv::create(Func, Dest, Src0, Src1)); |
| 282 } | 287 } |
| 283 void _imul(Variable *Dest, Operand *Src0) { | 288 void _imul(Variable *Dest, Operand *Src0) { |
| 284 Context.insert(InstX8632Imul::create(Func, Dest, Src0)); | 289 Context.insert(InstX8632Imul::create(Func, Dest, Src0)); |
| 285 } | 290 } |
| 286 void _insertps(Variable *Dest, Operand *Src0, Operand *Src1) { | 291 void _insertps(Variable *Dest, Operand *Src0, Operand *Src1) { |
| 287 Context.insert(InstX8632Insertps::create(Func, Dest, Src0, Src1)); | 292 Context.insert(InstX8632Insertps::create(Func, Dest, Src0, Src1)); |
| 288 } | 293 } |
| 294 void _jmp(Operand *Target) { |
| 295 Context.insert(InstX8632Jmp::create(Func, Target)); |
| 296 } |
| 289 void _lea(Variable *Dest, Operand *Src0) { | 297 void _lea(Variable *Dest, Operand *Src0) { |
| 290 Context.insert(InstX8632Lea::create(Func, Dest, Src0)); | 298 Context.insert(InstX8632Lea::create(Func, Dest, Src0)); |
| 291 } | 299 } |
| 292 void _mfence() { Context.insert(InstX8632Mfence::create(Func)); } | 300 void _mfence() { Context.insert(InstX8632Mfence::create(Func)); } |
| 293 // If Dest=nullptr is passed in, then a new variable is created, | 301 // If Dest=nullptr is passed in, then a new variable is created, |
| 294 // marked as infinite register allocation weight, and returned | 302 // marked as infinite register allocation weight, and returned |
| 295 // through the in/out Dest argument. | 303 // through the in/out Dest argument. |
| 296 void _mov(Variable *&Dest, Operand *Src0, | 304 void _mov(Variable *&Dest, Operand *Src0, |
| 297 int32_t RegNum = Variable::NoRegister) { | 305 int32_t RegNum = Variable::NoRegister) { |
| 298 if (Dest == nullptr) | 306 if (Dest == nullptr) |
| (...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 510 }; | 518 }; |
| 511 | 519 |
| 512 template <> void ConstantInteger32::emit(GlobalContext *Ctx) const; | 520 template <> void ConstantInteger32::emit(GlobalContext *Ctx) const; |
| 513 template <> void ConstantInteger64::emit(GlobalContext *Ctx) const; | 521 template <> void ConstantInteger64::emit(GlobalContext *Ctx) const; |
| 514 template <> void ConstantFloat::emit(GlobalContext *Ctx) const; | 522 template <> void ConstantFloat::emit(GlobalContext *Ctx) const; |
| 515 template <> void ConstantDouble::emit(GlobalContext *Ctx) const; | 523 template <> void ConstantDouble::emit(GlobalContext *Ctx) const; |
| 516 | 524 |
| 517 } // end of namespace Ice | 525 } // end of namespace Ice |
| 518 | 526 |
| 519 #endif // SUBZERO_SRC_ICETARGETLOWERINGX8632_H | 527 #endif // SUBZERO_SRC_ICETARGETLOWERINGX8632_H |
| OLD | NEW |