Changeset 165098 in webkit for trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp
- Timestamp:
- Mar 4, 2014, 11:25:02 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp
r165085 r165098 3803 3803 } 3804 3804 3805 case MiscUse: {3806 compileMiscStrictEq(node);3807 return false;3808 }3809 3810 3805 case UntypedUse: { 3811 3806 return nonSpeculativeStrictEq(node); … … 4836 4831 } 4837 4832 4838 void SpeculativeJIT::speculateMisc(Edge edge, JSValueRegs regs)4839 {4840 #if USE(JSVALUE64)4841 typeCheck(4842 regs, edge, SpecMisc,4843 m_jit.branch64(MacroAssembler::Above, regs.gpr(), MacroAssembler::TrustedImm64(TagBitTypeOther | TagBitBool | TagBitUndefined)));4844 #else4845 typeCheck(4846 regs, edge, SpecMisc | SpecInt32,4847 m_jit.branch32(MacroAssembler::Equal, regs.tagGPR(), MacroAssembler::TrustedImm32(JSValue::Int32Tag)));4848 typeCheck(4849 regs, edge, SpecMisc,4850 m_jit.branch32(MacroAssembler::Below, regs.tagGPR(), MacroAssembler::TrustedImm32(JSValue::UndefinedTag)));4851 #endif4852 }4853 4854 void SpeculativeJIT::speculateMisc(Edge edge)4855 {4856 if (!needsTypeCheck(edge, SpecMisc))4857 return;4858 4859 JSValueOperand operand(this, edge, ManualOperandSpeculation);4860 speculateMisc(edge, operand.jsValueRegs());4861 }4862 4863 4833 void SpeculativeJIT::speculate(Node*, Edge edge) 4864 4834 { … … 4922 4892 case OtherUse: 4923 4893 speculateOther(edge); 4924 break;4925 case MiscUse:4926 speculateMisc(edge);4927 4894 break; 4928 4895 default:
Note:
See TracChangeset
for help on using the changeset viewer.