Changeset 51671 in webkit for trunk/JavaScriptCore/jit
- Timestamp:
- Dec 3, 2009, 6:15:18 PM (15 years ago)
- Location:
- trunk/JavaScriptCore/jit
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/jit/JITOpcodes.cpp
r50981 r51671 53 53 54 54 // Checks out okay! - get the length from the Ustring. 55 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSString, m_value) + OBJECT_OFFSETOF(UString, m_rep)), regT2); 56 load32(Address(regT2, OBJECT_OFFSETOF(UString::Rep, len)), regT2); 55 load32(Address(regT0, OBJECT_OFFSETOF(JSString, m_length)), regT2); 57 56 58 57 Jump string_failureCases3 = branch32(Above, regT2, Imm32(INT_MAX)); … … 1594 1593 1595 1594 // Checks out okay! - get the length from the Ustring. 1596 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSString, m_value) + OBJECT_OFFSETOF(UString, m_rep)), regT0); 1597 load32(Address(regT0, OBJECT_OFFSETOF(UString::Rep, len)), regT0); 1595 load32(Address(regT0, OBJECT_OFFSETOF(JSString, m_length)), regT0); 1598 1596 1599 1597 Jump string_failureCases3 = branch32(Above, regT0, Imm32(JSImmediate::maxImmediateInt)); -
trunk/JavaScriptCore/jit/JITStubs.cpp
r51141 r51671 1044 1044 bool leftIsString = v1.isString(); 1045 1045 if (leftIsString && v2.isString()) { 1046 if (asString(v1)->isRope() || asString(v2)->isRope()) { 1047 RefPtr<JSString::Rope> rope = JSString::Rope::create(2); 1048 rope->initializeFiber(0, asString(v1)); 1049 rope->initializeFiber(1, asString(v2)); 1050 JSGlobalData* globalData = &callFrame->globalData(); 1051 return JSValue::encode(new (globalData) JSString(globalData, rope.release())); 1052 } 1053 1046 1054 RefPtr<UString::Rep> value = concatenate(asString(v1)->value().rep(), asString(v2)->value().rep()); 1047 1055 if (UNLIKELY(!value)) {
Note:
See TracChangeset
for help on using the changeset viewer.