Changeset 38306 in webkit for trunk/JavaScriptCore/VM/CTI.cpp
- Timestamp:
- Nov 11, 2008, 10:31:51 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/VM/CTI.cpp
r38303 r38306 2968 2968 for (unsigned i = 0; i < m_switches.size(); ++i) { 2969 2969 SwitchRecord record = m_switches[i]; 2970 unsigned opcodeIndex = record. m_opcodeIndex;2971 2972 if (record. m_type != SwitchRecord::String) {2973 ASSERT(record. m_type == SwitchRecord::Immediate || record.m_type == SwitchRecord::Character);2974 ASSERT(record. m_jumpTable.m_simpleJumpTable->branchOffsets.size() == record.m_jumpTable.m_simpleJumpTable->ctiOffsets.size());2975 2976 record. m_jumpTable.m_simpleJumpTable->ctiDefault = m_jit.getRelocatedAddress(code, m_labels[opcodeIndex + 3 + record.m_defaultOffset]);2977 2978 for (unsigned j = 0; j < record. m_jumpTable.m_simpleJumpTable->branchOffsets.size(); ++j) {2979 unsigned offset = record. m_jumpTable.m_simpleJumpTable->branchOffsets[j];2980 record. m_jumpTable.m_simpleJumpTable->ctiOffsets[j] = offset ? m_jit.getRelocatedAddress(code, m_labels[opcodeIndex + 3 + offset]) : record.m_jumpTable.m_simpleJumpTable->ctiDefault;2970 unsigned opcodeIndex = record.opcodeIndex; 2971 2972 if (record.type != SwitchRecord::String) { 2973 ASSERT(record.type == SwitchRecord::Immediate || record.type == SwitchRecord::Character); 2974 ASSERT(record.jumpTable.simpleJumpTable->branchOffsets.size() == record.jumpTable.simpleJumpTable->ctiOffsets.size()); 2975 2976 record.jumpTable.simpleJumpTable->ctiDefault = m_jit.getRelocatedAddress(code, m_labels[opcodeIndex + 3 + record.defaultOffset]); 2977 2978 for (unsigned j = 0; j < record.jumpTable.simpleJumpTable->branchOffsets.size(); ++j) { 2979 unsigned offset = record.jumpTable.simpleJumpTable->branchOffsets[j]; 2980 record.jumpTable.simpleJumpTable->ctiOffsets[j] = offset ? m_jit.getRelocatedAddress(code, m_labels[opcodeIndex + 3 + offset]) : record.jumpTable.simpleJumpTable->ctiDefault; 2981 2981 } 2982 2982 } else { 2983 ASSERT(record. m_type == SwitchRecord::String);2984 2985 record. m_jumpTable.m_stringJumpTable->ctiDefault = m_jit.getRelocatedAddress(code, m_labels[opcodeIndex + 3 + record.m_defaultOffset]);2986 2987 StringJumpTable::StringOffsetTable::iterator end = record. m_jumpTable.m_stringJumpTable->offsetTable.end();2988 for (StringJumpTable::StringOffsetTable::iterator it = record. m_jumpTable.m_stringJumpTable->offsetTable.begin(); it != end; ++it) {2983 ASSERT(record.type == SwitchRecord::String); 2984 2985 record.jumpTable.stringJumpTable->ctiDefault = m_jit.getRelocatedAddress(code, m_labels[opcodeIndex + 3 + record.defaultOffset]); 2986 2987 StringJumpTable::StringOffsetTable::iterator end = record.jumpTable.stringJumpTable->offsetTable.end(); 2988 for (StringJumpTable::StringOffsetTable::iterator it = record.jumpTable.stringJumpTable->offsetTable.begin(); it != end; ++it) { 2989 2989 unsigned offset = it->second.branchOffset; 2990 it->second.ctiOffset = offset ? m_jit.getRelocatedAddress(code, m_labels[opcodeIndex + 3 + offset]) : record. m_jumpTable.m_stringJumpTable->ctiDefault;2990 it->second.ctiOffset = offset ? m_jit.getRelocatedAddress(code, m_labels[opcodeIndex + 3 + offset]) : record.jumpTable.stringJumpTable->ctiDefault; 2991 2991 } 2992 2992 }
Note:
See TracChangeset
for help on using the changeset viewer.