Changeset 80938 in webkit
- Timestamp:
- Mar 12, 2011 7:54:17 AM (13 years ago)
- Location:
- trunk/Source
- Files:
-
- 33 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r80919 r80938 1 2011-03-12 Sheriff Bot <webkit.review.bot@gmail.com> 2 3 Unreviewed, rolling out r80919. 4 http://trac.webkit.org/changeset/80919 5 https://bugs.webkit.org/show_bug.cgi?id=56251 6 7 all windows bots failed to compile this change (Requested by 8 loislo on #webkit). 9 10 * JavaScriptCore.xcodeproj/project.pbxproj: 11 * bytecode/StructureStubInfo.cpp: 12 * interpreter/Register.h: 13 (JSC::Register::withInt): 14 (JSC::Register::withCallee): 15 (JSC::Register::operator=): 16 (JSC::Register::i): 17 (JSC::Register::activation): 18 (JSC::Register::function): 19 (JSC::Register::propertyNameIterator): 20 (JSC::Register::scopeChain): 21 * jit/JIT.h: 22 * jit/JITCall.cpp: 23 (JSC::JIT::compileOpCallInitializeCallFrame): 24 (JSC::JIT::compileOpCallVarargs): 25 (JSC::JIT::compileOpCall): 26 * jit/JITCall32_64.cpp: 27 (JSC::JIT::compileOpCallInitializeCallFrame): 28 (JSC::JIT::compileOpCallVarargs): 29 (JSC::JIT::compileOpCall): 30 (JSC::JIT::compileOpCallSlowCase): 31 * jit/JITInlineMethods.h: 32 (JSC::JIT::emitPutToCallFrameHeader): 33 * jit/JITOpcodes.cpp: 34 (JSC::JIT::privateCompileCTINativeCall): 35 (JSC::JIT::emit_op_get_pnames): 36 (JSC::JIT::emit_op_next_pname): 37 (JSC::JIT::emit_op_load_varargs): 38 (JSC::JIT::emitSlow_op_load_varargs): 39 * jit/JITOpcodes32_64.cpp: 40 (JSC::JIT::privateCompileCTINativeCall): 41 (JSC::JIT::emit_op_get_pnames): 42 (JSC::JIT::emit_op_next_pname): 43 * jit/JSInterfaceJIT.h: 44 (JSC::JSInterfaceJIT::payloadFor): 45 * jit/SpecializedThunkJIT.h: 46 (JSC::SpecializedThunkJIT::returnJSValue): 47 (JSC::SpecializedThunkJIT::returnDouble): 48 (JSC::SpecializedThunkJIT::returnInt32): 49 (JSC::SpecializedThunkJIT::returnJSCell): 50 * runtime/ArgList.cpp: 51 * runtime/DateConversion.cpp: 52 * runtime/GCActivityCallbackCF.cpp: 53 * runtime/Identifier.cpp: 54 * runtime/JSActivation.h: 55 (JSC::asActivation): 56 * runtime/JSLock.cpp: 57 * runtime/JSNumberCell.cpp: 58 * runtime/JSObject.h: 59 * runtime/JSPropertyNameIterator.h: 60 * runtime/JSValue.h: 61 * runtime/JSZombie.cpp: 62 * runtime/MarkedBlock.cpp: 63 * runtime/MarkedSpace.cpp: 64 * runtime/PropertyNameArray.cpp: 65 * runtime/ScopeChain.h: 66 (JSC::ExecState::globalThisValue): 67 * wtf/DateMath.cpp: 68 1 69 2011-03-11 Oliver Hunt <oliver@apple.com> 2 70 -
trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
r80919 r80938 2545 2545 buildConfigurationList = 149C277108902AFE008A9EFC /* Build configuration list for PBXProject "JavaScriptCore" */; 2546 2546 compatibilityVersion = "Xcode 3.1"; 2547 developmentRegion = English;2548 2547 hasScannedForEncodings = 1; 2549 2548 knownRegions = ( -
trunk/Source/JavaScriptCore/bytecode/StructureStubInfo.cpp
r80919 r80938 27 27 #include "StructureStubInfo.h" 28 28 29 #include "JSObject.h"30 29 #include "ScopeChain.h" 31 30 -
trunk/Source/JavaScriptCore/interpreter/Register.h
r80919 r80938 55 55 Register& operator=(const JSValue&); 56 56 JSValue jsValue() const; 57 57 58 Register& operator=(JSActivation*); 58 59 Register& operator=(CallFrame*); 59 60 Register& operator=(CodeBlock*); 61 Register& operator=(JSPropertyNameIterator*); 60 62 Register& operator=(ScopeChainNode*); 61 63 Register& operator=(Instruction*); … … 72 74 static Register withInt(int32_t i) 73 75 { 74 Register r = jsNumber(i); 76 Register r; 77 r.u.i = i; 75 78 return r; 76 79 } 77 80 78 static inline Register withCallee(JSObject* callee); 81 static Register withCallee(JSObject* callee) 82 { 83 Register r; 84 r.u.function = callee; 85 return r; 86 } 79 87 80 88 private: 81 89 union { 90 int32_t i; 82 91 EncodedJSValue value; 92 93 JSActivation* activation; 83 94 CallFrame* callFrame; 84 95 CodeBlock* codeBlock; 96 JSObject* function; 97 JSPropertyNameIterator* propertyNameIterator; 98 ScopeChainNode* scopeChain; 85 99 Instruction* vPC; 86 100 } u; … … 118 132 // Interpreter functions 119 133 134 ALWAYS_INLINE Register& Register::operator=(JSActivation* activation) 135 { 136 u.activation = activation; 137 return *this; 138 } 139 120 140 ALWAYS_INLINE Register& Register::operator=(CallFrame* callFrame) 121 141 { … … 136 156 } 137 157 158 ALWAYS_INLINE Register& Register::operator=(ScopeChainNode* scopeChain) 159 { 160 u.scopeChain = scopeChain; 161 return *this; 162 } 163 164 ALWAYS_INLINE Register& Register::operator=(JSPropertyNameIterator* propertyNameIterator) 165 { 166 u.propertyNameIterator = propertyNameIterator; 167 return *this; 168 } 169 138 170 ALWAYS_INLINE int32_t Register::i() const 139 171 { 140 return jsValue().asInt32(); 141 } 142 172 return u.i; 173 } 174 175 ALWAYS_INLINE JSActivation* Register::activation() const 176 { 177 return u.activation; 178 } 179 143 180 ALWAYS_INLINE CallFrame* Register::callFrame() const 144 181 { … … 150 187 return u.codeBlock; 151 188 } 152 189 190 ALWAYS_INLINE JSObject* Register::function() const 191 { 192 return u.function; 193 } 194 195 ALWAYS_INLINE JSPropertyNameIterator* Register::propertyNameIterator() const 196 { 197 return u.propertyNameIterator; 198 } 199 200 ALWAYS_INLINE ScopeChainNode* Register::scopeChain() const 201 { 202 return u.scopeChain; 203 } 204 153 205 ALWAYS_INLINE Instruction* Register::vPC() const 154 206 { -
trunk/Source/JavaScriptCore/jit/JIT.h
r80919 r80938 854 854 855 855 void emitPutToCallFrameHeader(RegisterID from, RegisterFile::CallFrameHeaderEntry entry); 856 void emitPutCellToCallFrameHeader(RegisterID from, RegisterFile::CallFrameHeaderEntry);857 void emitPutIntToCallFrameHeader(RegisterID from, RegisterFile::CallFrameHeaderEntry);858 856 void emitPutImmediateToCallFrameHeader(void* value, RegisterFile::CallFrameHeaderEntry entry); 859 857 void emitGetFromCallFrameHeaderPtr(RegisterFile::CallFrameHeaderEntry entry, RegisterID to, RegisterID from = callFrameRegister); -
trunk/Source/JavaScriptCore/jit/JITCall.cpp
r80919 r80938 49 49 void JIT::compileOpCallInitializeCallFrame() 50 50 { 51 // regT0 holds callee, regT1 holds argCount 52 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSFunction, m_scopeChain)), regT3); // scopeChain 53 emitPutIntToCallFrameHeader(regT1, RegisterFile::ArgumentCount); 54 emitPutCellToCallFrameHeader(regT0, RegisterFile::Callee); 55 emitPutCellToCallFrameHeader(regT3, RegisterFile::ScopeChain); 51 store32(regT1, Address(callFrameRegister, RegisterFile::ArgumentCount * static_cast<int>(sizeof(Register)))); 52 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSFunction, m_scopeChain)), regT3); // newScopeChain 53 storePtr(regT0, Address(callFrameRegister, RegisterFile::Callee * static_cast<int>(sizeof(Register)))); 54 storePtr(regT3, Address(callFrameRegister, RegisterFile::ScopeChain * static_cast<int>(sizeof(Register)))); 56 55 } 57 56 … … 69 68 70 69 emitGetVirtualRegister(argCountRegister, regT1); 71 emitFastArithImmToInt(regT1);72 70 emitGetVirtualRegister(callee, regT0); 73 71 addPtr(Imm32(registerOffset), regT1, regT2); … … 202 200 203 201 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSFunction, m_scopeChain)), regT1); // newScopeChain 204 205 store32(Imm32(Int32Tag), intTagFor(registerOffset + RegisterFile::ArgumentCount)); 206 store32(Imm32(argCount), intPayloadFor(registerOffset + RegisterFile::ArgumentCount)); 202 203 store32(Imm32(argCount), Address(callFrameRegister, (registerOffset + RegisterFile::ArgumentCount) * static_cast<int>(sizeof(Register)))); 207 204 storePtr(callFrameRegister, Address(callFrameRegister, (registerOffset + RegisterFile::CallerFrame) * static_cast<int>(sizeof(Register)))); 208 205 storePtr(regT0, Address(callFrameRegister, (registerOffset + RegisterFile::Callee) * static_cast<int>(sizeof(Register)))); -
trunk/Source/JavaScriptCore/jit/JITCall32_64.cpp
r80919 r80938 50 50 { 51 51 // regT0 holds callee, regT1 holds argCount 52 store32(regT1, Address(callFrameRegister, RegisterFile::ArgumentCount * static_cast<int>(sizeof(Register)))); 52 53 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSFunction, m_scopeChain)), regT3); // scopeChain 53 emitPutIntToCallFrameHeader(regT1, RegisterFile::ArgumentCount); 54 emitPutCellToCallFrameHeader(regT0, RegisterFile::Callee); 55 emitPutCellToCallFrameHeader(regT3, RegisterFile::ScopeChain); 54 storePtr(regT0, Address(callFrameRegister, RegisterFile::Callee * static_cast<int>(sizeof(Register)))); // callee 55 storePtr(regT3, Address(callFrameRegister, RegisterFile::ScopeChain * static_cast<int>(sizeof(Register)))); // scopeChain 56 56 } 57 57 … … 78 78 mul32(Imm32(sizeof(Register)), regT3, regT3); 79 79 addPtr(callFrameRegister, regT3); 80 store32(Imm32(JSValue::CellTag), tagFor(RegisterFile::CallerFrame, regT3)); 81 storePtr(callFrameRegister, payloadFor(RegisterFile::CallerFrame, regT3)); 80 storePtr(callFrameRegister, Address(regT3, RegisterFile::CallerFrame * static_cast<int>(sizeof(Register)))); 82 81 move(regT3, callFrameRegister); 83 82 … … 210 209 211 210 // Speculatively roll the callframe, assuming argCount will match the arity. 212 store32(Imm32(JSValue::CellTag), tagFor(RegisterFile::CallerFrame + registerOffset, callFrameRegister)); 213 storePtr(callFrameRegister, payloadFor(RegisterFile::CallerFrame + registerOffset, callFrameRegister)); 211 storePtr(callFrameRegister, Address(callFrameRegister, (RegisterFile::CallerFrame + registerOffset) * static_cast<int>(sizeof(Register)))); 214 212 addPtr(Imm32(registerOffset * static_cast<int>(sizeof(Register))), callFrameRegister); 215 213 move(Imm32(argCount), regT1); … … 283 281 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSFunction, m_scopeChain)), regT2); 284 282 285 store32(Imm32(JSValue::Int32Tag), tagFor(registerOffset + RegisterFile::ArgumentCount)); 286 store32(Imm32(argCount), payloadFor(registerOffset + RegisterFile::ArgumentCount)); 287 storePtr(callFrameRegister, payloadFor(RegisterFile::CallerFrame + registerOffset, callFrameRegister)); 283 store32(Imm32(argCount), Address(callFrameRegister, (registerOffset + RegisterFile::ArgumentCount) * static_cast<int>(sizeof(Register)))); 284 storePtr(callFrameRegister, Address(callFrameRegister, (registerOffset + RegisterFile::CallerFrame) * static_cast<int>(sizeof(Register)))); 288 285 emitStore(registerOffset + RegisterFile::Callee, regT1, regT0); 289 store32(Imm32(JSValue::CellTag), tagFor(registerOffset + RegisterFile::ScopeChain)); 290 store32(regT2, payloadFor(registerOffset + RegisterFile::ScopeChain)); 286 storePtr(regT2, Address(callFrameRegister, (registerOffset + RegisterFile::ScopeChain) * static_cast<int>(sizeof(Register)))); 291 287 addPtr(Imm32(registerOffset * sizeof(Register)), callFrameRegister); 292 288 … … 314 310 315 311 // Speculatively roll the callframe, assuming argCount will match the arity. 316 store32(Imm32(JSValue::CellTag), tagFor(RegisterFile::CallerFrame + registerOffset, callFrameRegister)); 317 storePtr(callFrameRegister, payloadFor(RegisterFile::CallerFrame + registerOffset, callFrameRegister)); 312 storePtr(callFrameRegister, Address(callFrameRegister, (RegisterFile::CallerFrame + registerOffset) * static_cast<int>(sizeof(Register)))); 318 313 addPtr(Imm32(registerOffset * static_cast<int>(sizeof(Register))), callFrameRegister); 319 314 move(Imm32(argCount), regT1); -
trunk/Source/JavaScriptCore/jit/JITInlineMethods.h
r80919 r80938 53 53 ALWAYS_INLINE void JIT::emitPutToCallFrameHeader(RegisterID from, RegisterFile::CallFrameHeaderEntry entry) 54 54 { 55 storePtr(from, payloadFor(entry, callFrameRegister)); 56 } 57 58 ALWAYS_INLINE void JIT::emitPutCellToCallFrameHeader(RegisterID from, RegisterFile::CallFrameHeaderEntry entry) 59 { 60 #if USE(JSVALUE32_64) 61 store32(Imm32(JSValue::CellTag), tagFor(entry, callFrameRegister)); 62 #endif 63 storePtr(from, payloadFor(entry, callFrameRegister)); 64 } 65 66 ALWAYS_INLINE void JIT::emitPutIntToCallFrameHeader(RegisterID from, RegisterFile::CallFrameHeaderEntry entry) 67 { 68 store32(Imm32(Int32Tag), intTagFor(entry, callFrameRegister)); 69 store32(from, intPayloadFor(entry, callFrameRegister)); 55 storePtr(from, Address(callFrameRegister, entry * sizeof(Register))); 70 56 } 71 57 -
trunk/Source/JavaScriptCore/jit/JITOpcodes.cpp
r80919 r80938 200 200 emitGetFromCallFrameHeaderPtr(RegisterFile::CallerFrame, regT0); 201 201 emitGetFromCallFrameHeaderPtr(RegisterFile::ScopeChain, regT1, regT0); 202 emitPut CellToCallFrameHeader(regT1, RegisterFile::ScopeChain);202 emitPutToCallFrameHeader(regT1, RegisterFile::ScopeChain); 203 203 204 204 peek(regT1); … … 223 223 emitGetFromCallFrameHeaderPtr(RegisterFile::CallerFrame, regT2); 224 224 emitGetFromCallFrameHeaderPtr(RegisterFile::ScopeChain, regT1, regT2); 225 emitPut CellToCallFrameHeader(regT1, RegisterFile::ScopeChain);225 emitPutToCallFrameHeader(regT1, RegisterFile::ScopeChain); 226 226 227 227 preserveReturnAddressAfterCall(regT3); // Callee preserved … … 244 244 emitGetFromCallFrameHeaderPtr(RegisterFile::CallerFrame, regT0); 245 245 emitGetFromCallFrameHeaderPtr(RegisterFile::ScopeChain, regT1, regT0); 246 emitPut CellToCallFrameHeader(regT1, RegisterFile::ScopeChain);246 emitPutToCallFrameHeader(regT1, RegisterFile::ScopeChain); 247 247 248 248 preserveReturnAddressAfterCall(regT3); // Callee preserved … … 903 903 getPnamesStubCall.call(dst); 904 904 load32(Address(regT0, OBJECT_OFFSETOF(JSPropertyNameIterator, m_jsStringsSize)), regT3); 905 storePtr(tagTypeNumberRegister, payloadFor(i)); 906 store32(Imm32(Int32Tag), intTagFor(size)); 907 store32(regT3, intPayloadFor(size)); 905 store32(Imm32(0), addressFor(i)); 906 store32(regT3, addressFor(size)); 908 907 Jump end = jump(); 909 908 … … 933 932 934 933 Label begin(this); 935 load32( intPayloadFor(i), regT0);936 Jump end = branch32(Equal, regT0, intPayloadFor(size));934 load32(addressFor(i), regT0); 935 Jump end = branch32(Equal, regT0, addressFor(size)); 937 936 938 937 // Grab key @ i … … 946 945 // Increment i 947 946 add32(Imm32(1), regT0); 948 store32(regT0, intPayloadFor(i));947 store32(regT0, addressFor(i)); 949 948 950 949 // Verify that i is valid: … … 1691 1690 // Load arg count into regT0 1692 1691 emitGetFromCallFrameHeader32(RegisterFile::ArgumentCount, regT0); 1693 store32(Imm32(Int32Tag), intTagFor(argCountDst)); 1694 store32(regT0, intPayloadFor(argCountDst)); 1692 storePtr(regT0, addressFor(argCountDst)); 1695 1693 Jump endBranch = branch32(Equal, regT0, Imm32(1)); 1696 1694 … … 1730 1728 stubCall.addArgument(Imm32(argsOffset)); 1731 1729 stubCall.call(); 1732 1733 store32(Imm32(Int32Tag), intTagFor(argCountDst)); 1734 store32(returnValueRegister, intPayloadFor(argCountDst)); 1730 // Stores a naked int32 in the register file. 1731 store32(returnValueRegister, Address(callFrameRegister, argCountDst * sizeof(Register))); 1735 1732 } 1736 1733 -
trunk/Source/JavaScriptCore/jit/JITOpcodes32_64.cpp
r80919 r80938 206 206 emitGetFromCallFrameHeaderPtr(RegisterFile::CallerFrame, regT0); 207 207 emitGetFromCallFrameHeaderPtr(RegisterFile::ScopeChain, regT1, regT0); 208 emitPut CellToCallFrameHeader(regT1, RegisterFile::ScopeChain);208 emitPutToCallFrameHeader(regT1, RegisterFile::ScopeChain); 209 209 210 210 peek(regT1); … … 230 230 emitGetFromCallFrameHeaderPtr(RegisterFile::CallerFrame, regT2); 231 231 emitGetFromCallFrameHeaderPtr(RegisterFile::ScopeChain, regT1, regT2); 232 emitPut CellToCallFrameHeader(regT1, RegisterFile::ScopeChain);232 emitPutToCallFrameHeader(regT1, RegisterFile::ScopeChain); 233 233 234 234 preserveReturnAddressAfterCall(regT3); // Callee preserved … … 252 252 emitGetFromCallFrameHeaderPtr(RegisterFile::CallerFrame, regT0); 253 253 emitGetFromCallFrameHeaderPtr(RegisterFile::ScopeChain, regT1, regT0); 254 emitPut CellToCallFrameHeader(regT1, RegisterFile::ScopeChain);254 emitPutToCallFrameHeader(regT1, RegisterFile::ScopeChain); 255 255 256 256 preserveReturnAddressAfterCall(regT3); // Callee preserved … … 322 322 emitGetFromCallFrameHeaderPtr(RegisterFile::CallerFrame, regT0); 323 323 emitGetFromCallFrameHeaderPtr(RegisterFile::ScopeChain, regT1, regT0); 324 emitPut CellToCallFrameHeader(regT1, RegisterFile::ScopeChain);324 emitPutToCallFrameHeader(regT1, RegisterFile::ScopeChain); 325 325 326 326 peek(regT1); … … 345 345 emitGetFromCallFrameHeaderPtr(RegisterFile::CallerFrame, regT2); 346 346 emitGetFromCallFrameHeaderPtr(RegisterFile::ScopeChain, regT1, regT2); 347 emitPut CellToCallFrameHeader(regT1, RegisterFile::ScopeChain);347 emitPutToCallFrameHeader(regT1, RegisterFile::ScopeChain); 348 348 349 349 preserveReturnAddressAfterCall(regT3); // Callee preserved … … 368 368 emitGetFromCallFrameHeaderPtr(RegisterFile::CallerFrame, regT0); 369 369 emitGetFromCallFrameHeaderPtr(RegisterFile::ScopeChain, regT1, regT0); 370 emitPut CellToCallFrameHeader(regT1, RegisterFile::ScopeChain);370 emitPutToCallFrameHeader(regT1, RegisterFile::ScopeChain); 371 371 372 372 preserveReturnAddressAfterCall(regT3); // Callee preserved … … 1277 1277 getPnamesStubCall.call(dst); 1278 1278 load32(Address(regT0, OBJECT_OFFSETOF(JSPropertyNameIterator, m_jsStringsSize)), regT3); 1279 store32(Imm32(Int32Tag), intTagFor(i)); 1280 store32(Imm32(0), intPayloadFor(i)); 1281 store32(Imm32(Int32Tag), intTagFor(size)); 1282 store32(regT3, payloadFor(size)); 1279 store32(Imm32(0), addressFor(i)); 1280 store32(regT3, addressFor(size)); 1283 1281 Jump end = jump(); 1284 1282 … … 1306 1304 1307 1305 Label begin(this); 1308 load32( intPayloadFor(i), regT0);1309 Jump end = branch32(Equal, regT0, intPayloadFor(size));1306 load32(addressFor(i), regT0); 1307 Jump end = branch32(Equal, regT0, addressFor(size)); 1310 1308 1311 1309 // Grab key @ i 1312 loadPtr( payloadFor(it), regT1);1310 loadPtr(addressFor(it), regT1); 1313 1311 loadPtr(Address(regT1, OBJECT_OFFSETOF(JSPropertyNameIterator, m_jsStrings)), regT2); 1314 1312 load32(BaseIndex(regT2, regT0, TimesEight), regT2); … … 1318 1316 // Increment i 1319 1317 add32(Imm32(1), regT0); 1320 store32(regT0, intPayloadFor(i));1318 store32(regT0, addressFor(i)); 1321 1319 1322 1320 // Verify that i is valid: 1323 loadPtr( payloadFor(base), regT0);1321 loadPtr(addressFor(base), regT0); 1324 1322 1325 1323 // Test base's structure -
trunk/Source/JavaScriptCore/jit/JSInterfaceJIT.h
r80919 r80938 30 30 #include "JITStubs.h" 31 31 #include "JSImmediate.h" 32 #include "JSValue.h"33 32 #include "MacroAssembler.h" 34 33 #include "RegisterFile.h" … … 159 158 #endif 160 159 161 #if USE(JSVALUE32_64)162 static const unsigned Int32Tag = JSValue::Int32Tag;163 #else164 static const unsigned Int32Tag = JSImmediate::TagTypeNumber >> 32;165 #endif166 160 inline Jump emitLoadJSCell(unsigned virtualRegisterIndex, RegisterID payload); 167 161 inline Jump emitLoadInt32(unsigned virtualRegisterIndex, RegisterID dst); … … 180 174 181 175 inline Address payloadFor(unsigned index, RegisterID base = callFrameRegister); 182 inline Address intPayloadFor(unsigned index, RegisterID base = callFrameRegister);183 inline Address intTagFor(unsigned index, RegisterID base = callFrameRegister);184 176 inline Address addressFor(unsigned index, RegisterID base = callFrameRegister); 185 177 }; … … 221 213 ASSERT(static_cast<int>(virtualRegisterIndex) < FirstConstantRegisterIndex); 222 214 return Address(base, (virtualRegisterIndex * sizeof(Register)) + OBJECT_OFFSETOF(JSValue, u.asBits.payload)); 223 }224 225 inline JSInterfaceJIT::Address JSInterfaceJIT::intPayloadFor(unsigned virtualRegisterIndex, RegisterID base)226 {227 return payloadFor(virtualRegisterIndex, base);228 }229 230 inline JSInterfaceJIT::Address JSInterfaceJIT::intTagFor(unsigned virtualRegisterIndex, RegisterID base)231 {232 return tagFor(virtualRegisterIndex, base);233 215 } 234 216 … … 298 280 return addressFor(virtualRegisterIndex, base); 299 281 } 300 301 inline JSInterfaceJIT::Address JSInterfaceJIT::intPayloadFor(unsigned virtualRegisterIndex, RegisterID base)302 {303 ASSERT(static_cast<int>(virtualRegisterIndex) < FirstConstantRegisterIndex);304 return Address(base, (virtualRegisterIndex * sizeof(Register)) + OBJECT_OFFSETOF(EncodedValueDescriptor, asBits.payload));305 }306 inline JSInterfaceJIT::Address JSInterfaceJIT::intTagFor(unsigned virtualRegisterIndex, RegisterID base)307 {308 ASSERT(static_cast<int>(virtualRegisterIndex) < FirstConstantRegisterIndex);309 return Address(base, (virtualRegisterIndex * sizeof(Register)) + OBJECT_OFFSETOF(EncodedValueDescriptor, asBits.tag));310 }311 282 #endif 312 283 -
trunk/Source/JavaScriptCore/jit/SpecializedThunkJIT.h
r80919 r80938 88 88 if (src != regT0) 89 89 move(src, regT0); 90 loadPtr( payloadFor(RegisterFile::CallerFrame, callFrameRegister), callFrameRegister);90 loadPtr(Address(callFrameRegister, RegisterFile::CallerFrame * (int)sizeof(Register)), callFrameRegister); 91 91 ret(); 92 92 } … … 102 102 loadPtr(Address(stackPointerRegister, OBJECT_OFFSETOF(JSValue, u.asBits.payload) - sizeof(double)), regT0); 103 103 #endif 104 loadPtr( payloadFor(RegisterFile::CallerFrame, callFrameRegister), callFrameRegister);104 loadPtr(Address(callFrameRegister, RegisterFile::CallerFrame * (int)sizeof(Register)), callFrameRegister); 105 105 ret(); 106 106 } … … 111 111 move(src, regT0); 112 112 tagReturnAsInt32(); 113 loadPtr( payloadFor(RegisterFile::CallerFrame, callFrameRegister), callFrameRegister);113 loadPtr(Address(callFrameRegister, RegisterFile::CallerFrame * (int)sizeof(Register)), callFrameRegister); 114 114 ret(); 115 115 } … … 120 120 move(src, regT0); 121 121 tagReturnAsJSCell(); 122 loadPtr( payloadFor(RegisterFile::CallerFrame, callFrameRegister), callFrameRegister);122 loadPtr(Address(callFrameRegister, RegisterFile::CallerFrame * (int)sizeof(Register)), callFrameRegister); 123 123 ret(); 124 124 } -
trunk/Source/JavaScriptCore/runtime/ArgList.cpp
r80919 r80938 24 24 #include "JSValue.h" 25 25 #include "JSCell.h" 26 #include "JSObject.h"27 26 #include "ScopeChain.h" 28 27 -
trunk/Source/JavaScriptCore/runtime/DateConversion.cpp
r80919 r80938 45 45 46 46 #include "CallFrame.h" 47 #include "JSObject.h"48 47 #include "ScopeChain.h" 49 48 #include "UString.h" -
trunk/Source/JavaScriptCore/runtime/GCActivityCallbackCF.cpp
r80919 r80938 34 34 #include "JSGlobalData.h" 35 35 #include "JSLock.h" 36 #include "JSObject.h"37 36 #include "ScopeChain.h" 38 37 #include <wtf/RetainPtr.h> -
trunk/Source/JavaScriptCore/runtime/Identifier.cpp
r80919 r80938 23 23 24 24 #include "CallFrame.h" 25 #include "JSObject.h"26 25 #include "NumericStrings.h" 27 26 #include "ScopeChain.h" -
trunk/Source/JavaScriptCore/runtime/JSActivation.h
r80919 r80938 92 92 return static_cast<JSActivation*>(asObject(value)); 93 93 } 94 95 ALWAYS_INLINE JSActivation* Register::activation() const96 {97 return asActivation(jsValue());98 }99 94 100 95 } // namespace JSC -
trunk/Source/JavaScriptCore/runtime/JSLock.cpp
r80919 r80938 24 24 #include "Heap.h" 25 25 #include "CallFrame.h" 26 #include "JSObject.h"27 26 #include "ScopeChain.h" 28 27 -
trunk/Source/JavaScriptCore/runtime/JSNumberCell.cpp
r80919 r80938 23 23 #include "config.h" 24 24 #include "JSNumberCell.h" 25 #include "JSObject.h"26 25 #include "ScopeChain.h" 27 26 -
trunk/Source/JavaScriptCore/runtime/JSObject.h
r80919 r80938 841 841 } 842 842 843 ALWAYS_INLINE JSObject* Register::function() const844 {845 if (!jsValue())846 return 0;847 return asObject(jsValue());848 }849 850 ALWAYS_INLINE Register Register::withCallee(JSObject* callee)851 {852 Register r;853 r = JSValue(callee);854 return r;855 }856 857 843 } // namespace JSC 858 844 -
trunk/Source/JavaScriptCore/runtime/JSPropertyNameIterator.h
r80919 r80938 107 107 } 108 108 109 ALWAYS_INLINE JSPropertyNameIterator* Register::propertyNameIterator() const110 {111 return static_cast<JSPropertyNameIterator*>(jsValue().asCell());112 }113 114 109 } // namespace JSC 115 110 -
trunk/Source/JavaScriptCore/runtime/JSValue.h
r80919 r80938 53 53 enum PreferredPrimitiveType { NoPreference, PreferNumber, PreferString }; 54 54 55 56 55 #if USE(JSVALUE32_64) 57 56 typedef int64_t EncodedJSValue; … … 59 58 typedef void* EncodedJSValue; 60 59 #endif 61 62 union EncodedValueDescriptor {63 EncodedJSValue asEncodedJSValue;64 #if USE(JSVALUE32_64)65 double asDouble;66 #elif USE(JSVALUE64)67 JSCell* ptr;68 #endif69 70 #if CPU(BIG_ENDIAN)71 struct {72 int32_t tag;73 int32_t payload;74 } asBits;75 #else76 struct {77 int32_t payload;78 int32_t tag;79 } asBits;80 #endif81 };82 60 83 61 double nonInlineNaN(); … … 262 240 263 241 enum { LowestTag = DeletedValueTag }; 264 242 265 243 uint32_t tag() const; 266 244 int32_t payload() const; 267 245 268 EncodedValueDescriptor u; 269 #elif USE(JSVALUE64) 246 union { 247 EncodedJSValue asEncodedJSValue; 248 double asDouble; 249 #if CPU(BIG_ENDIAN) 250 struct { 251 int32_t tag; 252 int32_t payload; 253 } asBits; 254 #else 255 struct { 256 int32_t payload; 257 int32_t tag; 258 } asBits; 259 #endif 260 } u; 261 #else // USE(JSVALUE32_64) 270 262 JSCell* m_ptr; 271 #endif 263 #endif // USE(JSVALUE32_64) 272 264 }; 273 265 -
trunk/Source/JavaScriptCore/runtime/JSZombie.cpp
r80919 r80938 27 27 #include "JSZombie.h" 28 28 #include "ClassInfo.h" 29 #include "JSObject.h"30 29 #include "ScopeChain.h" 31 30 -
trunk/Source/JavaScriptCore/runtime/MarkedBlock.cpp
r80919 r80938 28 28 29 29 #include "JSCell.h" 30 #include "JSObject.h"31 30 #include "JSZombie.h" 32 31 #include "ScopeChain.h" -
trunk/Source/JavaScriptCore/runtime/MarkedSpace.cpp
r80919 r80938 25 25 #include "JSGlobalData.h" 26 26 #include "JSLock.h" 27 #include "JSObject.h"28 27 #include "ScopeChain.h" 29 28 -
trunk/Source/JavaScriptCore/runtime/PropertyNameArray.cpp
r80919 r80938 22 22 #include "PropertyNameArray.h" 23 23 24 #include "JSObject.h"25 24 #include "ScopeChain.h" 26 25 #include "Structure.h" -
trunk/Source/JavaScriptCore/runtime/ScopeChain.h
r80919 r80938 129 129 return scopeChain()->globalThis.get(); 130 130 } 131 132 ALWAYS_INLINE ScopeChainNode* Register::scopeChain() const133 {134 return static_cast<ScopeChainNode*>(jsValue().asCell());135 }136 137 ALWAYS_INLINE Register& Register::operator=(ScopeChainNode* scopeChain)138 {139 *this = JSValue(scopeChain);140 return *this;141 }142 131 143 132 } // namespace JSC -
trunk/Source/JavaScriptCore/wtf/DateMath.cpp
r80919 r80938 76 76 #include "ASCIICType.h" 77 77 #include "CurrentTime.h" 78 #if USE(JSC)79 #include "JSObject.h"80 #endif81 78 #include "MathExtras.h" 82 79 #if USE(JSC) -
trunk/Source/WebCore/ChangeLog
r80937 r80938 1 2011-03-12 Sheriff Bot <webkit.review.bot@gmail.com> 2 3 Unreviewed, rolling out r80919. 4 http://trac.webkit.org/changeset/80919 5 https://bugs.webkit.org/show_bug.cgi?id=56251 6 7 all windows bots failed to compile this change (Requested by 8 loislo on #webkit). 9 10 * bridge/c/c_class.cpp: 11 * bridge/c/c_runtime.cpp: 12 * bridge/jni/JavaMethod.cpp: 13 * plugins/PluginViewNone.cpp: 14 1 15 2011-03-12 Patrick Gansterer <paroga@webkit.org> 2 16 -
trunk/Source/WebCore/bridge/c/c_class.cpp
r80919 r80938 36 36 #include <runtime/Identifier.h> 37 37 #include <runtime/JSLock.h> 38 #include <runtime/JSObject.h>39 38 #include <wtf/text/StringHash.h> 40 39 -
trunk/Source/WebCore/bridge/c/c_runtime.cpp
r80919 r80938 35 35 #include <runtime/ScopeChain.h> 36 36 #include <runtime/JSLock.h> 37 #include <runtime/JSObject.h>38 37 39 38 namespace JSC { -
trunk/Source/WebCore/bridge/jni/JavaMethod.cpp
r80919 r80938 32 32 #include "JavaString.h" 33 33 34 #include <runtime/JSObject.h>35 34 #include <runtime/ScopeChain.h> 36 35 #include <wtf/text/StringBuilder.h> -
trunk/Source/WebCore/plugins/PluginViewNone.cpp
r80919 r80938 29 29 #if USE(JSC) 30 30 #include "BridgeJSC.h" 31 #include <runtime/JSObject.h>32 31 #include <runtime/ScopeChain.h> 33 32 #endif
Note: See TracChangeset
for help on using the changeset viewer.