Changeset 37285 in webkit for trunk/JavaScriptCore/VM/CTI.cpp
- Timestamp:
- Oct 4, 2008, 12:15:33 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/VM/CTI.cpp
r37264 r37285 1965 1965 break; 1966 1966 } 1967 case op_ init: {1967 case op_enter: { 1968 1968 // Even though CTI doesn't use them, we initialize our constant 1969 1969 // registers to zap stale pointers, to avoid unnecessarily prolonging … … 1976 1976 break; 1977 1977 } 1978 case op_ init_activation: {1978 case op_enter_with_activation: { 1979 1979 emitCall(i, Machine::cti_op_push_activation); 1980 1980 … … 1992 1992 emitCall(i, Machine::cti_op_init_arguments); 1993 1993 i += 1; 1994 break; 1995 } 1996 case op_convert_this: { 1997 emitGetArg(instruction[i + 1].u.operand, X86::eax); 1998 1999 emitJumpSlowCaseIfNotJSCell(X86::eax, i); 2000 m_jit.movl_mr(OBJECT_OFFSET(JSCell, m_structureID), X86::eax, X86::edx); 2001 m_jit.testl_i32m(NeedsThisConversion, OBJECT_OFFSET(StructureID, m_typeInfo.m_flags), X86::edx); 2002 m_slowCases.append(SlowCaseEntry(m_jit.emitUnlinkedJnz(), i)); 2003 2004 i += 2; 1994 2005 break; 1995 2006 } … … 2038 2049 unsigned i = iter->to; 2039 2050 switch (m_machine->getOpcodeID(instruction[i].u.opcode)) { 2051 case op_convert_this: { 2052 m_jit.link(iter->from, m_jit.label()); 2053 m_jit.link((++iter)->from, m_jit.label()); 2054 emitPutArg(X86::eax, 0); 2055 emitCall(i, Machine::cti_op_convert_this); 2056 emitPutResult(instruction[i + 1].u.operand); 2057 i += 2; 2058 break; 2059 } 2040 2060 case op_add: { 2041 2061 unsigned dst = instruction[i + 1].u.operand;
Note:
See TracChangeset
for help on using the changeset viewer.