Граф коммитов

67775 Коммитов

Автор SHA1 Сообщение Дата
Gurzau Raul 9766c8e643 Merge mozilla-central to autoland. a=merge CLOSED TREE 2018-11-08 21:14:37 +02:00
Jan de Mooij 84ff81618c Bug 1504979 part 2 - Use resumeIndex/resumeOffsets for JSOP_TABLESWITCH. r=tcampbell
Reasons for doing this:

(1) Bug 1501316 becomes easier to fix.

(2) JSOP_TABLESWITCH is no longer a variable-length bytecode op so we can get
    rid of js::GetVariableBytecodeLength.

Depends on D11018

Differential Revision: https://phabricator.services.mozilla.com/D11019

--HG--
extra : moz-landing-system : lando
2018-11-08 18:28:07 +00:00
Jan de Mooij 2cab1ab0a7 Bug 1504979 part 1 - Use offset to 'default' target instead of zero in JSOP_TABLESWITCH offsets. r=nbp
With this change we no longer have to handle the offset == 0 case everywhere.

Differential Revision: https://phabricator.services.mozilla.com/D11018

--HG--
extra : moz-landing-system : lando
2018-11-07 16:53:25 +00:00
Benjamin Bouvier 31de354f13 Bug 1503326; r=sunfish, r=nbp
--HG--
extra : rebase_source : 8dd830fcaae5442da95cbb00bce94a0cda358fed
extra : amend_source : 9e20e298f0c1e7cf8db28e9d0bcd7672ceeee9c0
2018-11-05 16:38:42 +01:00
Lars T Hansen ca61507f1a Bug 1488515 - avoid wasm hardfp -> softfp transition twice on Android. r=bbouvier
The baseline compiler should always call builtins assuming the hardfp
calling convention on ARM, but it would actually take the native
calling convention on the device into account and sometimes use the
softfp convention.

The reason the baseline compiler should always use hardfp is that the
builtin thunks already convert hardfp->softfp along the call path and
softfp->hardfp along the return path, if this is necessary, to allow
wasm to call builtins using the hardfp convention always.

It is possible that the situation was different when the baseline
compiler was written and that the bug is the result of subsequent
changes to the thunk layer, but this is not known precisely.

There's a driveby fix here to simplify the logic around determining
hardfp vs softfp for the system ABI; UseHardFpABI() is now always
available and does the right thing, we don't need the #ifdef nest we
had previously.

--HG--
extra : rebase_source : 5b82e0d25cad05f9064e859282dd9d886da1e672
extra : amend_source : 13b9627ddda0127c7e34fe6b01f3d252f5bfba42
2018-11-07 15:12:56 +01:00
Jeff Walden 4be7187910 Bug 1494752. r=jonco 2018-10-11 13:54:41 -07:00
Jeff Walden d64c1c834d Bug 1499192 - Don't null-terminate ScriptSource source-code chunks. r=tcampbell 2018-10-16 16:01:12 -07:00
arthur.iakab 99b2456b73 Merge inbound to mozilla-central a=merge 2018-11-07 23:51:27 +02:00
Iain Ireland 659823ed00 Bug 1501722: Check for initial environment in GetGeneratorForFrame r=jorendorff
Differential Revision: https://phabricator.services.mozilla.com/D10598

--HG--
extra : moz-landing-system : lando
2018-11-01 19:40:18 +00:00
Csoregi Natalia ce0127e7c1 Merge inbound to mozilla-central. a=merge 2018-11-07 18:17:51 +02:00
Natalia Csoregi af479a3f0f Bug 1485269 - Added test262/built-ins/RegExp/CharacterClassEscapes tests to arm64-jstests-slow.txt. r=jmaher 2018-11-07 12:45:46 +02:00
Csoregi Natalia 0f3ea39692 Merge mozilla-central to autoland. CLOSED TREE 2018-11-07 11:56:06 +02:00
Csoregi Natalia 6e0e603f48 Merge inbound to mozilla-central. a=merge 2018-11-07 11:52:57 +02:00
Tooru Fujisawa cbfb4c370e Bug 1504597 - Use NodeName::to_rc_string. r=Yoric 2018-11-07 15:14:29 +09:00
Tooru Fujisawa 1fd8fb9353 Bug 1498101 - Part 3: Do not generate methods that is used by not-yet-implemented list. r=Yoric 2018-11-07 15:14:29 +09:00
Tooru Fujisawa ac30e40152 Bug 1498101 - Part 2: Do not generate methods that is used by not-yet-implemented interface. r=Yoric 2018-11-07 15:14:29 +09:00
Tooru Fujisawa d604ecb446 Bug 1498101 - Part 1: Do not generate code for disabled arm of sum node. r=Yoric 2018-11-07 15:14:29 +09:00
Jan de Mooij 46614e1f1e Bug 1503496 - Use enums + flag words for JSScript flags instead of bitfields. r=tcampbell
This makes it easier to read these flags from JIT code. The patch also splits
them in MutableFlags and ImmutableFlags, this should let us simplify XDR and
CopyScript in the future.

Differential Revision: https://phabricator.services.mozilla.com/D10735

--HG--
extra : moz-landing-system : lando
2018-11-07 07:40:39 +00:00
Jan de Mooij 9bdd20cd39 Bug 1504719 - Ignore uninitialized lexicals in globalLexicals() testing function. r=jorendorff
Also uses JS_DefinePropertyById instead of JS_SetPropertyById because it's more natural.

Differential Revision: https://phabricator.services.mozilla.com/D11094

--HG--
extra : moz-landing-system : lando
2018-11-06 19:51:00 +00:00
Ashley Hauck 45ee1152af Bug 1505150 - Move implementations of ParseContext and SharedContext to their own files. r=jorendorff
Differential Revision: https://phabricator.services.mozilla.com/D11098

--HG--
extra : moz-landing-system : lando
2018-11-06 22:51:40 +00:00
Till Schneidereit 9cae2bda28 Bug 1505059 - Compartment fixes for two JSAPI functions. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D11089

--HG--
extra : moz-landing-system : lando
2018-11-06 19:58:42 +00:00
Luke Wagner 1bf5c4019e Bug 1500203 - Baldr: add wasmCompileInSeparateProcess() shell testing function and tests using it (r=bbouvier)
--HG--
extra : rebase_source : c8afa4969b70fcc31e63f68521fc5be07e7c468b
2018-11-06 13:09:04 -06:00
Luke Wagner a0314df0c6 Bug 1500203 - Baldr: reduce js.cpp dependency on wasm internal headers (r=bbouvier)
--HG--
extra : rebase_source : c6f50bc40e89a0fc228d31ee27fb8d5945a3c69f
2018-11-06 12:18:18 -06:00
Kartikaya Gupta c7185bf0df Bug 1447643 - Remove frequently failing assertion. r=jonco 2018-11-06 13:02:21 -05:00
Nicolas B. Pierron eabd69b84e Bug 1502013 - RemoveUnmarkedBlocks should only mark operands of removed blocks. r=jandem 2018-11-06 18:33:45 +01:00
André Bargull 4284514a41 Bug 1502530 - Part 3: Update SpiderMonkey time zone files. r=Waldo 2018-11-06 05:42:53 -08:00
Gurzau Raul 1da9ef02c4 Merge inbound to mozilla-central. a=merge
--HG--
rename : testing/web-platform/tests/content-security-policy/navigate-to/form-action/form-action-blocks-navigate-to-allows.html => testing/web-platform/tests/content-security-policy/navigate-to/form-action/form-action-blocks-navigate-to-allows.sub.html
rename : testing/web-platform/tests/content-security-policy/navigate-to/spv-only-sent-to-initiator.html => testing/web-platform/tests/content-security-policy/navigate-to/spv-only-sent-to-initiator.sub.html
2018-11-06 11:57:49 +02:00
Ehsan Akhgari 6f7b03e600 Bug 1504574 - Remove the XPCOM registration for nsDocumentEncoder; r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D10856
2018-11-05 23:16:04 -05:00
Markus Stange 42b0e9f253 Bug 1499507 - Allow the compiler to generate a non-atomic increment instruction for the stack pointer increment. r=njn
This change reduces the binary size on macOS x64 by around 50KB.

Here's a diff of the impact on the code generated for Attr_Binding::get_specified
in the Mac build. It's a bit hard to read because %r12 and %rbx swap their
function, but what happens in this method is that "movq       %r12, %rcx" goes
away, and the two instructions "leal       0x1(%r12) %eax" and
"movl       %eax, 0x10(%rbx)" turn into an "incl       0x10(%r12)".
So the old code was preserving the original value of profilingStack->stackPointer
in a register, and then using it later to compute the incremented stackPointer.
The new code uses an "incl" instruction for the stackPointer increment and
doesn't worry that the stackPointer value might have changed since the stack
size check at the start of the function. (It can't have changed.)

before: %rbx has the ProfilingStack*, %r12 has profilingStack->stackPointer
after: %r12 has the ProfilingStack*, %rbx has profilingStack->stackPointer

@@ -3,37 +3,35 @@
    movq       %rsp, %rbp
    pushq      %r15
    pushq      %r14
    pushq      %r12
    pushq      %rbx
    subq       $0x10, %rsp
    movq       %rcx, %r14
    movq       %rdx, %r15
-   movq       0x80(%rdi), %rbx
-   movq       %rbx, -40(%rbp)
-   testq      %rbx, %rbx
+   movq       0x80(%rdi), %r12
+   movq       %r12, -40(%rbp)
+   testq      %r12, %r12
    je         loc_xxxxx

-   movl       0x10(%rbx), %r12d
-   cmpl       (%rbx), %r12d
+   movl       0x10(%r12), %ebx
+   cmpl       (%r12), %ebx
    jae        loc_xxxxx

-   movq       0x8(%rbx), %rax
-   movq       %r12, %rcx
-   shlq       $0x5, %rcx
-   leaq       aAttr, %rdx                                 ; "Attr"
-   movq       %rdx, (%rax,%rcx)
-   leaq       aSpecified, %rdx                            ; "specified"
-   movq       %rdx, 0x8(%rax,%rcx)
-   leaq       -40(%rbp), %rdx
-   movq       %rdx, 0x10(%rax,%rcx)
-   movl       $0x3a1, 0x1c(%rax,%rcx)
-   leal       0x1(%r12), %eax
-   movl       %eax, 0x10(%rbx)
+   movq       0x8(%r12), %rax
+   shlq       $0x5, %rbx
+   leaq       aAttr, %rcx                                 ; "Attr"
+   movq       %rcx, (%rax,%rbx)
+   leaq       aSpecified, %rcx                            ; "specified"
+   movq       %rcx, 0x8(%rax,%rbx)
+   leaq       -40(%rbp), %rcx
+   movq       %rcx, 0x10(%rax,%rbx)
+   movl       $0x3a1, 0x1c(%rax,%rbx)
+   incl       0x10(%r12)

    movq       %r15, %rdi
    call       __ZNK7mozilla3dom4Attr9SpecifiedEv          ; mozilla::dom::Attr::Specified() const
    movzxl     %al, %eax
    movabsq    $0xfff9000000000000, %rcx
    orq        %rax, %rcx
    movq       %rcx, (%r14)
    movq       -40(%rbp), %rax
@@ -47,11 +45,11 @@
    popq       %rbx
    popq       %r12
    popq       %r14
    popq       %r15
    popq       %rbp
    ret
                         ; endp

-   movq       %rbx, %rdi
+   movq       %r12, %rdi
    call       __ZN14ProfilingStack18ensureCapacitySlowEv  ; ProfilingStack::ensureCapacitySlow()
    jmp        loc_xxxxx

Depends on D9205

Differential Revision: https://phabricator.services.mozilla.com/D9206

--HG--
extra : moz-landing-system : lando
2018-11-06 04:35:13 +00:00
Markus Stange 24f3fd501e Bug 1499507 - Add AUTO_PROFILER_LABEL_DYNAMIC_FAST which allows specifying flags. r=njn
Depends on D9203

Differential Revision: https://phabricator.services.mozilla.com/D9204

--HG--
extra : moz-landing-system : lando
2018-11-06 04:33:45 +00:00
Markus Stange 75c251de85 Bug 1499507 - Add ProfilingStackFrame flags for to choose the string template that is used to combine the label with the dynamic string. r=njn
These flags will be used by WebIDL APIs in an upcoming patch.

Depends on D9199

Differential Revision: https://phabricator.services.mozilla.com/D9203

--HG--
extra : moz-landing-system : lando
2018-11-06 04:33:07 +00:00
Markus Stange e6c22c99ad Bug 1499507 - Convert the ProfilingStackFrame kind into a set of flags. r=njn
This makes it easier to add more flags.

Depends on D9197

Differential Revision: https://phabricator.services.mozilla.com/D9199

--HG--
extra : moz-landing-system : lando
2018-11-06 04:32:29 +00:00
Markus Stange ab700f9fc0 Bug 1499507 - Don't collect line numbers for profiling stack frames. r=njn
They were not displayed in the UI, and the instructions to initialize the line
field of a stack frame increased code size unnecessarily.

This change reduces the binary size on Linux x64 by around 100KB.

Here's a diff of the impact on the code generated for Attr_Binding::get_specified
in the Mac build:

@@ -20,17 +20,16 @@
    movq       0x8(%rbx), %rax
    movq       %r12, %rcx
    shlq       $0x5, %rcx
    leaq       aGetAttrspecifi, %rdx                       ; "get Attr.specified"
    movq       %rdx, (%rax,%rcx)
    movq       $0x0, 0x8(%rax,%rcx)
    leaq       -40(%rbp), %rdx
    movq       %rdx, 0x10(%rax,%rcx)
-   movl       $0x106, 0x18(%rax,%rcx)
    movl       $0x1c, 0x1c(%rax,%rcx)
    leal       0x1(%r12), %eax
    movl       %eax, 0x10(%rbx)

    movq       %r15, %rdi
    call       __ZNK7mozilla3dom4Attr9SpecifiedEv          ; mozilla::dom::Attr::Specified() const
    movzxl     %al, %eax
    movabsq    $0xfff9000000000000, %rcx

Depends on D9193

Differential Revision: https://phabricator.services.mozilla.com/D9195

--HG--
extra : moz-landing-system : lando
2018-11-06 04:31:02 +00:00
Markus Stange abb7ce1a0a Bug 1499507 - Make ensureCapacitySlow infallible. r=emilio
This eliminates a few instructions from each inlined instance of
AutoProfilerLabel because we no longer need to handle allocation failure in the
inlined code.
I think this allocation should be fine to make infallible: The allocation size
is limited by the thread's stack depth, and we only hit this code path when the
stack is the deepest it's ever been during the thread's life time.

This change reduces the binary size on Linux x64 by around 100KB.

Here's a diff of the impact on the code generated for Attr_Binding::get_specified
in the Mac build, it really just eliminates one test and one jump at the very end
of the method:

@@ -9,30 +9,29 @@
    movq       %rcx, %r14
    movq       %rdx, %r15
    movq       0x80(%rdi), %rbx
    movq       %rbx, -40(%rbp)
    testq      %rbx, %rbx
    je         loc_xxxxx

    movl       0x10(%rbx), %r12d
-   cmpl       %r12d, (%rbx)
-   jbe        loc_xxxxx
+   cmpl       (%rbx), %r12d
+   jae        loc_xxxxx

    movq       0x8(%rbx), %rax
    movq       %r12, %rcx
    shlq       $0x5, %rcx
    leaq       aGetAttrspecifi, %rdx                       ; "get Attr.specified"
    movq       %rdx, (%rax,%rcx)
    movq       $0x0, 0x8(%rax,%rcx)
    leaq       -40(%rbp), %rdx
    movq       %rdx, 0x10(%rax,%rcx)
    movl       $0x106, 0x18(%rax,%rcx)
    movl       $0x1c, 0x1c(%rax,%rcx)
-
    leal       0x1(%r12), %eax
    movl       %eax, 0x10(%rbx)

    movq       %r15, %rdi
    call       __ZNK7mozilla3dom4Attr9SpecifiedEv          ; mozilla::dom::Attr::Specified() const
    movzxl     %al, %eax
    movabsq    $0xfff9000000000000, %rcx
    orq        %rax, %rcx
@@ -50,12 +49,9 @@
    popq       %r14
    popq       %r15
    popq       %rbp
    ret
                         ; endp

    movq       %rbx, %rdi
    call       __ZN14ProfilingStack18ensureCapacitySlowEv  ; ProfilingStack::ensureCapacitySlow()
-   testb      %al, %al
-   jne        loc_xxxxx
-
    jmp        loc_xxxxx

Depends on D9192

Differential Revision: https://phabricator.services.mozilla.com/D9193

--HG--
extra : moz-landing-system : lando
2018-11-06 04:30:13 +00:00
Markus Stange 3be6c8467b Bug 1499507 - Fold the 'profiler is active' check into the 'JSContext has a non-null PseudoStack' check. r=sfink
This eliminates a few instructions from every profiler label and saves code size.
We have around 9000 WebIDL constructors + methods + getters + setters which all
have an inlined instance of this code.

This change reduces the binary size on Linux x64 by around 160KB.

Here's a diff of the impact on the code generated for Attr_Binding::get_specified
in the Mac build:

    movq       %rsp, %rbp
    pushq      %r15
    pushq      %r14
    pushq      %r12
    pushq      %rbx
    subq       $0x10, %rsp
    movq       %rcx, %r14
    movq       %rdx, %r15
-   movq       __ZN7mozilla8profiler6detail12RacyFeatures18sActiveAndFeaturesE@GOT, %rax ; __ZN7mozilla8profiler6detail12RacyFeatures18sActiveAndFeaturesE@GOT
-   movl       (%rax), %eax
-   testl      %eax, %eax
-   js         loc_xxxxx
-
-   movq       $0x0, -40(%rbp)
-   jmp        loc_xxxxx
-
-   movq       0x78(%rdi), %rbx
+   movq       0x80(%rdi), %rbx
    movq       %rbx, -40(%rbp)
    testq      %rbx, %rbx
    je         loc_xxxxx

    movl       0x10(%rbx), %r12d
    cmpl       %r12d, (%rbx)
    jbe        loc_xxxxx

Differential Revision: https://phabricator.services.mozilla.com/D9192

--HG--
extra : moz-landing-system : lando
2018-11-06 04:29:35 +00:00
Eric Faust c81e060dda Bug 1494942 - Improve AtomizeUTF8Chars performance. (r=Waldo)
--HG--
extra : source : e726ed0d7b65c3540e1831623284168b39eefac1
extra : amend_source : 044eab05fb32721a0a807ff43dc3eaee9a59848a
2018-11-05 17:37:51 -08:00
shindli 164d7dfb6e Backed out changeset e726ed0d7b65 (bug 1494942) for spidermonkey bustages. 2018-11-06 02:13:29 +02:00
Eric Faust ea3bcd2b8b Bug 1494942 - Improve AtomizeUTF8Chars performance. (r=Waldo)
--HG--
extra : rebase_source : 520a97331ee2358617acbf9db3bfc9eb425248e0
2018-11-05 16:03:16 -08:00
Kyle Machulis 8ad671c4c0 Bug 1498059 - Tests for CEnums in XPIDL; r=nika,froydnj
Depends on D8594

Differential Revision: https://phabricator.services.mozilla.com/D8595

--HG--
extra : moz-landing-system : lando
2018-11-06 00:05:44 +00:00
Ehsan Akhgari c78ff51afb Bug 1504566 - Remove the XPCOM registration for nsHTMLCopyEncoder; r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D10958
2018-11-05 17:28:54 -05:00
Narcis Beleuzu 9b3f73e696 Merge mozilla-central to inbound. CLOSED TREE 2018-11-05 23:54:03 +02:00
vinoth e14aa2974e Bug 1504605 - Add Prefs to xpcshell test files for allowing usage of eval. r=ckerschb
Reviewers: ckerschb

Reviewed By: ckerschb

Subscribers: ckerschb

Bug #: 1504605

Differential Revision: https://phabricator.services.mozilla.com/D10850

--HG--
extra : rebase_source : 9abb395224bdfa7795516295babfd847ea2553f4
2018-11-05 16:41:45 +02:00
Matthew Gaudet 42e2aee566 Bug 1488763 - Unify stack touch logic across all platforms r=jandem
This incidentally also -adds- the stack touch logic to ARM64.

Differential Revision: https://phabricator.services.mozilla.com/D10395

--HG--
extra : moz-landing-system : lando
2018-11-05 09:35:01 +00:00
Ted Campbell 8c500290c1 Bug 1503994 - Fixup js Proxy doc comments r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D10716

--HG--
extra : moz-landing-system : lando
2018-11-05 09:09:45 +00:00
Jonathan Kingston 4248b4c554 Bug 1490257 - Pass triggeringPrincipal to test code. r=ckerschb
Differential Revision: https://phabricator.services.mozilla.com/D10882

--HG--
extra : moz-landing-system : lando
2018-11-05 14:05:47 +00:00
vinoth 896a7bbbd2 Bug 1504207 - Add Prefs for allowing usage of eval with system principal in test files r=ckerschb
Differential Revision: https://phabricator.services.mozilla.com/D10696

--HG--
extra : moz-landing-system : lando
2018-11-05 13:39:31 +00:00
Ted Campbell 9fe909e765 Bug 1503885 - Cleanup JOF_ types in Opcodes.h r=jandem
- Add JOF_ARGC, JOF_RESUMEINDEX instead of bare integer tags
- Fix some inconsistencies of JOF_ type and opcode size
- Reorganize JOF_ type list

Differential Revision: https://phabricator.services.mozilla.com/D10567

--HG--
extra : moz-landing-system : lando
2018-11-04 21:50:14 +00:00
Ted Campbell 734e0038de Bug 1503885 - Fix top-level comments in vm/Opcodes.h r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D10761

--HG--
extra : moz-landing-system : lando
2018-11-04 21:41:41 +00:00
Ted Campbell 8403e89b6f Bug 1503885 - Fix formatting in vm/Opcodes.h r=jandem
- Wrap comments to 80 cols
- Use consistent formatting for opcode comments

Differential Revision: https://phabricator.services.mozilla.com/D10760

--HG--
extra : moz-landing-system : lando
2018-11-04 21:41:32 +00:00
Ted Campbell 9b026718a5 Bug 1503885 - Fix whitespace (only) in vm/Opcodes.h r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D10566

--HG--
extra : moz-landing-system : lando
2018-11-04 21:41:18 +00:00