Changeset 223715 in webkit for trunk/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp
- Timestamp:
- Oct 19, 2017, 3:23:58 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp
r223614 r223715 3475 3475 3476 3476 if (hasPolyProto && !hasMonoProto) { 3477 LValue prototypeBits = m_out.load64(structure, m_heaps.Structure_prototype); 3478 LValue index = m_out.bitAnd(prototypeBits, m_out.constInt64(UINT_MAX)); 3479 setJSValue(m_out.load64(m_out.baseIndex(m_heaps.properties.atAnyNumber(), object, index, ScaleEight, JSObject::offsetOfInlineStorage()))); 3477 setJSValue(m_out.load64(m_out.baseIndex(m_heaps.properties.atAnyNumber(), object, m_out.constInt64(knownPolyProtoOffset), ScaleEight, JSObject::offsetOfInlineStorage()))); 3480 3478 return; 3481 3479 } … … 3487 3485 LValue prototypeBits = m_out.load64(structure, m_heaps.Structure_prototype); 3488 3486 ValueFromBlock directPrototype = m_out.anchor(prototypeBits); 3489 m_out.branch( isInt32(prototypeBits), unsure(loadPolyProto), unsure(continuation));3487 m_out.branch(m_out.isZero64(prototypeBits), unsure(loadPolyProto), unsure(continuation)); 3490 3488 3491 3489 LBasicBlock lastNext = m_out.appendTo(loadPolyProto, continuation); 3492 LValue index = m_out.bitAnd(prototypeBits, m_out.constInt64(UINT_MAX));3493 3490 ValueFromBlock polyProto = m_out.anchor( 3494 m_out.load64(m_out.baseIndex(m_heaps.properties.atAnyNumber(), object, index, ScaleEight, JSObject::offsetOfInlineStorage())));3491 m_out.load64(m_out.baseIndex(m_heaps.properties.atAnyNumber(), object, m_out.constInt64(knownPolyProtoOffset), ScaleEight, JSObject::offsetOfInlineStorage()))); 3495 3492 m_out.jump(continuation); 3496 3493 … … 9084 9081 LValue prototypeBits = m_out.load64(structure, m_heaps.Structure_prototype); 9085 9082 ValueFromBlock directPrototype = m_out.anchor(prototypeBits); 9086 m_out.branch( isInt32(prototypeBits), unsure(loadPolyProto), unsure(comparePrototype));9083 m_out.branch(m_out.isZero64(prototypeBits), unsure(loadPolyProto), unsure(comparePrototype)); 9087 9084 9088 9085 m_out.appendTo(loadPolyProto, comparePrototype); 9089 LValue index = m_out.bitAnd(prototypeBits, m_out.constInt64(UINT_MAX));9090 9086 ValueFromBlock polyProto = m_out.anchor( 9091 m_out.load64(m_out.baseIndex(m_heaps.properties.atAnyNumber(), value, index, ScaleEight, JSObject::offsetOfInlineStorage())));9087 m_out.load64(m_out.baseIndex(m_heaps.properties.atAnyNumber(), value, m_out.constInt64(knownPolyProtoOffset), ScaleEight, JSObject::offsetOfInlineStorage()))); 9092 9088 m_out.jump(comparePrototype); 9093 9089
Note:
See TracChangeset
for help on using the changeset viewer.