Timeline
May 10, 2009:
- 11:37 PM Changeset in webkit [43483] by
-
- 2 edits in branches/nitro-extreme/JavaScriptCore
2009-05-10 Sam Weinig <sam@webkit.org>
Reviewed by Geoffrey Garen.
Add op_codes that have Stub only implementations.
- jit/JIT.cpp: (JSC::JIT::privateCompileMainPass):
- 11:22 PM Changeset in webkit [43482] by
-
- 5 edits in branches/nitro-extreme/JavaScriptCore
2009-05-10 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig.
Fixed some bugs in slow case generation and implemented our first two
slow cases: op_convert_this and op_add.
- jit/JIT.cpp: (JSC::JIT::emitLoad): (JSC::JIT::emitLoadReturnValue): (JSC::JIT::emitStore): (JSC::JIT::emitStoreReturnValue): (JSC::JIT::privateCompileMainPass): Renamed *VirtualRegister => *. Added emitLoadReturnValue for loading the return value of a stub function into a virtual register.
(JSC::JIT::privateCompileSlowCases):
(JSC::JIT::privateCompile): Added slow cases for op_convert_this and
op_add. Restored slow case generation hook.
- jit/JIT.h: (JSC::JITStubCall::JITStubCall): (JSC::JITStubCall::addArgument): (JSC::JITStubCall::call): Removed two-return value JITStub call, since it's unused. Fixed a typo in return type tracking that caused an assertion failure.
- jit/JITStubs.cpp: (JSC::):
- jit/JITStubs.h: Fixed an error in JITStackFrame layout on 32bit: the reserved space is the size of a pointer, not the size of a JSValue.
- 11:06 PM Changeset in webkit [43481] by
-
- 3 edits in trunk/JavaScriptCore
2009-05-10 Maciej Stachowiak <mjs@apple.com>
Reviewed by Geoff Garen.
- fixed REGRESSION(r43432): Many JavaScriptCore tests crash in 64-bit https://bugs.webkit.org/show_bug.cgi?id=25680
Accound for the 64-bit instruction prefix when rewriting mov to lea on 64-bit.
- jit/JIT.h:
- jit/JITPropertyAccess.cpp: (JSC::JIT::patchGetByIdSelf): (JSC::JIT::patchPutByIdReplace):
- 9:49 PM Changeset in webkit [43480] by
-
- 2 edits in branches/nitro-extreme/JavaScriptCore
2009-05-10 Geoffrey Garen <ggaren@apple.com>
Removed some code that was removed from TOT.
- jit/JIT.h:
- 9:30 PM Changeset in webkit [43479] by
-
- 13 edits2 adds in trunk/JavaScriptCore
2009-05-10 Darin Adler <Darin Adler>
Reviewed by Cameron Zwarich.
Bug 25674: syntax tree nodes should use arena allocation
https://bugs.webkit.org/show_bug.cgi?id=25674
Part two: Remove reference counting from most nodes.
- JavaScriptCore.exp: Updated.
- JavaScriptCore.xcodeproj/project.pbxproj: Added ParserArena.h and .cpp.
- parser/Grammar.y: Replaced uses of ParserRefCountedData with uses of ParserArenaData. Took out now-nonfunctional code that tries to manually release declaration list. Changed the new calls that create FuncDeclNode and FuncExprNode so that they use the proper version of operator new for the reference-counted idiom, not the deletion idiom.
- parser/NodeConstructors.h: (JSC::ParserArenaDeletable::operator new): Added. (JSC::ParserArenaRefCounted::ParserArenaRefCounted): Added. (JSC::Node::Node): Removed ParserRefCounted initializer. (JSC::ElementNode::ElementNode): Ditto. (JSC::PropertyNode::PropertyNode): Ditto. (JSC::ArgumentsNode::ArgumentsNode): Ditto. (JSC::SourceElements::SourceElements): Ditto. (JSC::ParameterNode::ParameterNode): Ditto. (JSC::FuncExprNode::FuncExprNode): Added ParserArenaRefCounted initializer. (JSC::FuncDeclNode::FuncDeclNode): Ditto. (JSC::CaseClauseNode::CaseClauseNode): Removed ParserRefCounted initializer. (JSC::ClauseListNode::ClauseListNode): Ditto. (JSC::CaseBlockNode::CaseBlockNode): Ditto.
- parser/NodeInfo.h: Replaced uses of ParserRefCountedData with uses of ParserArenaData.
- parser/Nodes.cpp: (JSC::ScopeNode::ScopeNode): Added ParserArenaRefCounted initializer. (JSC::ProgramNode::create): Use the proper version of operator new for the reference-counted idiom, not the deletion idiom. Use the arena contains function instead of the vecctor find function. (JSC::EvalNode::create): Use the proper version of operator new for the reference-counted idiom, not the deletion idiom. Use the arena reset function instead of the vector shrink function. (JSC::FunctionBodyNode::createNativeThunk): Use the proper version of operator new for the reference-counted idiom, not the deletion idiom. (JSC::FunctionBodyNode::create): More of the same.
- parser/Nodes.h: Added ParserArenaDeletable and ParserArenaRefCounted to replace ParserRefCounted. Fixed inheritance so only the classes that need reference counting inherit from ParserArenaRefCounted.
- parser/Parser.cpp: (JSC::Parser::parse): Set m_sourceElements to 0 since it now starts uninitialized. Just set it to 0 again in the failure case, since it's now just a raw pointer, not an owning one. (JSC::Parser::reparseInPlace): Removed now-unneeded get() function. (JSC::Parser::didFinishParsing): Replaced uses of ParserRefCountedData with uses of ParserArenaData.
- parser/Parser.h: Less RefPtr, more arena.
- parser/ParserArena.cpp: Added.
- parser/ParserArena.h: Added.
- runtime/JSGlobalData.cpp: (JSC::JSGlobalData::~JSGlobalData): Removed arena-related code, since it's now in the Parser. (JSC::JSGlobalData::createLeaked): Removed unneeded #ifndef. (JSC::JSGlobalData::createNativeThunk): Tweaked #if a bit.
- runtime/JSGlobalData.h: Removed parserArena, which is now in Parser.
- wtf/RefCounted.h: Added deletionHasBegun function, for use in assertions to catch deletion not done by the deref function.
- 5:48 PM Changeset in webkit [43478] by
-
- 3 edits in trunk/JavaScriptCore
Part 2: Try to fix the Windows build by adding a symbol which is really just a re-mangling of a changed method signature
- JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:
- 5:43 PM Changeset in webkit [43477] by
-
- 3 edits2 adds in trunk
WebCore:
Reviewed by Darin Adler.
- fix a crash when deactivating a document that had adopted a <form> element
Test: fast/dom/HTMLFormElement/document-deactivation-callback-crash.html
- html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::didMoveToNewOwnerDocument): Corrected the logic here: <form> elements should be registered for document activation callbacks if and only if autocomplete is off.
LayoutTests:
Reviewed by Darin Adler.
- test for a crash when deactivating a document that had adopted a <form> element
- fast/dom/HTMLFormElement/document-deactivation-callback-crash-expected.txt: Added.
- fast/dom/HTMLFormElement/document-deactivation-callback-crash.html: Added.
- 5:36 PM Changeset in webkit [43476] by
-
- 3 edits in trunk/JavaScriptCore
Try to fix the Windows build by removing an unknown symbol
- JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:
- 5:27 PM Changeset in webkit [43475] by
-
- 2 edits in trunk/JavaScriptCore
Touch Nodes.cpp to try to fix Windows build
- parser/Nodes.cpp: Removed whitespace.
- 5:03 PM Changeset in webkit [43474] by
-
- 1 edit2 adds in trunk/LayoutTests
Test for Bug 23741: StyleRareNonInheritedData::operator==() should not compare ContentData objects by pointer
Rubber-stamped by Geoff Garen.
Original test by Simon Fraser.
- fast/css/compare-content-style.html: Added.
- platform/mac/fast/css/compare-content-style-expected.txt: Added.
- 4:33 PM Changeset in webkit [43473] by
-
- 3 edits in branches/nitro-extreme/JavaScriptCore
2009-05-10 Sam Weinig <sam@webkit.org>
Reviewed by Cameron Zwarich.
Be a little more consistent with how we arrange parameters for functions
that operate on virtual registers.
- jit/JIT.cpp: (JSC::JIT::emitStoreConstant): (JSC::JIT::privateCompileMainPass):
- jit/JIT.h:
- 3:46 PM Changeset in webkit [43472] by
-
- 2 edits in trunk/JavaScriptCore
2009-05-10 Darin Adler <Darin Adler>
Reviewed by Maciej Stachowiak.
Quick fix for failures seen on buildbot. Maciej plans a better fix later.
- wtf/dtoa.cpp: Change the hardcoded number of 32-bit words in a BigInt from 32 to 64. Parsing "1e500", for example, requires more than 32 words.
- 3:32 PM Changeset in webkit [43471] by
-
- 13 edits in trunk/JavaScriptCore
2009-05-10 Darin Adler <Darin Adler>
Reviewed by Sam Weinig.
Bug 25674: syntax tree nodes should use arena allocation
Part one: Change lifetimes so we won't have to use reference
counting so much, but don't eliminate the reference counts
entirely yet.
- JavaScriptCore.exp: Updated.
- bytecompiler/BytecodeGenerator.cpp: (JSC::BytecodeGenerator::BytecodeGenerator): Update for use of raw pointers instead of RefPtr. (JSC::BytecodeGenerator::emitCall): Ditto. (JSC::BytecodeGenerator::emitConstruct): Ditto.
- parser/Grammar.y: Update node creating code to use new (JSGlobalData*) instead of the plain new. At the moment this is just a hook for future arena allocation; it's inline and JSGlobalData* is not used.
- parser/NodeConstructors.h: Updated for name change of parserObjects to parserArena. Also added explicit initialization for raw pointers that used to be RefPtr. Also removed some uses of get() that aren't needed now that the pointers are raw pointers. Also eliminated m_parameter from FuncExprNode and FuncDeclNode. Also changed node-creating code to use new (JSGlobalData*) as above.
- parser/Nodes.cpp: Eliminated NodeReleaser and all use of it. (JSC::ParserRefCounted::ParserRefCounted): Updated for name change of parserObjects to parserArena. (JSC::SourceElements::append): Use raw pointers. (JSC::ArrayNode::emitBytecode): Ditto. (JSC::ArrayNode::isSimpleArray): Ditto. (JSC::ArrayNode::toArgumentList): Ditto. (JSC::ObjectLiteralNode::emitBytecode): Ditto. (JSC::PropertyListNode::emitBytecode): Ditto. (JSC::BracketAccessorNode::emitBytecode): Ditto. (JSC::DotAccessorNode::emitBytecode): Ditto. (JSC::ArgumentListNode::emitBytecode): Ditto. (JSC::NewExprNode::emitBytecode): Ditto. (JSC::EvalFunctionCallNode::emitBytecode): Ditto. (JSC::FunctionCallValueNode::emitBytecode): Ditto. (JSC::FunctionCallResolveNode::emitBytecode): Ditto. (JSC::FunctionCallBracketNode::emitBytecode): Ditto. (JSC::FunctionCallDotNode::emitBytecode): Ditto. (JSC::CallFunctionCallDotNode::emitBytecode): Ditto. (JSC::ApplyFunctionCallDotNode::emitBytecode): Ditto. (JSC::PostfixBracketNode::emitBytecode): Ditto. (JSC::PostfixDotNode::emitBytecode): Ditto. (JSC::DeleteBracketNode::emitBytecode): Ditto. (JSC::DeleteDotNode::emitBytecode): Ditto. (JSC::DeleteValueNode::emitBytecode): Ditto. (JSC::VoidNode::emitBytecode): Ditto. (JSC::TypeOfValueNode::emitBytecode): Ditto. (JSC::PrefixBracketNode::emitBytecode): Ditto. (JSC::PrefixDotNode::emitBytecode): Ditto. (JSC::UnaryOpNode::emitBytecode): Ditto. (JSC::BinaryOpNode::emitStrcat): Ditto. (JSC::BinaryOpNode::emitBytecode): Ditto. (JSC::EqualNode::emitBytecode): Ditto. (JSC::StrictEqualNode::emitBytecode): Ditto. (JSC::ReverseBinaryOpNode::emitBytecode): Ditto. (JSC::ThrowableBinaryOpNode::emitBytecode): Ditto. (JSC::InstanceOfNode::emitBytecode): Ditto. (JSC::LogicalOpNode::emitBytecode): Ditto. (JSC::ConditionalNode::emitBytecode): Ditto. (JSC::ReadModifyResolveNode::emitBytecode): Ditto. (JSC::AssignResolveNode::emitBytecode): Ditto. (JSC::AssignDotNode::emitBytecode): Ditto. (JSC::ReadModifyDotNode::emitBytecode): Ditto. (JSC::AssignBracketNode::emitBytecode): Ditto. (JSC::ReadModifyBracketNode::emitBytecode): Ditto. (JSC::CommaNode::emitBytecode): Ditto. (JSC::ConstDeclNode::emitCodeSingle): Ditto. (JSC::ConstDeclNode::emitBytecode): Ditto. (JSC::ConstStatementNode::emitBytecode): Ditto. (JSC::statementListEmitCode): Ditto. (JSC::BlockNode::emitBytecode): Ditto. (JSC::ExprStatementNode::emitBytecode): Ditto. (JSC::VarStatementNode::emitBytecode): Ditto. (JSC::IfNode::emitBytecode): Ditto. (JSC::IfElseNode::emitBytecode): Ditto. (JSC::DoWhileNode::emitBytecode): Ditto. (JSC::WhileNode::emitBytecode): Ditto. (JSC::ForNode::emitBytecode): Ditto. (JSC::ForInNode::emitBytecode): Ditto. (JSC::ReturnNode::emitBytecode): Ditto. (JSC::WithNode::emitBytecode): Ditto. (JSC::CaseBlockNode::tryOptimizedSwitch): Ditto. (JSC::CaseBlockNode::emitBytecodeForBlock): Ditto. (JSC::SwitchNode::emitBytecode): Ditto. (JSC::LabelNode::emitBytecode): Ditto. (JSC::ThrowNode::emitBytecode): Ditto. (JSC::TryNode::emitBytecode): Ditto. (JSC::ScopeNodeData::ScopeNodeData): Use swap to transfer ownership of the arena, varStack and functionStack. (JSC::ScopeNode::ScopeNode): Pass in the arena when creating the ScopeNodeData. (JSC::ProgramNode::ProgramNode): Made this inline since it's used in only one place. (JSC::ProgramNode::create): Changed this to return a PassRefPtr since we plan to have the scope nodes be outside the arena, so they will need some kind of ownership transfer (maybe auto_ptr instead of PassRefPtr in the future, though). Remove the node from the newly-created arena to avoid a circular reference. Later we'll keep the node out of the arena by using a different operator new, but for now it's the ParserRefCounted constructor that puts the node into the arena, and there's no way to bypass that. (JSC::EvalNode::EvalNode): Ditto. (JSC::EvalNode::create): Ditto. (JSC::FunctionBodyNode::FunctionBodyNode): Ditto. (JSC::FunctionBodyNode::createNativeThunk): Moved the code that reseets the arena here instead of the caller. (JSC::FunctionBodyNode::create): Same change as the other create functions above. (JSC::FunctionBodyNode::emitBytecode): Use raw pointers.
- parser/Nodes.h: Removed NodeReleaser. Changed FunctionStack to use raw pointers. Removed the releaseNodes function. Added an override of operator new that takes a JSGlobalData* to prepare for future arena use. Use raw pointers instead of RefPtr everywhere possible.
- parser/Parser.cpp: (JSC::Parser::reparseInPlace): Pass the arena in.
- parser/Parser.h: (JSC::Parser::parse): Updated for name change of parserObjects to parserArena. (JSC::Parser::reparse): Ditto.
- runtime/FunctionConstructor.cpp: (JSC::extractFunctionBody): Ditto.
- runtime/JSGlobalData.cpp: (JSC::JSGlobalData::~JSGlobalData): Ditto. (JSC::JSGlobalData::createNativeThunk): Moved arena manipulation into the FunctionBodyNode::createNativeThunk function.
- runtime/JSGlobalData.h: Tweaked formatting and renamed parserObjects to parserArena.
- wtf/NotFound.h: Added the usual "using WTF" to this header to match the rest of WTF.
- 2:28 PM Changeset in webkit [43470] by
-
- 2 edits in branches/nitro-extreme/JavaScriptCore
2009-05-10 Sam Weinig <sam@webkit.org>
Reviewed by Geoffrey Garen.
Fix typo. op_loop should not be using the fact that it and op_end are the
same length.
- jit/JIT.cpp: (JSC::JIT::privateCompileMainPass):
- 2:00 PM Changeset in webkit [43469] by
-
- 4 edits in branches/nitro-extreme/JavaScriptCore
2009-05-10 Sam Weinig <sam@webkit.org>
Build fix.
- jit/JIT.cpp: (JSC::JIT::privateCompileMainPass):
- parser/Nodes.h:
- runtime/Operations.h: (JSC::concatenateStrings):
- 1:53 PM Changeset in webkit [43468] by
-
- 2 edits in branches/nitro-extreme/JavaScriptCore
2009-05-10 Sam Weinig <sam@webkit.org>
Fix typo in a comment.
- jit/JIT.cpp: (JSC::JIT::privateCompileMainPass):
- 1:45 PM Changeset in webkit [43467] by
-
- 13 edits in branches/nitro-extreme/JavaScriptCore
2009-05-10 Sam Weinig <sam@webkit.org>
Merge string concatenation from r43331.
- bytecode/CodeBlock.cpp: (JSC::CodeBlock::dump):
- bytecode/Opcode.h:
- bytecompiler/BytecodeGenerator.cpp: (JSC::BytecodeGenerator::emitStrcat): (JSC::BytecodeGenerator::emitToPrimitive):
- bytecompiler/BytecodeGenerator.h:
- interpreter/Interpreter.cpp: (JSC::Interpreter::privateExecute):
- jit/JITStubs.cpp: (JSC::JITStubs::cti_op_strcat):
- parser/Nodes.cpp: (JSC::BinaryOpNode::emitStrcat): (JSC::BinaryOpNode::emitBytecode):
- parser/Nodes.h: (JSC::ExpressionNode::): (JSC::DeleteBracketNode::):
- parser/ResultType.h: (JSC::ResultType::definitelyIsString): (JSC::ResultType::forAdd):
- runtime/Operations.h: (JSC::concatenateStrings):
- runtime/UString.cpp: (JSC::UString::appendNumeric):
- runtime/UString.h: (JSC::UString::Rep::createEmptyBuffer): (JSC::UString::BaseString::BaseString):
- 1:32 PM Changeset in webkit [43466] by
-
- 40 edits in branches/nitro-extreme
2009-05-10 Sam Weinig <sam@webkit.org>
Merge more native function thunk code from r43372
- API/JSCallbackFunction.h:
- API/JSCallbackObject.h:
- interpreter/CallFrame.h: (JSC::ExecState::argumentCount):
- jsc.cpp: (functionPrint): (functionDebug): (functionGC): (functionVersion): (functionRun): (functionLoad): (functionSetSamplingFlags): (functionClearSamplingFlags): (functionReadline): (functionQuit):
- runtime/ArrayConstructor.cpp: (JSC::callArrayConstructor):
- runtime/ArrayPrototype.cpp: (JSC::arrayProtoFuncToString): (JSC::arrayProtoFuncToLocaleString): (JSC::arrayProtoFuncJoin): (JSC::arrayProtoFuncConcat): (JSC::arrayProtoFuncPop): (JSC::arrayProtoFuncPush): (JSC::arrayProtoFuncReverse): (JSC::arrayProtoFuncShift): (JSC::arrayProtoFuncSlice): (JSC::arrayProtoFuncSort): (JSC::arrayProtoFuncSplice): (JSC::arrayProtoFuncUnShift): (JSC::arrayProtoFuncFilter): (JSC::arrayProtoFuncMap): (JSC::arrayProtoFuncEvery): (JSC::arrayProtoFuncForEach): (JSC::arrayProtoFuncSome): (JSC::arrayProtoFuncReduce): (JSC::arrayProtoFuncReduceRight): (JSC::arrayProtoFuncIndexOf): (JSC::arrayProtoFuncLastIndexOf):
- runtime/BooleanConstructor.cpp: (JSC::callBooleanConstructor):
- runtime/BooleanPrototype.cpp: (JSC::booleanProtoFuncToString): (JSC::booleanProtoFuncValueOf):
- runtime/CallData.h:
- runtime/DateConstructor.cpp: (JSC::callDate): (JSC::dateParse): (JSC::dateNow): (JSC::dateUTC):
- runtime/DatePrototype.cpp: (JSC::dateProtoFuncToString): (JSC::dateProtoFuncToUTCString): (JSC::dateProtoFuncToDateString): (JSC::dateProtoFuncToTimeString): (JSC::dateProtoFuncToLocaleString): (JSC::dateProtoFuncToLocaleDateString): (JSC::dateProtoFuncToLocaleTimeString): (JSC::dateProtoFuncGetTime): (JSC::dateProtoFuncGetFullYear): (JSC::dateProtoFuncGetUTCFullYear): (JSC::dateProtoFuncToGMTString): (JSC::dateProtoFuncGetMonth): (JSC::dateProtoFuncGetUTCMonth): (JSC::dateProtoFuncGetDate): (JSC::dateProtoFuncGetUTCDate): (JSC::dateProtoFuncGetDay): (JSC::dateProtoFuncGetUTCDay): (JSC::dateProtoFuncGetHours): (JSC::dateProtoFuncGetUTCHours): (JSC::dateProtoFuncGetMinutes): (JSC::dateProtoFuncGetUTCMinutes): (JSC::dateProtoFuncGetSeconds): (JSC::dateProtoFuncGetUTCSeconds): (JSC::dateProtoFuncGetMilliSeconds): (JSC::dateProtoFuncGetUTCMilliseconds): (JSC::dateProtoFuncGetTimezoneOffset): (JSC::dateProtoFuncSetTime): (JSC::dateProtoFuncSetMilliSeconds): (JSC::dateProtoFuncSetUTCMilliseconds): (JSC::dateProtoFuncSetSeconds): (JSC::dateProtoFuncSetUTCSeconds): (JSC::dateProtoFuncSetMinutes): (JSC::dateProtoFuncSetUTCMinutes): (JSC::dateProtoFuncSetHours): (JSC::dateProtoFuncSetUTCHours): (JSC::dateProtoFuncSetDate): (JSC::dateProtoFuncSetUTCDate): (JSC::dateProtoFuncSetMonth): (JSC::dateProtoFuncSetUTCMonth): (JSC::dateProtoFuncSetFullYear): (JSC::dateProtoFuncSetUTCFullYear): (JSC::dateProtoFuncSetYear): (JSC::dateProtoFuncGetYear):
- runtime/ErrorConstructor.cpp: (JSC::callErrorConstructor):
- runtime/ErrorPrototype.cpp: (JSC::errorProtoFuncToString):
- runtime/FunctionConstructor.cpp: (JSC::callFunctionConstructor):
- runtime/FunctionPrototype.cpp: (JSC::callFunctionPrototype): (JSC::functionProtoFuncToString): (JSC::functionProtoFuncApply): (JSC::functionProtoFuncCall):
- runtime/JSFunction.h: (JSC::JSFunction::nativeFunction): (JSC::JSFunction::setScopeChain):
- runtime/JSGlobalObjectFunctions.cpp: (JSC::globalFuncEval): (JSC::globalFuncParseInt): (JSC::globalFuncParseFloat): (JSC::globalFuncIsNaN): (JSC::globalFuncIsFinite): (JSC::globalFuncDecodeURI): (JSC::globalFuncDecodeURIComponent): (JSC::globalFuncEncodeURI): (JSC::globalFuncEncodeURIComponent): (JSC::globalFuncEscape): (JSC::globalFuncUnescape): (JSC::globalFuncJSCPrint):
- runtime/JSGlobalObjectFunctions.h:
- runtime/MathObject.cpp: (JSC::mathProtoFuncAbs): (JSC::mathProtoFuncACos): (JSC::mathProtoFuncASin): (JSC::mathProtoFuncATan): (JSC::mathProtoFuncATan2): (JSC::mathProtoFuncCeil): (JSC::mathProtoFuncCos): (JSC::mathProtoFuncExp): (JSC::mathProtoFuncFloor): (JSC::mathProtoFuncLog): (JSC::mathProtoFuncMax): (JSC::mathProtoFuncMin): (JSC::mathProtoFuncPow): (JSC::mathProtoFuncRandom): (JSC::mathProtoFuncRound): (JSC::mathProtoFuncSin): (JSC::mathProtoFuncSqrt): (JSC::mathProtoFuncTan):
- runtime/NativeErrorConstructor.cpp: (JSC::callNativeErrorConstructor):
- runtime/NumberConstructor.cpp: (JSC::callNumberConstructor):
- runtime/NumberPrototype.cpp: (JSC::numberProtoFuncToString): (JSC::numberProtoFuncToLocaleString): (JSC::numberProtoFuncValueOf): (JSC::numberProtoFuncToFixed): (JSC::numberProtoFuncToExponential): (JSC::numberProtoFuncToPrecision):
- runtime/ObjectConstructor.cpp: (JSC::callObjectConstructor):
- runtime/ObjectPrototype.cpp: (JSC::objectProtoFuncValueOf): (JSC::objectProtoFuncHasOwnProperty): (JSC::objectProtoFuncIsPrototypeOf): (JSC::objectProtoFuncDefineGetter): (JSC::objectProtoFuncDefineSetter): (JSC::objectProtoFuncLookupGetter): (JSC::objectProtoFuncLookupSetter): (JSC::objectProtoFuncPropertyIsEnumerable): (JSC::objectProtoFuncToLocaleString): (JSC::objectProtoFuncToString):
- runtime/ObjectPrototype.h:
- runtime/RegExpConstructor.cpp: (JSC::callRegExpConstructor):
- runtime/RegExpObject.cpp: (JSC::callRegExpObject):
- runtime/RegExpPrototype.cpp: (JSC::regExpProtoFuncTest): (JSC::regExpProtoFuncExec): (JSC::regExpProtoFuncCompile): (JSC::regExpProtoFuncToString):
- runtime/StringConstructor.cpp: (JSC::stringFromCharCode): (JSC::callStringConstructor):
- runtime/StringPrototype.cpp: (JSC::stringProtoFuncReplace): (JSC::stringProtoFuncToString): (JSC::stringProtoFuncCharAt): (JSC::stringProtoFuncCharCodeAt): (JSC::stringProtoFuncConcat): (JSC::stringProtoFuncIndexOf): (JSC::stringProtoFuncLastIndexOf): (JSC::stringProtoFuncMatch): (JSC::stringProtoFuncSearch): (JSC::stringProtoFuncSlice): (JSC::stringProtoFuncSplit): (JSC::stringProtoFuncSubstr): (JSC::stringProtoFuncSubstring): (JSC::stringProtoFuncToLowerCase): (JSC::stringProtoFuncToUpperCase): (JSC::stringProtoFuncLocaleCompare): (JSC::stringProtoFuncBig): (JSC::stringProtoFuncSmall): (JSC::stringProtoFuncBlink): (JSC::stringProtoFuncBold): (JSC::stringProtoFuncFixed): (JSC::stringProtoFuncItalics): (JSC::stringProtoFuncStrike): (JSC::stringProtoFuncSub): (JSC::stringProtoFuncSup): (JSC::stringProtoFuncFontcolor): (JSC::stringProtoFuncFontsize): (JSC::stringProtoFuncAnchor): (JSC::stringProtoFuncLink):
- wtf/Platform.h:
WebCore:
2009-05-10 Sam Weinig <sam@webkit.org>
Merge more native function thunk code from r43372
- bindings/js/JSHTMLCollectionCustom.cpp: (WebCore::callHTMLCollection):
- bindings/js/JSNodeListCustom.cpp: (WebCore::callNodeList):
- bindings/js/JSPluginElementFunctions.cpp: (WebCore::callPlugin):
- bindings/js/JSQuarantinedObjectWrapper.h:
- bindings/scripts/CodeGeneratorJS.pm:
- bridge/runtime_method.cpp: (JSC::callRuntimeMethod):
- bridge/runtime_object.cpp: (JSC::callRuntimeObject):
- 1:21 PM Changeset in webkit [43465] by
-
- 39 edits3 adds in branches/nitro-extreme
2009-05-10 Sam Weinig <sam@webkit.org>
Merge native function thunk code from r43220.
- JavaScriptCore.exp:
- JavaScriptCore.xcodeproj/project.pbxproj:
- assembler/MacroAssemblerX86Common.h: (JSC::MacroAssemblerX86Common::call):
- assembler/MacroAssemblerX86_64.h: (JSC::MacroAssemblerX86_64::addPtr):
- assembler/X86Assembler.h: (JSC::X86Assembler::leaq_mr): (JSC::X86Assembler::call_m):
- interpreter/Interpreter.cpp: (JSC::Interpreter::execute): (JSC::Interpreter::prepareForRepeatCall):
- jit/JIT.cpp: (JSC::JIT::linkCall):
- jit/JIT.h: (JSC::JIT::compileCTIMachineTrampolines):
- jit/JITCall.cpp: (JSC::JIT::linkCall): (JSC::JIT::compileOpCallInitializeCallFrame): (JSC::JIT::compileOpCall):
- jit/JITCode.h: (JSC::JITCode::operator bool):
- jit/JITInlineMethods.h: (JSC::JIT::emitGetFromCallFrameHeader): (JSC::JIT::emitGetFromCallFrameHeader32):
- jit/JITStubs.cpp: (JSC::JITStubs::cti_op_call_JSFunction): (JSC::JITStubs::cti_vm_dontLazyLinkCall): (JSC::JITStubs::cti_vm_lazyLinkCall): (JSC::JITStubs::cti_op_construct_JSConstruct):
- jit/JITStubs.h: (JSC::JITStubs::ctiNativeCallThunk):
- jsc.cpp: (GlobalObject::GlobalObject):
- parser/Nodes.cpp: (JSC::FunctionBodyNode::FunctionBodyNode): (JSC::FunctionBodyNode::createNativeThunk): (JSC::FunctionBodyNode::generateJITCode):
- parser/Nodes.h: (JSC::FunctionBodyNode::): (JSC::FunctionBodyNode::generatedJITCode): (JSC::FunctionBodyNode::jitCode):
- profiler/Profiler.cpp: (JSC::Profiler::createCallIdentifier):
- runtime/ArgList.h:
- runtime/ArrayPrototype.cpp: (JSC::isNumericCompareFunction):
- runtime/BooleanPrototype.cpp: (JSC::BooleanPrototype::BooleanPrototype):
- runtime/DateConstructor.cpp: (JSC::DateConstructor::DateConstructor):
- runtime/ErrorPrototype.cpp: (JSC::ErrorPrototype::ErrorPrototype):
- runtime/FunctionPrototype.cpp: (JSC::FunctionPrototype::addFunctionProperties): (JSC::functionProtoFuncToString):
- runtime/FunctionPrototype.h:
- runtime/JSFunction.cpp: (JSC::JSFunction::JSFunction): (JSC::JSFunction::~JSFunction): (JSC::JSFunction::mark): (JSC::JSFunction::getCallData): (JSC::JSFunction::call): (JSC::JSFunction::argumentsGetter): (JSC::JSFunction::callerGetter): (JSC::JSFunction::lengthGetter): (JSC::JSFunction::getOwnPropertySlot): (JSC::JSFunction::put): (JSC::JSFunction::deleteProperty): (JSC::JSFunction::getConstructData): (JSC::JSFunction::construct):
- runtime/JSFunction.h: (JSC::JSFunction::JSFunction): (JSC::JSFunction::setScope): (JSC::JSFunction::scope): (JSC::JSFunction::isHostFunction): (JSC::JSFunction::scopeChain): (JSC::JSFunction::clearScopeChain): (JSC::JSFunction::setScopeChain): (JSC::JSFunction::nativeFunction): (JSC::JSFunction::setNativeFunction):
- runtime/JSGlobalData.cpp: (JSC::JSGlobalData::JSGlobalData): (JSC::JSGlobalData::~JSGlobalData): (JSC::JSGlobalData::createNativeThunk):
- runtime/JSGlobalData.h: (JSC::JSGlobalData::nativeFunctionThunk):
- runtime/JSGlobalObject.cpp: (JSC::JSGlobalObject::reset):
- runtime/JSGlobalObject.h:
- runtime/Lookup.cpp: (JSC::setUpStaticFunctionSlot):
- runtime/Lookup.h:
- runtime/NativeFunctionWrapper.h: Added.
- runtime/NumberPrototype.cpp: (JSC::NumberPrototype::NumberPrototype):
- runtime/ObjectPrototype.cpp: (JSC::ObjectPrototype::ObjectPrototype):
- runtime/RegExpPrototype.cpp: (JSC::RegExpPrototype::RegExpPrototype):
- runtime/StringConstructor.cpp: (JSC::StringConstructor::StringConstructor):
WebCore:
2009-05-10 Sam Weinig <sam@webkit.org>
Merge native function thunk code from r43220.
- ForwardingHeaders/jit: Added.
- ForwardingHeaders/jit/JITCode.h: Added.
- inspector/JavaScriptDebugServer.cpp: (WebCore::JavaScriptDebugServer::recompileAllJSFunctions):
- 12:02 PM Changeset in webkit [43464] by
-
- 7 edits in branches/nitro-extreme/JavaScriptCore
2009-05-10 Geoffrey Garen <ggaren@apple.com>
Reviewed by Cameron Zwarich.
Got JITStubs more or less working, and implemented emitTimeoutCheck(),
our first JITStub call.
Modified the magic constants in our trampolines to match the new layout
of JITStackFrame.
Added JITStubs back into the project / build.
Merged some stuff from JIT.h / JIT.cpp on trunk, with tweaks for the branch.
Brought the stubs up to par with the interpreter / new value representation.
Commented out a bunch of stub code that we haven't fully merged from TOT
yet (strcat, host function call changes). (Sam will merge and re-enable these
today.)
- JavaScriptCore.xcodeproj/project.pbxproj:
- jit/JIT.cpp: (JSC::JIT::emitTimeoutCheck): (JSC::JIT::restoreArgumentReference): (JSC::JIT::restoreArgumentReferenceForTrampoline): (JSC::JIT::privateCompileMainPass):
- jit/JIT.h: (JSC::JITStubCall::JITStubCall): (JSC::JITStubCall::addArgument): (JSC::JITStubCall::call): (JSC::JITStubCall::): (JSC::CallEvalJITStub::CallEvalJITStub):
- jit/JITStubs.cpp: (JSC::JITStubs::JITStubs): (JSC::JITStubs::cti_op_add): (JSC::JITStubs::cti_op_pre_inc): (JSC::JITStubs::cti_op_mul): (JSC::JITStubs::cti_op_call_JSFunction): (JSC::JITStubs::cti_vm_dontLazyLinkCall): (JSC::JITStubs::cti_vm_lazyLinkCall): (JSC::JITStubs::cti_op_construct_JSConstruct): (JSC::JITStubs::cti_op_get_by_val): (JSC::JITStubs::cti_op_get_by_val_string): (JSC::JITStubs::cti_op_get_by_val_byte_array): (JSC::JITStubs::cti_op_sub): (JSC::JITStubs::cti_op_put_by_val): (JSC::JITStubs::cti_op_put_by_val_array): (JSC::JITStubs::cti_op_put_by_val_byte_array): (JSC::JITStubs::cti_op_negate): (JSC::JITStubs::cti_op_div): (JSC::JITStubs::cti_op_pre_dec): (JSC::JITStubs::cti_op_post_inc): (JSC::JITStubs::cti_op_eq): (JSC::JITStubs::cti_op_lshift): (JSC::JITStubs::cti_op_bitand): (JSC::JITStubs::cti_op_rshift): (JSC::JITStubs::cti_op_bitnot): (JSC::JITStubs::cti_op_mod): (JSC::JITStubs::cti_op_neq): (JSC::JITStubs::cti_op_post_dec): (JSC::JITStubs::cti_op_urshift): (JSC::JITStubs::cti_op_bitxor): (JSC::JITStubs::cti_op_bitor): (JSC::JITStubs::cti_op_strcat): (JSC::JITStubs::cti_op_switch_imm):
- jit/JITStubs.h: (JSC::JITStubs::ctiVirtualCall):
- runtime/JSValue.h: (JSC::JSValue::payload):
- 11:49 AM Changeset in webkit [43463] by
-
- 2 edits in trunk/JavaScriptCore
2009-05-10 Dimitri Glazkov <Dimitri Glazkov>
Reviewed by Geoffrey Garen.
https://bugs.webkit.org/show_bug.cgi?id=25670
Remove no longer valid chunk of code from dtoa.
- wtf/dtoa.cpp: (WTF::dtoa): Removed invalid code.
- 10:53 AM Changeset in webkit [43462] by
-
- 3 edits in trunk/WebCore
Reviewed by Dan Bernstein.
<rdar://problem/6867598> REGRESSION (r42483): Have to enter credentials twice when trying
to view protected MobileMe video
Add a temporary workaround.
- platform/network/ResourceHandleInternal.h: (WebCore::ResourceHandleInternal::ResourceHandleInternal): Added an m_useSiteSpecificQuirks boolean (Mac-only). A Frame pointer is only available when starting a request, so we need to store this data for later use.
- platform/network/mac/ResourceHandleMac.mm: (WebCore::ResourceHandle::start): Initialize m_useSiteSpecificQuirks. (WebCore::ResourceHandle::receivedCredential): Use per-session credentials with gallery.me.com.
- 10:32 AM Changeset in webkit [43461] by
-
- 3 edits in trunk/JavaScriptCore
Reviewed by Geoff Garen.
"Class const *" is the same as "const Class*", use the latter syntax consistently.
See <http://www.parashift.com/c++-faq-lite/const-correctness.html#faq-18.9>.
- pcre/pcre_compile.cpp: (calculateCompiledPatternLength):
- runtime/JSObject.h: (JSC::JSObject::offsetForLocation): (JSC::JSObject::locationForOffset):
- 10:01 AM Changeset in webkit [43460] by
-
- 9 edits1 move in trunk
Reviewed by Dan Bernstein.
<rdar://problem/6870383> Have to enter credentials twice when downloading from a protected page
Use credentials from WebCore storage when downloading.
- 9:57 AM Changeset in webkit [43459] by
-
- 4 edits in trunk/WebCore
Reviewed by Dan Bernstein.
Match newer XMLHttpRequest draft and make withCredential setter raise an exception when
called at a wrong time.
No test, because we are waiting for a newer version of system frameworks to test the attribute.
- xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::setWithCredentials):
- xml/XMLHttpRequest.h:
- xml/XMLHttpRequest.idl: Raise INVALID_STATE_ERR if the state is not OPENED, or if the send() flag is true.
- 9:26 AM Changeset in webkit [43458] by
-
- 5 edits4 adds in trunk
WebCore:
Reviewed by Dave Kilzer.
- fix https://bugs.webkit.org/show_bug.cgi?id=25602 REGRESSION: fast/overflow/overflow-focus-ring.html seems double-drawn on ToT
Test: fast/layers/self-painting-outline.html
- rendering/RenderLayer.cpp: (WebCore::RenderLayer::paintLayer): Paint the layer's own outline only if it is a self-painting layer.
LayoutTests:
Reviewed by Dave Kilzer.
- new test and correct results for https://bugs.webkit.org/show_bug.cgi?id=25602 REGRESSION: fast/overflow/overflow-focus-ring.html seems double-drawn on ToT
- fast/layers/self-painting-outline.html: Added.
- platform/mac/fast/overflow/overflow-focus-ring-expected.checksum: Updated.
- platform/mac/fast/overflow/overflow-focus-ring-expected.png: Updated.
- platform/mac/fast/layers/self-painting-outline-expected.checksum: Added.
- platform/mac/fast/layers/self-painting-outline-expected.png: Added.
- platform/mac/fast/layers/self-painting-outline-expected.txt: Added.
- 4:32 AM Changeset in webkit [43457] by
-
- 5 edits in trunk/JavaScriptCore
2009-05-10 Maciej Stachowiak <mjs@apple.com>
Reviewed by Alexey Proskuryakov.
- speedup dtoa/strtod
Added a bunch of inlining, and replaced malloc with stack allocation.
0.5% SunSpider speedup (7% on string-tagcloud).
- runtime/NumberPrototype.cpp: (JSC::integerPartNoExp): (JSC::numberProtoFuncToExponential):
- runtime/UString.cpp: (JSC::concatenate): (JSC::UString::from):
- wtf/dtoa.cpp: (WTF::BigInt::BigInt): (WTF::BigInt::operator=): (WTF::Balloc): (WTF::Bfree): (WTF::multadd): (WTF::s2b): (WTF::i2b): (WTF::mult): (WTF::pow5mult): (WTF::lshift): (WTF::cmp): (WTF::diff): (WTF::b2d): (WTF::d2b): (WTF::ratio): (WTF::strtod): (WTF::quorem): (WTF::freedtoa): (WTF::dtoa):
- wtf/dtoa.h:
May 9, 2009:
- 10:54 PM Changeset in webkit [43456] by
-
- 2 edits in branches/nitro-extreme/JavaScriptCore
2009-05-09 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig.
Optimized a few more cases to use memory operands instead of loading
into registers.
- jit/JIT.cpp: (JSC::JIT::privateCompileMainPass):
- 10:38 PM Changeset in webkit [43455] by
-
- 3 edits in branches/nitro-extreme/JavaScriptCore
2009-05-09 Geoffrey Garen <ggaren@apple.com>
Not reviewed.
Build fix.
- jit/JIT.h:
- jit/JITCode.h:
- 10:36 PM Changeset in webkit [43454] by
-
- 4 edits in branches/nitro-extreme/JavaScriptCore
2009-05-09 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig.
A little more opcode action.
Added a set8 and deployed it.
Optimized op_bitnot to do a bitnot directly in memory if possible.
- assembler/MacroAssemblerX86Common.h: (JSC::MacroAssemblerX86Common::not32): (JSC::MacroAssemblerX86Common::set8):
- assembler/X86Assembler.h: (JSC::X86Assembler::notl_m):
- jit/JIT.cpp: (JSC::JIT::privateCompileMainPass):
- 10:21 PM Changeset in webkit [43453] by
-
- 3 edits in branches/nitro-extreme/JavaScriptCore
2009-05-09 Sam Weinig <sam@webkit.org>
Rubber-stamped by Geoffrey Garen.
Merge over the new JITStubs implementation from ToT.
- jit/JITStubs.cpp:
- jit/JITStubs.h:
- 10:14 PM Changeset in webkit [43452] by
-
- 3 edits in branches/nitro-extreme/JavaScriptCore
2009-05-09 Sam Weinig <sam@webkit.org>
Reviewed by Geoffrey Garen.
Don't test for a slow case if the operand of an arithmetic op is
known to be an integer constant.
- jit/JIT.cpp: (JSC::JIT::privateCompileMainPass):
- jit/JITArithmetic.cpp: (JSC::JIT::emitAdd32): (JSC::JIT::emitSub32): (JSC::JIT::emitMul32): (JSC::JIT::emitMod32): (JSC::JIT::emitBitAnd32): (JSC::JIT::emitBitOr32): (JSC::JIT::emitBitXor32): (JSC::JIT::emitLeftShift32): (JSC::JIT::emitRightShift32):
- 10:04 PM Changeset in webkit [43451] by
-
- 3 edits2 adds in trunk
WebCore:
Reviewed by Geoffrey Garen and Mark Rowe.
- fix https://bugs.webkit.org/show_bug.cgi?id=25666 Assertion failure in Node::setDocument() (willMoveToNewOwnerDocumentWasCalled) when adopting a <form> element
Test: fast/dom/HTMLFormElement/adopt-assertion.html
- html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::willMoveToNewOwnerDocument): Overrides of this method are required to call the base class implementation. Do it. (WebCore::HTMLFormElement::didMoveToNewOwnerDocument): Ditto.
LayoutTests:
Reviewed by Geoffrey Garen and Mark Rowe.
- test for https://bugs.webkit.org/show_bug.cgi?id=25666 Assertion failure in Node::setDocument() (willMoveToNewOwnerDocumentWasCalled) when adopting a <form> element
- fast/dom/HTMLFormElement/adopt-assertion-expected.txt: Added.
- fast/dom/HTMLFormElement/adopt-assertion.html: Added.
- 10:01 PM Changeset in webkit [43450] by
-
- 2 edits in branches/nitro-extreme/JavaScriptCore
2009-05-09 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig.
Fixed accidental reversal of opcodes part 2.
- assembler/MacroAssemblerX86Common.h: (JSC::MacroAssemblerX86Common::neg32):
- 9:27 PM Changeset in webkit [43449] by
-
- 2 edits in branches/nitro-extreme/JavaScriptCore
2009-05-09 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig.
Fixed accidental reversal of opcodes.
- assembler/X86Assembler.h: (JSC::X86Assembler::negl_r): (JSC::X86Assembler::notl_r):
- 9:23 PM Changeset in webkit [43448] by
-
- 2 edits in branches/nitro-extreme/JavaScriptCore
2009-05-09 Geoffrey Garen <ggaren@apple.com>
Not reviewed.
- jit/JITArithmetic.cpp: (JSC::JIT::emitAdd32): Restored accidentally snipped out code from my last patch.
- 7:52 PM Changeset in webkit [43447] by
-
- 4 edits in branches/nitro-extreme/JavaScriptCore
2009-05-09 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Miscellaneous work on our existing opcodes.
Removed unnecessary load into register from mul32.
Fixed a bug where mod32 calculated the quotient instead of the remainder.
Fixed the debug build.
Added optimized cases for subtraction.
Established consistent naming of emitOp32[Details], removing cases of
emitOp[Details]32.
- jit/JIT.cpp: (JSC::JIT::privateCompileMainPass): (JSC::JIT::privateCompileSlowCases):
- jit/JIT.h:
- jit/JITArithmetic.cpp: (JSC::JIT::emitAdd32): (JSC::JIT::emitAdd32Constant): (JSC::JIT::emitSub32): (JSC::JIT::emitSub32ConstantLeft): (JSC::JIT::emitSub32ConstantRight): (JSC::JIT::emitSub32InPlaceLeft): (JSC::JIT::emitSub32InPlaceRight): (JSC::JIT::emitMul32): (JSC::JIT::emitMul32Constant): (JSC::JIT::emitMul32InPlace): (JSC::JIT::emitMod32): (JSC::JIT::emitBitAnd32): (JSC::JIT::emitBitAnd32Constant): (JSC::JIT::emitBitOr32): (JSC::JIT::emitBitOr32Constant): (JSC::JIT::emitBitXor32): (JSC::JIT::emitBitXor32Constant):
- 7:44 PM Changeset in webkit [43446] by
-
- 3 edits in trunk/LayoutTests
2009-05-09 Geoffrey Garen <ggaren@apple.com>
Rubber stamped by Beth Dakin.
Added a test for a math edge case I just came across.
- fast/js/postfix-syntax-expected.txt:
- fast/js/resources/postfix-syntax.js:
- 7:28 PM Changeset in webkit [43445] by
-
- 2 edits in trunk
2009-05-09 Jan Michael Alonzo <jmalonzo@webkit.org>
Reviewed by Gustavo Noronha.
WebKit-r43163 won't build for gtk-directfb
https://bugs.webkit.org/show_bug.cgi?id=25538
Move the ENCHANT check out of the with_target conditional since it
applies to all targets
- configure.ac:
- 7:10 PM Changeset in webkit [43444] by
-
- 4 edits in trunk
2009-05-09 Mike Hommey <glandium@debian.org>
Reviewed by Geoffrey Garen. Landed by Jan Alonzo.
Enable JIT on x86-64 gtk+
https://bugs.webkit.org/show_bug.cgi?id=24724
- configure.ac:
2009-05-09 Mike Hommey <glandium@debian.org>
Reviewed by Geoffrey Garen. Landed by Jan Alonzo.
Enable JIT on x86-64 gtk+
https://bugs.webkit.org/show_bug.cgi?id=24724
- GNUmakefile.am:
- 6:13 PM Changeset in webkit [43443] by
-
- 2 edits in branches/nitro-extreme/JavaScriptCore
2009-05-09 Geoffrey Garen <ggaren@apple.com>
Reviewed by Maciej Stachowiak.
Cleaned up postfix ++/-- operators. 23% speedup in postfix operations.
The old code did an increment/decrement, and then stored to dst and srcDst,
dst getting the original value and srcDst getting the incremented value.
In order to pull that off, it needed to move a copy of the original
value to a second register, and do things in a generally inefficient
order. Instead, you can just store to dst before you do the increment.
Also fixed the build.
- jit/JIT.cpp: (JSC::JIT::privateCompileMainPass): (JSC::JIT::privateCompileSlowCases):
- 3:41 PM Changeset in webkit [43442] by
-
- 5 edits in trunk
Reviewed by Maciej Stachowiak.
WebCore::DocumentLoader::mainReceivedError now asserts if error.isNull(), so
make sure wx does not create empty ResourceError() objects.
https://bugs.webkit.org/show_bug.cgi?id=24927
- 3:05 PM Changeset in webkit [43441] by
-
- 2 edits in trunk/JavaScriptCore
2009-05-09 Geoffrey Garen <ggaren@apple.com>
Reviewed by Cameron Zwarich.
Removed the last non-call-related manually managed JIT stub call.
- jit/JITArithmetic.cpp: (JSC::JIT::compileFastArithSlow_op_rshift): Fully use the JITStubCall abstraction, instead of emitPutJITStubArg.
- 9:01 AM Changeset in webkit [43440] by
-
- 2 edits in trunk/JavaScriptCore
2009-05-09 Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
Reviewed by Gustavo Noronha.
https://bugs.webkit.org/show_bug.cgi?id=25653
PLATFORM(X86_64) inherits ia64
ia64 is defined by gcc in an IA64 arch and has completely
nothing in common with X86-64 exept both are from Intel and have
an 64bit address space. That's it. Since code seems to expect x86
here, ia64 has to go.
- wtf/Platform.h:
- 8:44 AM Changeset in webkit [43439] by
-
- 2 edits in trunk/JavaScriptCore
2009-05-09 Gustavo Noronha Silva <Gustavo Noronha Silva>
Suggested by Geoffrey Garen.
Assume SSE2 is present on X86-64 and on MAC X86-32. This fixes a
build breakage on non-Mac X86-64 when JIT is enabled.
- jit/JITArithmetic.cpp:
- 8:14 AM Changeset in webkit [43438] by
-
- 3 edits in branches/nitro-extreme/JavaScriptCore
2009-05-09 Sam Weinig <sam@webkit.org>
Cleanup. Switch uses of known int immediate access from using low
level u.asBits.payload to using asInt32().
- jit/JIT.cpp: (JSC::JIT::privateCompileMainPass):
- jit/JITArithmetic.cpp: (JSC::JIT::emitAddConstant32): (JSC::JIT::emitSub32): (JSC::JIT::emitMulConstant32): (JSC::JIT::emitMod32): (JSC::JIT::emitBitAndConstant32): (JSC::JIT::emitBitOrConstant32): (JSC::JIT::emitBitXorConstant32): (JSC::JIT::emitLeftShift32): (JSC::JIT::emitRightShift32):
- 7:38 AM Changeset in webkit [43437] by
-
- 4 edits in trunk
Build fix, adding missing files to make dist.
- 2:26 AM Changeset in webkit [43436] by
-
- 22 edits in trunk/LayoutTests
Correct the results from the previous patch
- 2:19 AM Changeset in webkit [43435] by
-
- 22 edits in trunk/LayoutTests
Update Windows-specific layout test results for textarea intrinsic
margins following r43355
- 1:54 AM Changeset in webkit [43434] by
-
- 2 edits in trunk/JavaScriptCore
2009-05-09 Geoffrey Garen <ggaren@apple.com>
Windows build fix.
- assembler/X86Assembler.h: (JSC::X86Assembler::patchLoadToLEA):
- 1:49 AM Changeset in webkit [43433] by
-
- 2 edits in trunk/JavaScriptCore
2009-05-09 Geoffrey Garen <ggaren@apple.com>
Windows build fix.
- assembler/X86Assembler.h: (JSC::X86Assembler::patchLoadToLEA):
- 1:35 AM Changeset in webkit [43432] by
-
- 12 edits in trunk/JavaScriptCore
2009-05-09 Maciej Stachowiak <mjs@apple.com>
Reviewed by Gavin Barraclough.
Original patch by John McCall. Updated by Cameron Zwarich. Further refined by me.
- Assorted speedups to property access
~.3%-1% speedup on SunSpider
1) When we know from the structure ID that an object is using inline storage, plant direct
loads and stores against it; no need to indirect through storage pointer.
2) Also because of the above, union the property storage pointer with the first inline property
slot and add an extra inline property slot.
- assembler/AbstractMacroAssembler.h: (JSC::AbstractMacroAssembler::CodeLocationInstruction::CodeLocationInstruction): (JSC::AbstractMacroAssembler::CodeLocationInstruction::patchLoadToLEA): (JSC::::CodeLocationCommon::instructionAtOffset):
- assembler/MacroAssembler.h: (JSC::MacroAssembler::storePtr):
- assembler/MacroAssemblerX86.h: (JSC::MacroAssemblerX86::store32):
- assembler/MacroAssemblerX86_64.h: (JSC::MacroAssemblerX86_64::storePtr):
- assembler/X86Assembler.h: (JSC::X86Assembler::movq_EAXm): (JSC::X86Assembler::movl_rm): (JSC::X86Assembler::patchLoadToLEA):
- jit/JIT.cpp: (JSC::JIT::privateCompileMainPass):
- jit/JIT.h:
- jit/JITPropertyAccess.cpp: (JSC::JIT::compileGetByIdHotPath): (JSC::JIT::compilePutByIdHotPath): (JSC::JIT::compilePutDirectOffset): (JSC::JIT::compileGetDirectOffset): (JSC::JIT::privateCompilePutByIdTransition): (JSC::JIT::patchGetByIdSelf): (JSC::JIT::patchPutByIdReplace): (JSC::JIT::privateCompileGetByIdSelf): (JSC::JIT::privateCompileGetByIdProto): (JSC::JIT::privateCompileGetByIdSelfList): (JSC::JIT::privateCompileGetByIdProtoList): (JSC::JIT::privateCompileGetByIdChainList): (JSC::JIT::privateCompileGetByIdChain): (JSC::JIT::privateCompilePutByIdReplace):
- runtime/JSObject.cpp: (JSC::JSObject::mark): (JSC::JSObject::removeDirect):
- runtime/JSObject.h: (JSC::JSObject::propertyStorage): (JSC::JSObject::getDirect): (JSC::JSObject::getOffset): (JSC::JSObject::offsetForLocation): (JSC::JSObject::locationForOffset): (JSC::JSObject::getDirectOffset): (JSC::JSObject::putDirectOffset): (JSC::JSObject::isUsingInlineStorage): (JSC::JSObject::): (JSC::JSObject::JSObject): (JSC::JSObject::~JSObject): (JSC::Structure::isUsingInlineStorage): (JSC::JSObject::putDirect): (JSC::JSObject::putDirectWithoutTransition): (JSC::JSObject::allocatePropertyStorageInline):
- runtime/Structure.h:
- 1:24 AM Changeset in webkit [43431] by
-
- 5 edits in trunk/JavaScriptCore
2009-05-09 Geoffrey Garen <ggaren@apple.com>
Reviewed by Gavin Barraclough.
Changed all our JIT stubs so that they return a maximum of 1 JS value or
two non-JS pointers, and do all other value returning through out
parameters, in preparation for 64bit JS values on a 32bit system.
Stubs that used to return two JSValues now return one JSValue and take
and out parameter specifying where in the register array the second
value should go.
SunSpider reports no change.
- jit/JIT.cpp: (JSC::JIT::privateCompileMainPass):
- jit/JITArithmetic.cpp: (JSC::JIT::compileFastArithSlow_op_post_inc): (JSC::JIT::compileFastArithSlow_op_post_dec):
- jit/JITStubs.cpp: (JSC::JITStubs::cti_op_call_arityCheck): (JSC::JITStubs::cti_op_resolve_func): (JSC::JITStubs::cti_op_post_inc): (JSC::JITStubs::cti_op_resolve_with_base): (JSC::JITStubs::cti_op_post_dec):
- jit/JITStubs.h: (JSC::):
- 12:02 AM Changeset in webkit [43430] by
-
- 4 edits in branches/nitro-extreme/JavaScriptCore
2009-05-09 Sam Weinig <sam@webkit.org>
Implement op_mod.
- jit/JIT.cpp: (JSC::JIT::privateCompileMainPass):
- jit/JIT.h:
- jit/JITArithmetic.cpp: (JSC::JIT::emitMod32):