Changeset 165085 in webkit for trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp
- Timestamp:
- Mar 4, 2014, 5:03:55 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp
r164764 r165085 3803 3803 } 3804 3804 3805 case MiscUse: { 3806 compileMiscStrictEq(node); 3807 return false; 3808 } 3809 3805 3810 case UntypedUse: { 3806 3811 return nonSpeculativeStrictEq(node); … … 4831 4836 } 4832 4837 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 #else 4845 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 #endif 4852 } 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 4833 4863 void SpeculativeJIT::speculate(Node*, Edge edge) 4834 4864 { … … 4892 4922 case OtherUse: 4893 4923 speculateOther(edge); 4924 break; 4925 case MiscUse: 4926 speculateMisc(edge); 4894 4927 break; 4895 4928 default:
Note:
See TracChangeset
for help on using the changeset viewer.