summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore
Commit message (Collapse)AuthorAgeFilesLines
* [mips] Fix or32 implementation in macro assembler.Julien Brianceau2014-04-081-1/+3
| | | | | | | | This patch fixes JavaScript issues for the mips backend, especially in the DFG stage when using (x|0) expressions. Change-Id: I4c7c7280735481dc06ca24745d2e42b2d8e13ef5 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
* Fix compiler warnings when building Qt WebKitAllan Sandfeld Jensen2014-03-181-4/+4
| | | | | | | | Fix warnings about C++11 violating syntax, unused variables in leveldb and non anynomous classes deriving from anonymous ones. Change-Id: I39326eed03fabe2856f1ea7c93eff65f30ee78ee Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Fix build: LLIntAssembly.h is in a subdir of generated/Thiago Macieira2014-03-171-1/+2
| | | | | | | | | ruby /home/thiago/src/qt/qt5/qtwebkit/Source/JavaScriptCore/offlineasm/asm.rb /home/thiago/src/qt/qt5/qtwebkit/Source/JavaScriptCore/llint/LowLevelInterpreter.asm LLIntOffsetsExtractor generated/LLIntOffsetsExtractor/LLIntAssembly.h offlineasm: Parsing /home/thiago/src/qt/qt5/qtwebkit/Source/JavaScriptCore/llint/LowLevelInterpreter.asm and LLIntOffsetsExtractor and creating assembly file generated/LLIntOffsetsExtractor/LLIntAssembly.h. Change-Id: If12f1476de74c3feeb5c6d6e2e115829e1106581 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
* Use qmake optimize_fullAllan Sandfeld Jensen2014-03-101-4/+1
| | | | | | | | | | Qmake now has new config optimize_full that replaces -O2 with -O3. We should use that in QtWebKit instead of trying to do the same ourselves. This makes clang now use -O3 like gcc does. Change-Id: I3db6167833c579bdea941d3ad1b3636cbad62475 Reviewed-by: Michael Bruning <michael.bruning@digia.com>
* Compile fix for Win64 with jit disabled.achristensen@apple.com2014-03-071-1/+1
| | | | | | | | | | | | https://bugs.webkit.org/show_bug.cgi?id=119804 Reviewed by Michael Saboff. * offlineasm/cloop.rb: Added std:: before isnan. Change-Id: Ie7d922b7d6a0f45619a77029b07804aef5d01076 git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154066 268f45cc-cd09-0410-ab3c-d52691b4dbfc Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
* JSObject::putDirectIndexBeyondVectorLengthWithArrayStorage does a check on ↵Mark Hahnenberg2014-03-071-2/+2
| | | | | | | | | | | | | | | | | the length of the ArrayStorage after possible reallocing it https://bugs.webkit.org/show_bug.cgi?id=120278 Reviewed by Geoffrey Garen. Source/JavaScriptCore: * runtime/JSObject.cpp: (JSC::JSObject::putDirectIndexBeyondVectorLengthWithArrayStorage): Change-Id: I034d6950683304d08a4e076d58fb1b999ade444b git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154633 268f45cc-cd09-0410-ab3c-d52691b4dbfc Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Setting a large numeric property on an object causes it to allocate a huge ↵Mark Hahnenberg2014-03-072-5/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | backing store https://bugs.webkit.org/show_bug.cgi?id=118914 Reviewed by Geoffrey Garen. Source/JavaScriptCore: There are two distinct actions that we're trying to optimize for: new Array(100000); and: a = []; a[100000] = 42; In the first case, the programmer has indicated that they expect this Array to be very big, so they should get a contiguous array up until some threshold, above which we perform density calculations to see if it is indeed dense enough to warrant being contiguous. In the second case, the programmer hasn't indicated anything about the size of the Array, so we should be more conservative and assume it should be sparse until we've proven otherwise. Currently both of those cases are handled by MIN_SPARSE_ARRAY_INDEX. We should distinguish between them for the purposes of not over-allocating large backing stores like we see on http://www.peekanalytics.com/burgerjoints/ The way that we'll do this is to keep the MIN_SPARSE_ARRAY_INDEX for the first case, and introduce a new heuristic for the second case. If we are putting to an index above a certain threshold (say, 1000) and it is beyond the length of the array, then we will use a sparse map instead. So for example, in the second case above the empty array has a blank indexing type and a length of 0. We put-by-val to an index > 1000 and > a.length, so we'll use a sparse map. This fix is ~800x speedup on the accompanying regression test :-o * runtime/ArrayConventions.h: (JSC::indexIsSufficientlyBeyondLengthForSparseMap): * runtime/JSObject.cpp: (JSC::JSObject::putByIndexBeyondVectorLengthWithoutAttributes): (JSC::JSObject::putByIndexBeyondVectorLengthWithArrayStorage): (JSC::JSObject::putByIndexBeyondVectorLength): (JSC::JSObject::putDirectIndexBeyondVectorLengthWithArrayStorage): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153374 268f45cc-cd09-0410-ab3c-d52691b4dbfc Change-Id: I1c29992d6e09c9d523a8093e76e3848a9581ce45 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Use moveDoubleToInts in SpecializedThunkJIT::returnDouble for non-X86 ↵Julien Brianceau2014-03-031-0/+5
| | | | | | | | | | | | | | | | | | | | JSVALUE32_64 ports. https://bugs.webkit.org/show_bug.cgi?id=124936 Patch by Julien Brianceau <jbriance@cisco.com> on 2013-11-29 Reviewed by Zoltan Herczeg. The moveDoubleToInts implementations in ARM, MIPS and SH4 macro assemblers do not clobber src FPRegister and are likely to be more efficient than the current generic implementation using the stack. * jit/SpecializedThunkJIT.h: (JSC::SpecializedThunkJIT::returnDouble): Change-Id: Ie3b6516a4047717212521315e85f5e2094373cbc git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159873 268f45cc-cd09-0410-ab3c-d52691b4dbfc Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
* Fix build on x32v5.3.0-alpha1Allan Sandfeld Jensen2014-02-251-1/+1
| | | | | | | Recognize x32 and disable JIT and native LLINT in this configuration. Change-Id: I1576e38ffcff92495c4c108f66f2df17de9a5e9c Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Fix Qt WebKit build on architectures without JIT supportAllan Sandfeld Jensen2014-02-211-0/+4
| | | | | | | | | | | | | The fallback LLINT interpreter was triggering YARR JIT which would fail to compile and also trigger ENABLE_ASSEMBLER which would trigger even more not to compile. YARR JIT is only supported on platforms with valid JIT or native LLINT support. So we must avoid it when the fallback is used Task-number: QTBUG-36969 Change-Id: Ie94bcb316e192feb33ab528ddc3a328af154cebf Reviewed-by: Michael Bruning <michael.bruning@digia.com> Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-02-122-52/+115
|\ | | | | | | Change-Id: Iea6cf3f34fb33f2d138b72243b0e688958d9424e
| * [mips] Wrong register usage in LLInt.old/5.2Balazs Kilvady2014-02-102-52/+115
| | | | | | | | | | | | | | | | | | | | | | Fix register usage and add PIC header to all LLInt operations. This patch is taken from https://bugs.webkit.org/show_bug.cgi?id=125168. It fixes the crash of fast/js/exception-propagate-from-dfg-to-llint test on mips architecture. Change-Id: I98ad3b5766451cab48a76f7e028b210f9ebe99ed Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
* | Replace win32-g++ with mingw scopeKai Koehne2014-01-271-1/+1
| | | | | | | | | | | | | | | | | | | | Commit 773dd01 in qtbase introduced a general mingw platform scope, which is cleaner and more flexible than matching the spec name. (see 278152fff for a similar commit in qtbase). Change-Id: Id3dcd3474504aebeee16dc41cd1eeab7ac21b319 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-12-231-1/+0
|\ \ | |/ | | | | Change-Id: I31a326945d624b10d5c87703d0e2b8ac723a05ab
| * Do not completely erase LIBS variableJürgen Hunold2013-12-171-1/+0
| | | | | | | | | | | | | | | | | | | | Using an empty LIBS variable prevents usage of custom library paths and libraries via configure -L <path> -l <extra_lib>. This is needed for linking with an alternative stdlib implementation. Change-Id: Ie1009bfd435436bf584b2963066535ee90f4d5d0 Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-11-293-112/+73
|\ \ | |/ | | | | | | | | | | Conflicts: .qmake.conf Change-Id: I9f566e48b319664f2783788572935da39749c91c
| * Merge remote-tracking branch 'origin/release' into stableFrederik Gladhorn2013-11-261-3/+3
| |\ | | | | | | | | | Change-Id: I9088052f76de19e584cd16fd039502de6b22bec2
| | * Fix compilation on ARMSamuli Piippo2013-11-181-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Android fix broke ARM compilation on non-Android Linux platforms. Now correcly define Elf32_auxv_t only on Android/Qt and otherwise include asm/hwcap.h Same fix was previously applied to QtScript, which had the exact same android problem (QTBUG-30978). Task-number: QTBUG-34917 Change-Id: I29d570731754c6291f8dc0c379e6fdc8ec72b897 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
| * | [sh4] Fix revertJumpReplacementToBranchPtrWithPatch in MacroAssembler.commit-queue@webkit.org2013-11-202-11/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://bugs.webkit.org/show_bug.cgi?id=124468 Patch by Julien Brianceau <jbriance@cisco.com> on 2013-11-17 Reviewed by Michael Saboff. Current implementation of revertJumpReplacementToBranchPtrWithPatch is wrong in the sh4 MacroAssembler part, leading to random instabilities. This patch fixes it and also renames the bad-named revertJumpToMove to revertJumpReplacementToBranchPtrWithPatch in the SH4Assembler. * assembler/MacroAssemblerSH4.h: (JSC::MacroAssemblerSH4::revertJumpReplacementToBranchPtrWithPatch): * assembler/SH4Assembler.h: (JSC::SH4Assembler::replaceWithJump): (JSC::SH4Assembler::revertJumpReplacementToBranchPtrWithPatch): Change-Id: Ifbc6851f506a1303c85cff3a47c23e932fad033c git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159400 268f45cc-cd09-0410-ab3c-d52691b4dbfc Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
| * | [sh4] Protect repatchCompact from flushConstantPool.commit-queue@webkit.org2013-11-201-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://bugs.webkit.org/show_bug.cgi?id=124278 Patch by Julien Brianceau <jbriance@cisco.com> on 2013-11-13 Reviewed by Michael Saboff. Random crashes may occur with sh4 architecture, when a flushConstantPool occurs in movlMemRegCompact. As in this case a branch opcode and the constant pool are put before the movlMemRegCompact, the branch itself is patched when calling repatchCompact instead of the mov instruction, which is really bad. * assembler/SH4Assembler.h: (JSC::SH4Assembler::repatchCompact): Handle this specific case and add an ASSERT. Change-Id: I9c0e78cade4d20d0d83d683ffe6a499cee63bdbb git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159203 268f45cc-cd09-0410-ab3c-d52691b4dbfc Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
| * | [sh4] Fix load32WithUnalignedHalfWords function in baseline JIT.commit-queue@webkit.org2013-11-201-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://bugs.webkit.org/show_bug.cgi?id=124233 Patch by Julien Brianceau <jbriance@cisco.com> on 2013-11-12 Reviewed by Michael Saboff. * assembler/MacroAssemblerSH4.h: (JSC::MacroAssemblerSH4::load32WithUnalignedHalfWords): Do not claim scratch register too early. Test already covered by fast/regex/pcre-test-1. Change-Id: Ib783d70723754e80d961ade9463d7dc85ccb83f0 git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159153 268f45cc-cd09-0410-ab3c-d52691b4dbfc Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
| * | [sh4] Refactor jumps in baseline JIT to return label after the jump.commit-queue@webkit.org2013-11-202-93/+33
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://bugs.webkit.org/show_bug.cgi?id=123734 Patch by Julien Brianceau <jbriance@cisco.com> on 2013-11-04 Reviewed by Michael Saboff. Current implementation of jumps in sh4 baseline JIT returns a label on the jump itself and not after it. This is not correct and leads to issues like infinite loop the DFG (https://bugs.webkit.org/show_bug.cgi?id=122597 for instance). This refactor fixes this and also simplifies the link and relink procedures for sh4 jumps. * assembler/MacroAssemblerSH4.h: (JSC::MacroAssemblerSH4::branchDouble): (JSC::MacroAssemblerSH4::branchTrue): (JSC::MacroAssemblerSH4::branchFalse): * assembler/SH4Assembler.h: (JSC::SH4Assembler::jmp): (JSC::SH4Assembler::extraInstrForBranch): (JSC::SH4Assembler::jne): (JSC::SH4Assembler::je): (JSC::SH4Assembler::bra): (JSC::SH4Assembler::linkJump): (JSC::SH4Assembler::relinkJump): Change-Id: Ia31b326a1f3c41e9c913e513563ff1e6b8f8e55e git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158580 268f45cc-cd09-0410-ab3c-d52691b4dbfc Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devSergio Ahumada2013-11-0814-28/+35
|\ \ | |/ | | | | Change-Id: I4e82a7abec9b95d3148e1eddc786ee5a16d1f768
| * Only use 64bit atomics when supportedAllan Sandfeld Jensen2013-10-281-9/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To support Windows XP we must avoid using the 64bit variants of the atomicIncrement/atomicDecrement operations which are only supported from Windows 2003 and up. This patch rolls back the minimum Win32 API version to WinNT 5.1 (32bit WinXP), and adds a new flag to indicate the support of 64bit atomics. The new flag is now also used to support MIPS and other architectures without 64bit intrinsics, instead of hacking in poor support. This also extends the atomic operations to sparc64 which was previously skipped because it did not work with __exchange_and_add. Task-number: QTBUG-34271 Change-Id: I21b09df3cafb7f0987a2f44c89036ff34ed34aa0 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com> Reviewed-by: Kai Koehne <kai.koehne@digia.com>
| * Fix build for boot2qt eAndroidAllan Sandfeld Jensen2013-10-212-5/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Reverts the removal of Android support in WTF, and brings the support up to date. Merged change to MacroAssemblerARM.cpp from QtScript. Replaces use of statvfs with statfs in one place. Replaces shm-based shared memory with ashmem-based in WebKit2. Change-Id: I440b1fbd94bb4148f7ba764d77de65230d13ed90 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
| * [sh4] Jump over maxJumpReplacementSize in revertJumpToMove.Julien Brianceau2013-10-211-10/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://bugs.webkit.org/show_bug.cgi?id=120007 Patch by Julien Brianceau <jbriance@cisco.com> on 2013-10-07 Reviewed by Oliver Hunt. Jump over maxJumpReplacementSize in revertJumpToMove, even if there is no constant value within the area. This patch fixes debug ASSERTs failures for sh4 architecture. * assembler/SH4Assembler.h: (JSC::SH4Assembler::revertJumpToMove): Change-Id: Ice297393b167eace620ace8d8957014f0b3945c8 git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157046 268f45cc-cd09-0410-ab3c-d52691b4dbfc Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
| * [arm] Inverted src and dest FP registers in DFG speculative JIT when using ↵Julien Brianceau2013-10-181-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | hardfp. https://bugs.webkit.org/show_bug.cgi?id=122555 Patch by Julien Brianceau <jbriance@cisco.com> on 2013-10-09 Reviewed by Michael Saboff. * dfg/DFGSpeculativeJIT.h: (JSC::DFG::SpeculativeJIT::appendCallWithExceptionCheckSetResult): (JSC::DFG::SpeculativeJIT::appendCallSetResult): Change-Id: Ib633513948031702efd5ca0d4b89920e99979755 git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157173 268f45cc-cd09-0410-ab3c-d52691b4dbfc Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
| * Revert r152209Allan Sandfeld Jensen2013-10-171-1/+1
| | | | | | | | | | | | | | | | Revert another fixup patch for one of the commits we reverted in our branch. Change-Id: I423969481d398df7f334ba4fbf2f2e466ff418fb Reviewed-by: Julien Brianceau <jbriance@cisco.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
| * 32-bit code gen for TypeOf doesn't properly update the AbstractInterpreter stateMark Hahnenberg2013-10-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://bugs.webkit.org/show_bug.cgi?id=119555 Reviewed by Geoffrey Garen. It uses a speculationCheck where it should be using a DFG_TYPE_CHECK like the 64-bit backend does. This was causing crashes on maps.google.com in 32-bit debug builds. * dfg/DFGSpeculativeJIT32_64.cpp: (JSC::DFG::SpeculativeJIT::compile): Change-Id: Icdcfe0719d22df7db6dc7ffcee309b75b63914df git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153793 268f45cc-cd09-0410-ab3c-d52691b4dbfc Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
| * Fix undefined reference linker errors with MinGWKai Koehne2013-10-167-0/+8
| | | | | | | | | | | | | | | | | | | | Make sure the inline methods are defined whereever referenced. This fixes 'undefined reference' errors when linking with MinGW-builds 4.8.2 32 bit posix dwarf rev2. Task-number: QTBUG-34083 Change-Id: Iadc7300634780741be9d97bc889290cd113181e1 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
* | [sh4] Introduce const pools in LLINT.commit-queue@webkit.org2013-10-182-67/+192
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://bugs.webkit.org/show_bug.cgi?id=122746 Patch by Julien Brianceau <jbriance@cisco.com> on 2013-10-15 Reviewed by Michael Saboff. In current implementation of LLINT for sh4, immediate values outside range -128..127 are loaded this way: mov.l .label, rx bra out nop .balign 4 .label: .long immvalue out: This change introduces const pools for sh4 implementation to avoid lots of useless branches and reduce code size. It also removes lines of dirty code, like jmpf and callf. * offlineasm/instructions.rb: Remove jmpf and callf sh4 specific instructions. * offlineasm/sh4.rb: Change-Id: Ieeceaaa5eb55ab9439d923afccceb783e9930ee4 git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157452 268f45cc-cd09-0410-ab3c-d52691b4dbfc Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
* | [sh4] Fix typo in subp implementation in LLINT.commit-queue@webkit.org2013-10-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | https://bugs.webkit.org/show_bug.cgi?id=121438 Patch by Julien Brianceau <jbriance@cisco.com> on 2013-09-16 Reviewed by Andreas Kling. * offlineasm/sh4.rb: Change-Id: Ic3fb73ae9d40024652b07831562abab6347249ec git-svn-id: http://svn.webkit.org/repository/webkit/trunk@155876 268f45cc-cd09-0410-ab3c-d52691b4dbfc Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
* | [sh4] Handle subp opcode with 3 operands and bpbeq opcode in LLINT.commit-queue@webkit.org2013-10-171-4/+15
|/ | | | | | | | | | | | | https://bugs.webkit.org/show_bug.cgi?id=121412 Patch by Julien Brianceau <jbriance@cisco.com> on 2013-09-16 Reviewed by Andreas Kling. * offlineasm/sh4.rb: Change-Id: I4c0cbe22fb409b8d0d20c4c498b13a7e0ff870d0 git-svn-id: http://svn.webkit.org/repository/webkit/trunk@155846 268f45cc-cd09-0410-ab3c-d52691b4dbfc Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
* Fix linux-clang with clang 3.4Allan Sandfeld Jensen2013-10-041-0/+3
| | | | | | | Cherry-picked upstream r153965 to fix linux build with clang 3.4 Change-Id: Ib3eeb5c424c4f0ef00c228ad02b61ef87dd9b3b6 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
* [sh4] Missing instruction in nativeCallTrampoline LLINT function.Julien Brianceau2013-10-041-14/+1
| | | | | | | | | "move t0, a0" is missing in sh4 implementation of nativeCallTrampoline. Reuse MIPS implementation to avoid code duplication. Fixed in changeset 153371 of WebKit trunk. Change-Id: Ifcc729006bcb426a797762aab093cd300401633c Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
* Revert "Un-crashify JSC tests on debug bots after Anders had his way with ↵v5.2.0-alpha1Allan Sandfeld Jensen2013-09-241-1/+1
| | | | | | | | | StringImpl." Revert another commit that depended on the reverted SQLite commit. Change-Id: I629b6ab7822c15f9f61f61cd880edefd9545838b Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
* Fix build with MingWAllan Sandfeld Jensen2013-09-201-2/+2
| | | | | | | | | Fix wrong export/import flags in inlined methods. Use normal GCC inline asm instead of _ReadWriteBarrier. Change-Id: Iba6b923be383777f2807d84349044dbe5a22eb57 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
* QtWebKit should not require SQLite version to 3.6.16.Allan Sandfeld Jensen2013-09-191-1/+1
| | | | | | | | Revert r152134 which raised the minimum SQLite version, and r152201 which removed a method the reverted code needed. Change-Id: Ie028992137f3983d114f3491423afe6303173544 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
* Import Qt5x2 branch of QtWebkit for Qt 5.2Allan Sandfeld Jensen2013-09-19851-45952/+86306
| | | | | | | Importing a new snapshot of webkit. Change-Id: I2d01ad12cdc8af8cb015387641120a9d7ea5f10c Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
* Merge branch 'stable' into devSergio Ahumada2013-09-134-14/+14
|\ | | | | | | | | | | | | Conflicts: Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp Change-Id: Iaa6209d0d611d18b8c916bcd165c8bf5b7441b7b
| * JSC ARM traditional failing on Octane NavierStokes testGabor Rapcsanyi2013-09-131-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://bugs.webkit.org/show_bug.cgi?id=115626 Reviewed by Zoltan Herczeg. Change the ARM traditional assembler to use double precision on value conversions. * assembler/ARMAssembler.h: Change-Id: I2fbf6323a59120b497215696e10a1582ff927347 git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149601 268f45cc-cd09-0410-ab3c-d52691b4dbfc Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
| * Failure building with python3Laszlo Papp2013-08-273-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://bugs.webkit.org/show_bug.cgi?id=106645 Patch by Laszlo Papp <lpapp@kde.org> on 2013-08-23 Reviewed by Benjamin Poulain. Use print functions instead of python statements to be compatible with python 3.X and 2.7 as well. Archlinux has been using python3 and that is what causes issues while packaging QtWebKit along with Qt5. * disassembler/udis86/itab.py: (UdItabGenerator.genInsnTable): * disassembler/udis86/ud_opcode.py: (UdOpcodeTables.print_table): * disassembler/udis86/ud_optable.py: (UdOptableXmlParser.parseDef): (UdOptableXmlParser.parse): (printFn): Change-Id: Icec0024fc39bb342d23bbeefac4de0c81e176e6c git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154521 268f45cc-cd09-0410-ab3c-d52691b4dbfc Reviewed-by: Laszlo Papp <lpapp@kde.org> Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* | JavaScriptCore: Fix header guardTobias Hunger2013-09-031-1/+1
|/ | | | | | | Clang nags about it. Change-Id: I0f4629048e2e02370202cf47748be05bfa0cbf81 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* JSObject::getOwnNonIndexPropertyNames calculates numCacheableSlots ↵Mark Hahnenberg2013-07-012-2/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | incorrectly (2/2) https://bugs.webkit.org/show_bug.cgi?id=114235 Reviewed by Filip Pizlo. If the object doesn't have any properties but the prototype does, we'll assume those prototype properties are accessible in the base object's backing store, which is bad. Source/JavaScriptCore: * runtime/JSObject.cpp: (JSC::JSObject::getPropertyNames): (JSC::JSObject::getOwnNonIndexPropertyNames): * runtime/PropertyNameArray.h: (JSC::PropertyNameArray::PropertyNameArray): (JSC::PropertyNameArray::setNumCacheableSlotsForObject): (JSC::PropertyNameArray::setBaseObject): (PropertyNameArray): Change-Id: If61b609438fa1d62364bac556af635413198d8ad git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148142 268f45cc-cd09-0410-ab3c-d52691b4dbfc Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* JSObject::getOwnNonIndexPropertyNames calculates numCacheableSlots incorrectlyMark Hahnenberg2013-07-011-3/+5
| | | | | | | | | | | | | | | | | | https://bugs.webkit.org/show_bug.cgi?id=114235 Reviewed by Geoffrey Garen. Due to the way that numCacheableSlots is currently calculated, checking an object's prototype for enumerable properties causes us not to cache any properties at all. We should only cache properties on the object itself since we currently don't take advantage of any sort of name caching for properties in the prototype chain. This fix undoes a ~2% SunSpider regression caused by http://trac.webkit.org/changeset/147570. * runtime/JSObject.cpp: (JSC::JSObject::getOwnNonIndexPropertyNames): Change-Id: I5853ab567cd0a8cd20aeac1372ec64fc4f25df1a git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148036 268f45cc-cd09-0410-ab3c-d52691b4dbfc Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* get_by_pname can become confused when iterating over objects with static ↵Mark Hahnenberg2013-07-013-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | properties https://bugs.webkit.org/show_bug.cgi?id=113831 Reviewed by Geoffrey Garen. get_by_pname doesn't take static properties into account when using a JSPropertyNameIterator to directly access an object's backing store. One way to fix this is to not cache any properties when iterating over objects with static properties. This patch fixes the bug that was originally reported on swisscom.ch. Source/JavaScriptCore: * runtime/JSObject.cpp: (JSC::JSObject::getOwnNonIndexPropertyNames): * runtime/JSPropertyNameIterator.cpp: (JSC::JSPropertyNameIterator::create): * runtime/PropertyNameArray.h: (JSC::PropertyNameArray::PropertyNameArray): (JSC::PropertyNameArray::numCacheableSlots): (JSC::PropertyNameArray::setNumCacheableSlots): (PropertyNameArray): Change-Id: I7ae9c48eea3c5300c4825a10a660b0e2210c8862 git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147570 268f45cc-cd09-0410-ab3c-d52691b4dbfc Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* LLInt conditional branch compilation fault on MIPS.Balazs Kilvady2013-05-232-14/+20
| | | | | | | | | | | | | | | | | | | | https://bugs.webkit.org/show_bug.cgi?id=114264 Patch by Balazs Kilvady <kilvadyb@homejinni.com> on 2013-04-09 Reviewed by Filip Pizlo. Fix conditional branch compilation in LLInt offlineasm. * offlineasm/mips.rb: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148045 268f45cc-cd09-0410-ab3c-d52691b4dbfc Conflicts: Source/JavaScriptCore/ChangeLog Change-Id: I31b5c06f4424d06785ae53f2f5e34584082b4b02 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com> Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* offlineasm BaseIndex handling is broken on ARM due to MIPS changesBalazs Kilvady2013-05-233-4/+46
| | | | | | | | | | | | | | | | | | | | | | https://bugs.webkit.org/show_bug.cgi?id=108261 Patch by Balazs Kilvady <kilvadyb@homejinni.com> on 2013-02-01 Reviewed by Filip Pizlo. offlineasm BaseIndex handling fix on MIPS. * offlineasm/mips.rb: * offlineasm/risc.rb: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@141641 268f45cc-cd09-0410-ab3c-d52691b4dbfc Conflicts: Source/JavaScriptCore/ChangeLog Source/JavaScriptCore/offlineasm/mips.rb Change-Id: I7ec4d500e11717e1cb2b6fd7f310e4e66cfa7955 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com> Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* MIPS DFG implementation.Balazs Kilvady2013-05-2311-73/+873
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://bugs.webkit.org/show_bug.cgi?id=101328 Patch by Balazs Kilvady <kilvadyb@homejinni.com> on 2013-02-18 Reviewed by Oliver Hunt. DFG implementation for MIPS. Source/JavaScriptCore: * assembler/MIPSAssembler.h: (JSC::MIPSAssembler::MIPSAssembler): (JSC::MIPSAssembler::sllv): (JSC::MIPSAssembler::movd): (MIPSAssembler): (JSC::MIPSAssembler::negd): (JSC::MIPSAssembler::labelForWatchpoint): (JSC::MIPSAssembler::label): (JSC::MIPSAssembler::vmov): (JSC::MIPSAssembler::linkDirectJump): (JSC::MIPSAssembler::maxJumpReplacementSize): (JSC::MIPSAssembler::revertJumpToMove): (JSC::MIPSAssembler::replaceWithJump): * assembler/MacroAssembler.h: (MacroAssembler): (JSC::MacroAssembler::poke): * assembler/MacroAssemblerMIPS.h: (JSC::MacroAssemblerMIPS::add32): (MacroAssemblerMIPS): (JSC::MacroAssemblerMIPS::and32): (JSC::MacroAssemblerMIPS::lshift32): (JSC::MacroAssemblerMIPS::mul32): (JSC::MacroAssemblerMIPS::or32): (JSC::MacroAssemblerMIPS::rshift32): (JSC::MacroAssemblerMIPS::urshift32): (JSC::MacroAssemblerMIPS::sub32): (JSC::MacroAssemblerMIPS::xor32): (JSC::MacroAssemblerMIPS::store32): (JSC::MacroAssemblerMIPS::jump): (JSC::MacroAssemblerMIPS::branchAdd32): (JSC::MacroAssemblerMIPS::branchMul32): (JSC::MacroAssemblerMIPS::branchSub32): (JSC::MacroAssemblerMIPS::branchNeg32): (JSC::MacroAssemblerMIPS::call): (JSC::MacroAssemblerMIPS::loadDouble): (JSC::MacroAssemblerMIPS::moveDouble): (JSC::MacroAssemblerMIPS::swapDouble): (JSC::MacroAssemblerMIPS::subDouble): (JSC::MacroAssemblerMIPS::mulDouble): (JSC::MacroAssemblerMIPS::divDouble): (JSC::MacroAssemblerMIPS::negateDouble): (JSC::MacroAssemblerMIPS::branchEqual): (JSC::MacroAssemblerMIPS::branchNotEqual): (JSC::MacroAssemblerMIPS::branchTruncateDoubleToInt32): (JSC::MacroAssemblerMIPS::branchTruncateDoubleToUint32): (JSC::MacroAssemblerMIPS::truncateDoubleToInt32): (JSC::MacroAssemblerMIPS::truncateDoubleToUint32): (JSC::MacroAssemblerMIPS::branchDoubleNonZero): (JSC::MacroAssemblerMIPS::branchDoubleZeroOrNaN): (JSC::MacroAssemblerMIPS::invert): (JSC::MacroAssemblerMIPS::replaceWithJump): (JSC::MacroAssemblerMIPS::maxJumpReplacementSize): * dfg/DFGAssemblyHelpers.h: (AssemblyHelpers): (JSC::DFG::AssemblyHelpers::preserveReturnAddressAfterCall): (JSC::DFG::AssemblyHelpers::restoreReturnAddressBeforeReturn): (JSC::DFG::AssemblyHelpers::debugCall): * dfg/DFGCCallHelpers.h: (CCallHelpers): (JSC::DFG::CCallHelpers::setupArguments): (JSC::DFG::CCallHelpers::setupArgumentsWithExecState): * dfg/DFGFPRInfo.h: (DFG): (FPRInfo): (JSC::DFG::FPRInfo::toRegister): (JSC::DFG::FPRInfo::toIndex): (JSC::DFG::FPRInfo::debugName): * dfg/DFGGPRInfo.h: (DFG): (GPRInfo): (JSC::DFG::GPRInfo::toRegister): (JSC::DFG::GPRInfo::toIndex): (JSC::DFG::GPRInfo::debugName): * dfg/DFGSpeculativeJIT.h: (SpeculativeJIT): * jit/JSInterfaceJIT.h: (JSInterfaceJIT): * runtime/JSGlobalData.h: (JSC::ScratchBuffer::allocationSize): (ScratchBuffer): Source/WTF: * wtf/Platform.h: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143247 268f45cc-cd09-0410-ab3c-d52691b4dbfc Conflicts: Source/JavaScriptCore/ChangeLog Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h Source/JavaScriptCore/dfg/DFGAssemblyHelpers.h Source/WTF/ChangeLog Change-Id: Ibc6c2a2b1d5c70d351ede37c6c111b66b4cf7fef Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com> Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* MIPS LLInt implementation.Balazs Kilvady2013-05-2311-18/+1047
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://bugs.webkit.org/show_bug.cgi?id=99706 Patch by Balazs Kilvady <kilvadyb@homejinni.com> on 2013-01-07 Reviewed by Filip Pizlo. LLInt implementation for MIPS. Source/JavaScriptCore: * assembler/MacroAssemblerMIPS.h: (JSC::MacroAssemblerMIPS::jump): * dfg/DFGOperations.cpp: (JSC): * jit/JITStubs.cpp: (JSC): * jit/JITStubs.h: (JITStackFrame): * llint/LLIntOfflineAsmConfig.h: * llint/LowLevelInterpreter.asm: * llint/LowLevelInterpreter32_64.asm: * offlineasm/backends.rb: * offlineasm/instructions.rb: * offlineasm/mips.rb: Added. Source/WTF: * wtf/Platform.h: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@138970 268f45cc-cd09-0410-ab3c-d52691b4dbfc Conflicts: Source/JavaScriptCore/ChangeLog Source/JavaScriptCore/jit/JITStubs.h Change-Id: I1677d54c1641cf60e517772944582c8f387eeb6d Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com> Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>