2013-08-03 David Kilzer iOS: Crash in JIT code @ pivotaltracker.com due to incorrect ToPrimitive reported type speculations Merge ToT WebKit r153674. 2013-08-02 Oliver Hunt Incorrect type speculation reported by ToPrimitive https://bugs.webkit.org/show_bug.cgi?id=119458 Reviewed by Mark Hahnenberg. Make sure that we report the correct type possibilities for the output from ToPrimitive * dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::::executeEffects): 2013-08-03 David Kilzer iOS: Incorrect ToString/liveness in MakeRope construction Merge ToT WebKit r153615. 2013-08-01 Oliver Hunt DFG is not enforcing correct ordering of ToString conversion in MakeRope https://bugs.webkit.org/show_bug.cgi?id=119408 Reviewed by Filip Pizlo. Construct ToString and Phantom nodes in advance of MakeRope nodes to ensure that ordering is ensured, and correct values will be reified on OSR exit. * dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::parseBlock): 2013-08-03 David Kilzer iOS: REGRESSION: Crash when opening Facebook.com (119155) Merge ToT WebKit r153410. 2013-07-28 Oliver Hunt REGRESSION: Crash when opening Facebook.com https://bugs.webkit.org/show_bug.cgi?id=119155 Reviewed by Andreas Kling. Scope nodes are always objects, so we should be using SpecObjectOther rather than SpecCellOther. Marking Scopes as CellOther leads to a contradiction in the CFA, resulting in bogus codegen. * dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::::executeEffects): * dfg/DFGPredictionPropagationPhase.cpp: (JSC::DFG::PredictionPropagationPhase::propagate): 2013-08-03 David Kilzer iOS: Removed unused sourceOffset from JSTokenLocation. (118996) Merge ToT WebKit r153071. 2013-07-23 Mark Lam Removed unused sourceOffset from JSTokenLocation. https://bugs.webkit.org/show_bug.cgi?id=118996. Reviewed by Geoffrey Garen. This also removes the assertion reported in the bug because it is now moot, thereby resolving the assertion failure issue on Windows. * bytecompiler/NodesCodegen.cpp: (JSC::ArrayNode::toArgumentList): (JSC::ApplyFunctionCallDotNode::emitBytecode): * parser/Lexer.cpp: (JSC::::lex): * parser/Lexer.h: (JSC::::lexExpectIdentifier): * parser/Nodes.h: * parser/Parser.cpp: (JSC::::Parser): (JSC::::parseFunctionInfo): (JSC::::parseExpressionOrLabelStatement): (JSC::::parseMemberExpression): * parser/Parser.h: (JSC::::parse): * parser/ParserTokens.h: (JSC::JSTokenLocation::JSTokenLocation): 2013-07-31 David Kilzer iOS: Crash beneath jsTypeStringForValue @ zazzle.com (read past the end of the Arguments array) Merge ToT WebKit r153500. 2013-07-30 Mark Hahnenberg GetByVal on Arguments does the wrong size load when checking the Arguments object length https://bugs.webkit.org/show_bug.cgi?id=119281 Reviewed by Geoffrey Garen. This leads to out of bounds accesses and subsequent crashes. * dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileGetByValOnArguments): * dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::compile): 2013-07-31 Andy Estes iOS: CodeBlock DFG entry list isn't getting shrunk-to-fit after linking. (118875) Merged ToT WebKit r152882. 2013-07-18 Andreas Kling CodeBlock DFG entry list isn't getting shrunk-to-fit after linking. Reviewed by Geoffrey Garen. Move the CodeBlock::shrinkToFit() call out of JITCompiler::link() and to the call sites so SpeculativeJIT::linkOSREntries() can fill in CodeBlock::m_dfgData->osrEntry first. 886 kB progression on * dfg/DFGJITCompiler.cpp: (JSC::DFG::JITCompiler::link): (JSC::DFG::JITCompiler::compile): (JSC::DFG::JITCompiler::compileFunction): 2013-07-31 Andy Estes iOS: CodeBlock::m_argumentValueProfiles wastes a lot of memory. (118852) Merged ToT WebKit r152848. 2013-07-18 Andreas Kling CodeBlock::m_argumentValueProfiles wastes a lot of memory. Reviewed by Anders Carlsson. Use Vector::resizeToFit() for CodeBlock::m_argumentValueProfiles. We don't need any padding for growth, since we won't be appending to it anyway. 921 KB progression on * bytecode/CodeBlock.cpp: (JSC::CodeBlock::setNumParameters): 2013-07-30 Andy Estes iOS: [JavaScriptCore] reference to non-existent header in JSValue.h Merged ToT WebKit r152737. 2013-07-16 Mark Hahnenberg Remove reference to JSValueStructSupport.h from JSExport.h https://bugs.webkit.org/show_bug.cgi?id=118746 Reviewed by Filip Pizlo. * API/JSExport.h: No such header exists, so it doesn't make sense to reference it. 2013-07-30 Daniel Bates iOS: Given an empty string, JSStringCreateWithCFString() should not return a JSStringRef whose characters member is NULL Merge ToT WebKit r152807. 2013-07-30 Geoffrey Garen JSStringCreateWithCFString should not convert the empty string into the NULL string https://bugs.webkit.org/show_bug.cgi?id=118816 Reviewed by Sam Weinig. * API/JSStringRef.cpp: (JSStringCreateWithUTF8CString): Removed an extraneous comment, which a previous version of the patch made incorrect. * API/JSStringRefCF.cpp: (JSStringCreateWithCFString): Don't convert the empty string into the null string. 2013-07-24 David Kilzer iOS: DFG string concatenation optimizations might emit speculative nodes after emitting nodes that kill the original inputs (119032) Merge ToT WebKit r153075. 2013-07-23 Filip Pizlo DFG string concatenation optimizations might emit speculative nodes after emitting nodes that kill the original inputs https://bugs.webkit.org/show_bug.cgi?id=119032 Reviewed by Oliver Hunt. It just needs some Phantom action. * dfg/DFGFixupPhase.cpp: (JSC::DFG::FixupPhase::attemptToMakeFastStringAdd): 2013-07-21 David Kilzer iOS: LLInt get_argument_by_val for JSVALUE64 stores into the array profile when it meant to store into the value profile (118865) Merge ToT WebKit r152868. 2013-07-18 Filip Pizlo LLInt get_argument_by_val for JSVALUE64 stores into the array profile when it meant to store into the value profile https://bugs.webkit.org/show_bug.cgi?id=118865 Reviewed by Mark Hahnenberg. * llint/LowLevelInterpreter64.asm: 2013-07-21 David Kilzer iOS: DFG assumes that NewFunction will never pass its input through (118798) Merge ToT WebKit r152813, r152818. 2013-07-17 Filip Pizlo Unreviewed, fix 32-bit after http://trac.webkit.org/changeset/152813 * dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileNewFunctionNoCheck): * dfg/DFGSpeculativeJIT32_64.cpp: (JSC::DFG::SpeculativeJIT::compile): 2013-07-17 Filip Pizlo DFG assumes that NewFunction will never pass its input through https://bugs.webkit.org/show_bug.cgi?id=118798 Reviewed by Sam Weinig. Previously the DFG was assuming that NewFunction always returns a function. That's not the case. It may return whatever was passed to it, if it wasn't passed SpecEmpty. This fact needed to be wired through the compiler. * dfg/DFGAbstractState.cpp: (JSC::DFG::AbstractState::executeEffects): * dfg/DFGAbstractValue.h: (JSC::DFG::AbstractValue::makeTop): * dfg/DFGGraph.cpp: (JSC::DFG::Graph::dump): * dfg/DFGOperations.cpp: * dfg/DFGOperations.h: * dfg/DFGPredictionPropagationPhase.cpp: (JSC::DFG::PredictionPropagationPhase::propagate): * dfg/DFGSpeculativeJIT.h: (JSC::DFG::SpeculativeJIT::callOperation): * dfg/DFGSpeculativeJIT32_64.cpp: (JSC::DFG::SpeculativeJIT::compile): * dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::compile): 2013-07-10 Oliver Hunt JavaScriptCore Uninitialized Memory Vulnerability [V-v31xnbnoc5] Merge OpenSource r152573 2013-07-10 Oliver Hunt NativeExecutable cache needs to use both call and construct functions for key https://bugs.webkit.org/show_bug.cgi?id=118545 Reviewed by Geoffrey Garen. Make the native executable cache make use a key pair so we don't decide to treat all subsequent functions as not being constructors. * jit/JITThunks.cpp: (JSC::JITThunks::hostFunctionStub): * jit/JITThunks.h: * runtime/JSBoundFunction.cpp: (JSC::JSBoundFunction::create): * runtime/JSCell.cpp: (JSC::JSCell::getCallData): (JSC::JSCell::getConstructData): 2013-07-01 Joseph Pecoraro Gracefully handle dropping support for Drop the ENABLE so that fallsback to the appearance of an . It was already handling like a textfield due to RuntimeEnabledFeatures. Reviewed by Jon Lee. * Configurations/FeatureDefines.xcconfig: 2013-07-01 Mark Hahnenberg Seed 1 #2 hang - MobileSafari failed to resume in time (0x8badf00d) due to JSLock deadlock between Reader detection and JS confirm dialog Reviewed by Geoff Garen. DropAllLocks needs to be more judicious with locking the SpinLock when modifying any of JSLock's auxiliary variables (e.g. m_lockCount, m_ownerThread, etc.). * runtime/JSLock.cpp: (JSC::JSLock::unlock): (JSC::JSLock::dropAllLocks): Changed to require a held SpinLock as an argument. (JSC::JSLock::dropAllLocksUnconditionally): Ditto. (JSC::JSLock::grabAllLocks): Ditto. Also now unlocks the SpinLock around acquiring the mutex and then reacquires it after it gets the mutex. We have to do this since we no longer control the locking of the SpinLock. (JSC::JSLock::DropAllLocks::DropAllLocks): DropAllLocks now takes the SpinLock before calling the helper functions. (JSC::JSLock::DropAllLocks::~DropAllLocks): Similarly, ~DropAllLocks now takes the SpinLock before calling grabAllLocks. * runtime/JSLock.h: 2013-06-28 Mark Hahnenberg J85: 11B404: Very high JIT memory usage in vmmap Rubber stamped by Geoff Garen. CPU(ARM) doesn't include CPU(ARM64), which is how we determine the size of our fixed pool of executable memory. * jit/ExecutableAllocator.h: 2013-06-26 Anders Carlsson Add JSStringCreateWithCharactersNoCopy SPI (118074) Merge ToT WebKit r152052. 2013-06-26 Anders Carlsson Add JSStringCreateWithCharactersNoCopy SPI https://bugs.webkit.org/show_bug.cgi?id=118074 Reviewed by Geoffrey Garen. * API/JSStringRef.cpp: (JSStringCreateWithCharactersNoCopy): Create a new OpaqueJSString, using the newly added StringImpl::createWithoutCopying function. * API/JSStringRefPrivate.h: Added. Add a home for the JSStringCreateWithCharactersNoCopy function. * API/OpaqueJSString.h: (OpaqueJSString::OpaqueJSString): Just call isolatedCopy on the passed in string. * API/tests/testapi.c: Add an API test for JSStringCreateWithCharactersNoCopy. * JavaScriptCore.xcodeproj/project.pbxproj: Add new files. 2013-05-30 David Farler run-javascriptcore-tests always returns 0 on Mountain Lion Merged ToT WebKit r150998 2013-05-30 David Farler Fix jscore-test when not using --sdk option with jsDriver.pl https://bugs.webkit.org/show_bug.cgi?id=116339 Reviewed by Joe Pecoraro. * tests/mozilla/jsDriver.pl: (execute_tests): With each test, the shell_command needs to be started from scratch. This fix will clear the shell_command and start over as before with the opt_arch option when not using --sdk with jsDriver.pl. 2013-05-30 David Farler run-javascriptcore-tests always returns 0 on Mountain Lion Merged ToT WebKit r150994 2013-05-22 David Farler Add --sdk option to jsDriver.pl to run with iOS Simulator https://bugs.webkit.org/show_bug.cgi?id=116339 Reviewed by David Kilzer. * tests/mozilla/jsDriver.pl: (execute_tests): Prefix shell command with the path to the "sim" tool. (parse_args): Add -d / --sdk option. (usage): Help message for -d / --sdk option. 2013-05-29 Roger Fong Disable some feature flags. . Rubberstamped by Jon Lee. Disabled flags: ENABLE_CSS_COMPOSITING ENABLE_CSS_EXCLUSIONS ENABLE_CSS_SHADERS ENABLE_IFRAME_SEAMLESS ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED ENABLE_SHARED_WORKERS * Configurations/FeatureDefines.xcconfig: 2013-05-23 Chris Fleizach WEB SPEECH: enable WebSpeech for iOS Reviewed by David Kilzer. * Configurations/FeatureDefines.xcconfig: 2013-05-22 David Farler Add --sdk flag to jsDriver.pl to allow running in the iOS simulator https://bugs.webkit.org/show_bug.cgi?id=116339 Reviewed by Joe Pecoraro. * tests/mozilla/jsDriver.pl: (execute_tests): Use -find to prevent false return 0 from xcrun on Mountain Lion. 2013-05-20 Oliver Hunt CrashTracer: Crash ReaderController::collectReadingListItemInformation() due to passing a NULL ctx to JSValueIsObject( Merged ToT WebKit r150381 2013-05-20 Oliver Hunt Make C API more robust against null contexts https://bugs.webkit.org/show_bug.cgi?id=116462 Reviewed by Anders Carlsson. Handle null contexts in a non-crashy way. It's a bug to ever call the API with a null context, and the absence of a context means we can't produce a meaningful result, so we still assert in debug builds. Now where possible we detect and early return, returning null for any pointer type, NaN for doubles, and false for any boolean result. * API/JSBase.cpp: (JSEvaluateScript): (JSCheckScriptSyntax): (JSReportExtraMemoryCost): * API/JSContextRef.cpp: (JSContextGetGlobalObject): (JSContextGetGroup): (JSContextGetGlobalContext): (JSContextCreateBacktrace): * API/JSObjectRef.cpp: (JSObjectMake): (JSObjectMakeFunctionWithCallback): (JSObjectMakeConstructor): (JSObjectMakeFunction): (JSObjectMakeArray): (JSObjectMakeDate): (JSObjectMakeError): (JSObjectMakeRegExp): (JSObjectGetPrototype): (JSObjectSetPrototype): (JSObjectHasProperty): (JSObjectGetProperty): (JSObjectSetProperty): (JSObjectGetPropertyAtIndex): (JSObjectSetPropertyAtIndex): (JSObjectDeleteProperty): (JSObjectCopyPropertyNames): * API/JSValueRef.cpp: (JSValueGetType): (JSValueIsUndefined): (JSValueIsNull): (JSValueIsBoolean): (JSValueIsNumber): (JSValueIsString): (JSValueIsObject): (JSValueIsObjectOfClass): (JSValueIsEqual): (JSValueIsStrictEqual): (JSValueIsInstanceOfConstructor): (JSValueMakeUndefined): (JSValueMakeNull): (JSValueMakeBoolean): (JSValueMakeNumber): (JSValueMakeString): (JSValueMakeFromJSONString): (JSValueCreateJSONString): (JSValueToBoolean): (JSValueToNumber): (JSValueToStringCopy): (JSValueToObject): (JSValueProtect): * API/JSWeakObjectMapRefPrivate.cpp: 2013-05-17 David Farler MobileSafari buildbot: jscore-test fails for the simulator: dyld: Symbol not found: _objc_isAuto Reviewed by David Kilzer and Joe Pecoraro. * tests/mozilla/jsDriver.pl: Add -d/--sdk option to use a simulator SDK. (execute_tests): Prefix jsc command with xcrun sim call if SDK is set. 2013-05-15 Oliver Hunt REGRESSION: Crash beneath createScriptCallStackFromException @ www.cars.com Merged ToT WebKit 150160 2013-05-15 Oliver Hunt RefCountedArray needs to use vector initialisers for its backing store https://bugs.webkit.org/show_bug.cgi?id=116194 Reviewed by Gavin Barraclough. Use an out of line function to clear the exception stack to avoid needing to include otherwise unnecessary headers all over the place. Everything else is just being updated to use that. * bytecompiler/BytecodeGenerator.cpp: * interpreter/CallFrame.h: (JSC::ExecState::clearSupplementaryExceptionInfo): * interpreter/Interpreter.cpp: (JSC::Interpreter::addStackTraceIfNecessary): (JSC::Interpreter::throwException): * runtime/JSGlobalObject.cpp: (JSC::DynamicGlobalObjectScope::DynamicGlobalObjectScope): * runtime/VM.cpp: (JSC): (JSC::VM::clearExceptionStack): * runtime/VM.h: (VM): (JSC::VM::exceptionStack): 2013-05-14 Mark Lam Rename globalData to vm to match the renaming in the rest of the code. This unbreaks the debug build for arm64. Reviewed by Mark Hahnenberg. * jit/JITStubs.cpp: (JSC::performPlatformSpecificJITAssertions): 2013-05-14 Mark Hahnenberg Objective-C API: Bridging between C API and Obj-C API should be part of the public interface Merged ToT WebKit r149401 2013-04-30 Geoffrey Garen Objective-C JavaScriptCore API should publicly support bridging to C https://bugs.webkit.org/show_bug.cgi?id=115447 Reviewed by Mark Hahnenberg. For consistency, I renamed +[JSValue valueWithValue:] => +[JSValue valueWithJSValueRef] +[JSContext contextWithGlobalContextRef] => +[JSContext contextWithJSGlobalContextRef] -[JSContext globalContext] => -[JSContext JSGlobalContextRef] I searched svn to verify that these functions don't have clients yet, so we won't break anything. I also exported as public API +[JSValue valueWithJSValueRef:] +[JSContext contextWithJSGlobalContextRef:] It's hard to integrate with the C API without these. 2013-05-13 Mark Hahnenberg REGRESSION: Deadlock in AdSheet during JavaScript GC Merged ToT WebKit r150050. 2013-05-13 Mark Hahnenberg Objective-C API: scanExternalObjectGraph should not create new JSVirtualMachine wrappers https://bugs.webkit.org/show_bug.cgi?id=116074 If scanExternalObjectGraph creates a new JSVirtualMachine wrapper during collection, when the scanExternalObjectGraph call finishes and the autorelease pool is drained we will dealloc the JSVirtualMachine which will cause us to try to take the API lock for the corresponding VM. If this happens on a GC thread other than the "main" thread, we will deadlock. The solution is to just check the VM cache, and if there is no JSVirtualMachine wrapper, return early. Reviewed by Darin Adler. * API/JSVirtualMachine.mm: (scanExternalObjectGraph): 2013-05-09 Michael Saboff Merged ToT WebKit r149821. 2013-05-08 Michael Saboff JSC: There should be a disassembler for ARM Thumb 2 https://bugs.webkit.org/show_bug.cgi?id=115827 Reviewed by Filip Pizlo. Added a new disassembler for ARMv7 Thumb2 instructions for use by the JSC debugging and profiling code. The opcode coverage is currently not complete. It covers all of the integer instructions JSC currently emits, but only a limited number of floating point opcodes. Currently that is just the 64 bit vmov and vmsr instructions. The disassembler is structured as a base opcode class ARMv7DOpcode with sub-classes for each instruction group. There is a public format method that does the bulk of the disassembly work. There are two broad sub-classes, ARMv7D16BitOpcode and ARMv7D32BitOpcode, for the 16 bit and 32 bit opcodes. There are sub-classes under those two classes for individual and related groups of opcodes. Instructions are "dispatched" to the right subclass via two arrays of linked lists in the inner classes OpcodeGroup. There is one such inner class for each ARMv7D16BitOpcode and ARMv7D32BitOpcode. Each OpcodeGroup has a mask and a pattern that it applies to the instruction to determine that it matches a particular group. OpcodeGroup uses a static method to reinterpret_cast the Opcode object to the right base class for the instruction group for formatting. The cast eliminates the need of allocating an object for each decoded instruction. Unknown instructions are formatted as ".word 1234" or ".long 12345678" depending whether the instruction is 16 or 32 bit. * JavaScriptCore.xcodeproj/project.pbxproj: * disassembler/ARMv7: Added. * disassembler/ARMv7/ARMv7DOpcode.cpp: Added. (ARMv7Disassembler): (OpcodeGroupInitializer): (JSC::ARMv7Disassembler::ARMv7DOpcode::init): (JSC::ARMv7Disassembler::ARMv7DOpcode::startITBlock): (JSC::ARMv7Disassembler::ARMv7DOpcode::saveITConditionAt): (JSC::ARMv7Disassembler::ARMv7DOpcode::fetchOpcode): (JSC::ARMv7Disassembler::ARMv7DOpcode::disassemble): (JSC::ARMv7Disassembler::ARMv7DOpcode::bufferPrintf): (JSC::ARMv7Disassembler::ARMv7DOpcode::appendInstructionName): (JSC::ARMv7Disassembler::ARMv7DOpcode::appendRegisterName): (JSC::ARMv7Disassembler::ARMv7DOpcode::appendRegisterList): (JSC::ARMv7Disassembler::ARMv7DOpcode::appendFPRegisterName): (JSC::ARMv7Disassembler::ARMv7D16BitOpcode::init): (JSC::ARMv7Disassembler::ARMv7D16BitOpcode::doDisassemble): (JSC::ARMv7Disassembler::ARMv7D16BitOpcode::defaultFormat): (JSC::ARMv7Disassembler::ARMv7DOpcodeAddRegisterT2::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSPPlusImmediate::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSubtractT1::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSubtractImmediate3::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSubtractImmediate8::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeBranchConditionalT1::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeBranchExchangeT1::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeBranchT2::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeCompareImmediateT1::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeCompareRegisterT1::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeCompareRegisterT2::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingRegisterT1::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeGeneratePCRelativeAddress::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadFromLiteralPool::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterImmediate::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterOffsetT1::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterSPRelative::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeLogicalImmediateT1::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscAddSubSP::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscBreakpointT1::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscByteHalfwordOps::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscCompareAndBranch::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscHint16::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscIfThenT1::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscPushPop::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeMoveImmediateT1::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeMoveRegisterT1::format): (JSC::ARMv7Disassembler::ARMv7D32BitOpcode::init): (JSC::ARMv7Disassembler::ARMv7D32BitOpcode::doDisassemble): (JSC::ARMv7Disassembler::ARMv7D32BitOpcode::defaultFormat): (JSC::ARMv7Disassembler::ARMv7DOpcodeConditionalBranchT3::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeBranchOrBranchLink::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingModifiedImmediate::appendModifiedImmediate): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingModifiedImmediate::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingShiftedReg::appendImmShift): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingShiftedReg::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeFPTransfer::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeFPTransfer::appendFPRegister): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingRegShift::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingRegExtend::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingRegParallel::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingRegMisc::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeHint32::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadRegister::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadSignedImmediate::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadUnsignedImmediate::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeLongMultipleDivide::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeUnmodifiedImmediate::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataPushPopSingle::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeStoreSingleImmediate12::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeStoreSingleImmediate8::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeStoreSingleRegister::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeVMOVDoublePrecision::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeVMOVSinglePrecision::format): (JSC::ARMv7Disassembler::ARMv7DOpcodeVMSR::format): * disassembler/ARMv7/ARMv7DOpcode.h: Added. (ARMv7Disassembler): (ARMv7DOpcode): (JSC::ARMv7Disassembler::ARMv7DOpcode::ARMv7DOpcode): (JSC::ARMv7Disassembler::ARMv7DOpcode::is32BitInstruction): (JSC::ARMv7Disassembler::ARMv7DOpcode::isFPInstruction): (JSC::ARMv7Disassembler::ARMv7DOpcode::conditionName): (JSC::ARMv7Disassembler::ARMv7DOpcode::shiftName): (JSC::ARMv7Disassembler::ARMv7DOpcode::inITBlock): (JSC::ARMv7Disassembler::ARMv7DOpcode::startingITBlock): (JSC::ARMv7Disassembler::ARMv7DOpcode::endITBlock): (JSC::ARMv7Disassembler::ARMv7DOpcode::appendInstructionNameNoITBlock): (JSC::ARMv7Disassembler::ARMv7DOpcode::appendSeparator): (JSC::ARMv7Disassembler::ARMv7DOpcode::appendCharacter): (JSC::ARMv7Disassembler::ARMv7DOpcode::appendString): (JSC::ARMv7Disassembler::ARMv7DOpcode::appendShiftType): (JSC::ARMv7Disassembler::ARMv7DOpcode::appendSignedImmediate): (JSC::ARMv7Disassembler::ARMv7DOpcode::appendUnsignedImmediate): (JSC::ARMv7Disassembler::ARMv7DOpcode::appendPCRelativeOffset): (JSC::ARMv7Disassembler::ARMv7DOpcode::appendShiftAmount): (ARMv7D16BitOpcode): (OpcodeGroup): (JSC::ARMv7Disassembler::ARMv7D16BitOpcode::OpcodeGroup::OpcodeGroup): (JSC::ARMv7Disassembler::ARMv7D16BitOpcode::OpcodeGroup::setNext): (JSC::ARMv7Disassembler::ARMv7D16BitOpcode::OpcodeGroup::next): (JSC::ARMv7Disassembler::ARMv7D16BitOpcode::OpcodeGroup::matches): (JSC::ARMv7Disassembler::ARMv7D16BitOpcode::OpcodeGroup::format): (JSC::ARMv7Disassembler::ARMv7D16BitOpcode::rm): (JSC::ARMv7Disassembler::ARMv7D16BitOpcode::rd): (JSC::ARMv7Disassembler::ARMv7D16BitOpcode::opcodeGroupNumber): (ARMv7DOpcodeAddRegisterT2): (JSC::ARMv7Disassembler::ARMv7DOpcodeAddRegisterT2::rdn): (JSC::ARMv7Disassembler::ARMv7DOpcodeAddRegisterT2::rm): (ARMv7DOpcodeAddSPPlusImmediate): (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSPPlusImmediate::rd): (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSPPlusImmediate::immediate8): (ARMv7DOpcodeAddSubtract): (ARMv7DOpcodeAddSubtractT1): (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSubtractT1::opName): (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSubtractT1::op): (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSubtractT1::rm): (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSubtractT1::rn): (ARMv7DOpcodeAddSubtractImmediate3): (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSubtractImmediate3::opName): (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSubtractImmediate3::op): (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSubtractImmediate3::immediate3): (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSubtractImmediate3::rn): (ARMv7DOpcodeAddSubtractImmediate8): (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSubtractImmediate8::opName): (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSubtractImmediate8::op): (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSubtractImmediate8::rdn): (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSubtractImmediate8::immediate8): (ARMv7DOpcodeBranchConditionalT1): (JSC::ARMv7Disassembler::ARMv7DOpcodeBranchConditionalT1::condition): (JSC::ARMv7Disassembler::ARMv7DOpcodeBranchConditionalT1::offset): (ARMv7DOpcodeBranchExchangeT1): (JSC::ARMv7Disassembler::ARMv7DOpcodeBranchExchangeT1::opName): (JSC::ARMv7Disassembler::ARMv7DOpcodeBranchExchangeT1::rm): (ARMv7DOpcodeBranchT2): (JSC::ARMv7Disassembler::ARMv7DOpcodeBranchT2::immediate11): (ARMv7DOpcodeCompareImmediateT1): (JSC::ARMv7Disassembler::ARMv7DOpcodeCompareImmediateT1::rn): (JSC::ARMv7Disassembler::ARMv7DOpcodeCompareImmediateT1::immediate8): (ARMv7DOpcodeCompareRegisterT1): (JSC::ARMv7Disassembler::ARMv7DOpcodeCompareRegisterT1::rn): (ARMv7DOpcodeCompareRegisterT2): (JSC::ARMv7Disassembler::ARMv7DOpcodeCompareRegisterT2::rn): (JSC::ARMv7Disassembler::ARMv7DOpcodeCompareRegisterT2::rm): (ARMv7DOpcodeDataProcessingRegisterT1): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingRegisterT1::opName): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingRegisterT1::op): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingRegisterT1::rm): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingRegisterT1::rdn): (ARMv7DOpcodeGeneratePCRelativeAddress): (JSC::ARMv7Disassembler::ARMv7DOpcodeGeneratePCRelativeAddress::rd): (JSC::ARMv7Disassembler::ARMv7DOpcodeGeneratePCRelativeAddress::immediate8): (ARMv7DOpcodeLoadFromLiteralPool): (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadFromLiteralPool::rt): (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadFromLiteralPool::immediate8): (ARMv7DOpcodeLoadStoreRegisterImmediate): (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterImmediate::opName): (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterImmediate::op): (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterImmediate::immediate5): (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterImmediate::rn): (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterImmediate::rt): (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterImmediate::scale): (ARMv7DOpcodeLoadStoreRegisterImmediateWordAndByte): (ARMv7DOpcodeLoadStoreRegisterImmediateHalfWord): (ARMv7DOpcodeLoadStoreRegisterOffsetT1): (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterOffsetT1::opName): (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterOffsetT1::opB): (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterOffsetT1::rm): (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterOffsetT1::rn): (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterOffsetT1::rt): (ARMv7DOpcodeLoadStoreRegisterSPRelative): (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterSPRelative::opName): (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterSPRelative::op): (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterSPRelative::rt): (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterSPRelative::immediate8): (ARMv7DOpcodeLogicalImmediateT1): (JSC::ARMv7Disassembler::ARMv7DOpcodeLogicalImmediateT1::opName): (JSC::ARMv7Disassembler::ARMv7DOpcodeLogicalImmediateT1::op): (JSC::ARMv7Disassembler::ARMv7DOpcodeLogicalImmediateT1::immediate5): (ARMv7DOpcodeMiscAddSubSP): (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscAddSubSP::opName): (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscAddSubSP::op): (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscAddSubSP::immediate7): (ARMv7DOpcodeMiscByteHalfwordOps): (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscByteHalfwordOps::opName): (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscByteHalfwordOps::op): (ARMv7DOpcodeMiscBreakpointT1): (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscBreakpointT1::immediate8): (ARMv7DOpcodeMiscCompareAndBranch): (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscCompareAndBranch::opName): (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscCompareAndBranch::op): (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscCompareAndBranch::immediate6): (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscCompareAndBranch::rn): (ARMv7DOpcodeMiscHint16): (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscHint16::opName): (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscHint16::opA): (ARMv7DOpcodeMiscIfThenT1): (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscIfThenT1::firstCondition): (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscIfThenT1::mask): (ARMv7DOpcodeMiscPushPop): (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscPushPop::opName): (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscPushPop::op): (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscPushPop::registerMask): (ARMv7DOpcodeMoveImmediateT1): (JSC::ARMv7Disassembler::ARMv7DOpcodeMoveImmediateT1::rd): (JSC::ARMv7Disassembler::ARMv7DOpcodeMoveImmediateT1::immediate8): (ARMv7DOpcodeMoveRegisterT1): (JSC::ARMv7Disassembler::ARMv7DOpcodeMoveRegisterT1::rd): (JSC::ARMv7Disassembler::ARMv7DOpcodeMoveRegisterT1::rm): (ARMv7D32BitOpcode): (JSC::ARMv7Disassembler::ARMv7D32BitOpcode::OpcodeGroup::OpcodeGroup): (JSC::ARMv7Disassembler::ARMv7D32BitOpcode::OpcodeGroup::setNext): (JSC::ARMv7Disassembler::ARMv7D32BitOpcode::OpcodeGroup::next): (JSC::ARMv7Disassembler::ARMv7D32BitOpcode::OpcodeGroup::matches): (JSC::ARMv7Disassembler::ARMv7D32BitOpcode::OpcodeGroup::format): (JSC::ARMv7Disassembler::ARMv7D32BitOpcode::rd): (JSC::ARMv7Disassembler::ARMv7D32BitOpcode::rm): (JSC::ARMv7Disassembler::ARMv7D32BitOpcode::rn): (JSC::ARMv7Disassembler::ARMv7D32BitOpcode::rt): (JSC::ARMv7Disassembler::ARMv7D32BitOpcode::opcodeGroupNumber): (ARMv7DOpcodeBranchRelative): (JSC::ARMv7Disassembler::ARMv7DOpcodeBranchRelative::sBit): (JSC::ARMv7Disassembler::ARMv7DOpcodeBranchRelative::j1): (JSC::ARMv7Disassembler::ARMv7DOpcodeBranchRelative::j2): (JSC::ARMv7Disassembler::ARMv7DOpcodeBranchRelative::immediate11): (ARMv7DOpcodeConditionalBranchT3): (JSC::ARMv7Disassembler::ARMv7DOpcodeConditionalBranchT3::offset): (JSC::ARMv7Disassembler::ARMv7DOpcodeConditionalBranchT3::condition): (JSC::ARMv7Disassembler::ARMv7DOpcodeConditionalBranchT3::immediate6): (ARMv7DOpcodeBranchOrBranchLink): (JSC::ARMv7Disassembler::ARMv7DOpcodeBranchOrBranchLink::offset): (JSC::ARMv7Disassembler::ARMv7DOpcodeBranchOrBranchLink::immediate10): (JSC::ARMv7Disassembler::ARMv7DOpcodeBranchOrBranchLink::isBL): (ARMv7DOpcodeDataProcessingLogicalAndRithmetic): (ARMv7DOpcodeDataProcessingModifiedImmediate): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingModifiedImmediate::opName): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingModifiedImmediate::op): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingModifiedImmediate::sBit): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingModifiedImmediate::immediate12): (ARMv7DOpcodeDataProcessingShiftedReg): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingShiftedReg::opName): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingShiftedReg::sBit): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingShiftedReg::op): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingShiftedReg::immediate5): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingShiftedReg::type): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingShiftedReg::tbBit): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingShiftedReg::tBit): (ARMv7DOpcodeDataProcessingReg): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingReg::op1): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingReg::op2): (ARMv7DOpcodeDataProcessingRegShift): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingRegShift::opName): (ARMv7DOpcodeDataProcessingRegExtend): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingRegExtend::opExtendName): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingRegExtend::opExtendAndAddName): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingRegExtend::rotate): (ARMv7DOpcodeDataProcessingRegParallel): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingRegParallel::opName): (ARMv7DOpcodeDataProcessingRegMisc): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingRegMisc::opName): (ARMv7DOpcodeHint32): (JSC::ARMv7Disassembler::ARMv7DOpcodeHint32::opName): (JSC::ARMv7Disassembler::ARMv7DOpcodeHint32::isDebugHint): (JSC::ARMv7Disassembler::ARMv7DOpcodeHint32::debugOption): (JSC::ARMv7Disassembler::ARMv7DOpcodeHint32::op): (ARMv7DOpcodeFPTransfer): (JSC::ARMv7Disassembler::ARMv7DOpcodeFPTransfer::opH): (JSC::ARMv7Disassembler::ARMv7DOpcodeFPTransfer::opL): (JSC::ARMv7Disassembler::ARMv7DOpcodeFPTransfer::rt): (JSC::ARMv7Disassembler::ARMv7DOpcodeFPTransfer::opC): (JSC::ARMv7Disassembler::ARMv7DOpcodeFPTransfer::opB): (JSC::ARMv7Disassembler::ARMv7DOpcodeFPTransfer::vd): (JSC::ARMv7Disassembler::ARMv7DOpcodeFPTransfer::vn): (ARMv7DOpcodeDataLoad): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataLoad::opName): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataLoad::op): (ARMv7DOpcodeLoadRegister): (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadRegister::immediate2): (ARMv7DOpcodeLoadSignedImmediate): (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadSignedImmediate::pBit): (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadSignedImmediate::uBit): (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadSignedImmediate::wBit): (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadSignedImmediate::immediate8): (ARMv7DOpcodeLoadUnsignedImmediate): (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadUnsignedImmediate::immediate12): (ARMv7DOpcodeLongMultipleDivide): (JSC::ARMv7Disassembler::ARMv7DOpcodeLongMultipleDivide::opName): (JSC::ARMv7Disassembler::ARMv7DOpcodeLongMultipleDivide::smlalOpName): (JSC::ARMv7Disassembler::ARMv7DOpcodeLongMultipleDivide::smlaldOpName): (JSC::ARMv7Disassembler::ARMv7DOpcodeLongMultipleDivide::smlsldOpName): (JSC::ARMv7Disassembler::ARMv7DOpcodeLongMultipleDivide::rdLo): (JSC::ARMv7Disassembler::ARMv7DOpcodeLongMultipleDivide::rdHi): (JSC::ARMv7Disassembler::ARMv7DOpcodeLongMultipleDivide::op1): (JSC::ARMv7Disassembler::ARMv7DOpcodeLongMultipleDivide::op2): (JSC::ARMv7Disassembler::ARMv7DOpcodeLongMultipleDivide::nBit): (JSC::ARMv7Disassembler::ARMv7DOpcodeLongMultipleDivide::mBit): (ARMv7DOpcodeDataPushPopSingle): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataPushPopSingle::opName): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataPushPopSingle::op): (ARMv7DOpcodeDataStoreSingle): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataStoreSingle::opName): (JSC::ARMv7Disassembler::ARMv7DOpcodeDataStoreSingle::op): (ARMv7DOpcodeStoreSingleImmediate12): (JSC::ARMv7Disassembler::ARMv7DOpcodeStoreSingleImmediate12::immediate12): (ARMv7DOpcodeStoreSingleImmediate8): (JSC::ARMv7Disassembler::ARMv7DOpcodeStoreSingleImmediate8::pBit): (JSC::ARMv7Disassembler::ARMv7DOpcodeStoreSingleImmediate8::uBit): (JSC::ARMv7Disassembler::ARMv7DOpcodeStoreSingleImmediate8::wBit): (JSC::ARMv7Disassembler::ARMv7DOpcodeStoreSingleImmediate8::immediate8): (ARMv7DOpcodeStoreSingleRegister): (JSC::ARMv7Disassembler::ARMv7DOpcodeStoreSingleRegister::immediate2): (ARMv7DOpcodeUnmodifiedImmediate): (JSC::ARMv7Disassembler::ARMv7DOpcodeUnmodifiedImmediate::opName): (JSC::ARMv7Disassembler::ARMv7DOpcodeUnmodifiedImmediate::op): (JSC::ARMv7Disassembler::ARMv7DOpcodeUnmodifiedImmediate::shBit): (JSC::ARMv7Disassembler::ARMv7DOpcodeUnmodifiedImmediate::bitNumOrSatImmediate): (JSC::ARMv7Disassembler::ARMv7DOpcodeUnmodifiedImmediate::immediate5): (JSC::ARMv7Disassembler::ARMv7DOpcodeUnmodifiedImmediate::immediate12): (JSC::ARMv7Disassembler::ARMv7DOpcodeUnmodifiedImmediate::immediate16): (ARMv7DOpcodeVMOVDoublePrecision): (JSC::ARMv7Disassembler::ARMv7DOpcodeVMOVDoublePrecision::op): (JSC::ARMv7Disassembler::ARMv7DOpcodeVMOVDoublePrecision::rt2): (JSC::ARMv7Disassembler::ARMv7DOpcodeVMOVDoublePrecision::rt): (JSC::ARMv7Disassembler::ARMv7DOpcodeVMOVDoublePrecision::vm): (ARMv7DOpcodeVMOVSinglePrecision): (JSC::ARMv7Disassembler::ARMv7DOpcodeVMOVSinglePrecision::op): (JSC::ARMv7Disassembler::ARMv7DOpcodeVMOVSinglePrecision::rt2): (JSC::ARMv7Disassembler::ARMv7DOpcodeVMOVSinglePrecision::rt): (JSC::ARMv7Disassembler::ARMv7DOpcodeVMOVSinglePrecision::vm): (ARMv7DOpcodeVMSR): (JSC::ARMv7Disassembler::ARMv7DOpcodeVMSR::opL): (JSC::ARMv7Disassembler::ARMv7DOpcodeVMSR::rt): * disassembler/ARMv7Disassembler.cpp: Added. (JSC::tryToDisassemble): 2013-04-29 David Kilzer Make sure that CSS shaders are not enabled when we ship Innsbruck Reviewed by Joseph Pecoraro. * Configurations/FeatureDefines.xcconfig: Turn off ENABLE_CSS_SHADERS on iOS. 2013-04-26 Benjamin Poulain Use frintp instead of calling ceil() on ARMv8 Reviewed by Filip Pizlo. Like floor(), it is about two times faster than calling the C function. * assembler/MacroAssemblerARM64.h: (JSC::MacroAssemblerARM64::ceilDouble): (MacroAssemblerARM64): * jit/ThunkGenerators.cpp: (JSC::ceilThunkGenerator): 2013-04-25 Mark Hahnenberg Support OS-version-specific install paths for JavaScriptCore.framework Reviewed by David Kilzer. * API/JSBase.cpp: Added special symbols that tell the linker where to find JSC on older systems. 2013-04-25 Benjamin Poulain Use frintm instead of calling floor() on ARMv8 Reviewed by Filip Pizlo. We can do floor() in one instruction on ARMv8. Add floorDouble() to the MacroAssembler and use that instead of invoking the C function floor(). * assembler/MacroAssemblerARM64.h: (JSC::MacroAssemblerARM64::floorDouble): (MacroAssemblerARM64): * jit/ThunkGenerators.cpp: (JSC::floorThunkGenerator): 2013-04-25 Benjamin Poulain Special thunks for math functions should work on ARMv8 Reviewed by Filip Pizlo. * jit/ThunkGenerators.cpp: Add a ARMv8 thunks for math functions similar to Filip's optimization on ARMv7. 2013-04-25 Michael Saboff PEP Web: N41/11A344: MobileSafari crashed at JSC::speculationFromValue when running Alexa test. Merged ToT WebKit r149128. 2013-04-25 Michael Saboff 32 Bit: Crash due to RegExpTest nodes not setting result type to Boolean https://bugs.webkit.org/show_bug.cgi?id=115188 Reviewed by Geoff Garen. Changed the RegExpTest node to set the AbstractValue to boolean, since that what it is. * dfg/DFGAbstractState.cpp: (JSC::DFG::AbstractState::executeEffects): 2013-04-24 Filip Pizlo Merge r149082. Nice speedup on Kraken with ARMv7. 2013-04-24 Filip Pizlo Special thunks for math functions should work on ARMv7 https://bugs.webkit.org/show_bug.cgi?id=115144 Reviewed by Gavin Barraclough and Oliver Hunt. The only hard bit here was ensuring that we implemented the very special "cheap C call" convention on ARMv7. * assembler/AbstractMacroAssembler.h: (JSC::isARMv7s): (JSC): (JSC::isX86): * dfg/DFGCommon.h: * jit/SpecializedThunkJIT.h: (SpecializedThunkJIT): (JSC::SpecializedThunkJIT::callDoubleToDoublePreservingReturn): * jit/ThunkGenerators.cpp: (JSC::floorThunkGenerator): (JSC::ceilThunkGenerator): (JSC::roundThunkGenerator): (JSC::expThunkGenerator): (JSC::logThunkGenerator): 2013-04-08 David Farler jsc codesign is failing on engineering builds and on some buildbots Reviewed by NOBODY (OOPS!). For the simulator, the tail end of the invocation is ending up as "... --entitlements jsc", because there are no entitlements for the simulator. For the device, we have to use --force to protect incremental builds. If jsc isn't rebuilt and copied, it'll already be signed and codesign will return non-zero even though nothing is wrong. * JavaScriptCore.xcodeproj/project.pbxproj: - Add a check for $CODE_SIGNING_ALLOWED && &AD_HOC_CODE_SIGNING_ALLOWED around the resigning block. - Add --force to the codesign invocation to protect second-round builds of jsc. - Use one invocation of codesign with ${CODE_SIGN_IDENTITY:=-} instead of an if statement. 2013-04-07 David Farler MAP_JIT Entitlements set inconsistently for jsc command-line binaries Reviewed by NOBODY (OOPS!). * JavaScriptCore.xcodeproj/project.pbxproj: If the configuration is Production or the action is "install", the install path for jsc will be set to the framework path and will be codesigned. For other configurations and actions, the jsc binary is placed in the build products directory and is also signed. However, when copying that binary into the framework, the code signature is lost. We can resign the binary with the same entitlements and identity (parameterized for safety here, but ad-hoc in practice). 2013-03-19 Joseph Pecoraro Sub-TLF: Add JS APIs to trigger AirPlay from web pages, for HTML5