Commit Graph

68209 Commits

Author SHA1 Message Date
Jan de Mooij
0ea04a1064 Bug 1511837 - Simplify JSOP_SUPERFUN and JSOP_SUPERBASE by factoring out the callee lookup. r=arai
We now emit JSOP_CALLEE or JSOP_ENVCALLEE (a new op) to load the callee.
JSOP_SUPERFUN and JSOP_SUPERBASE no longer have to walk the scope/environment
chain.

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

--HG--
extra : moz-landing-system : lando
2018-12-04 19:48:34 +00:00
Matthew Gaudet
a2c6c03a73 Bug 1511168: Mark low-level memory management comment with SMDOC r=tcampbell DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D13733

--HG--
extra : moz-landing-system : lando
2018-12-04 18:19:51 +00:00
Jan de Mooij
0c52a64c75 Bug 1511210 part 3 - Remove unnecessary call to ensureHasTypes in jit::CreateThis. r=tcampbell
This was added in bug 833076 because back then TypeScript::SetThis assumed
non-null script->types. However since bug 875276 we don't need this anymore.

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

--HG--
extra : moz-landing-system : lando
2018-12-02 22:38:39 +00:00
Jan de Mooij
9a73ceef5f Bug 1511210 part 2 - Ensure we have a JitRealm in ICScript::create. r=tcampbell
Depends on D13650

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

--HG--
extra : moz-landing-system : lando
2018-12-02 22:29:55 +00:00
Jan de Mooij
7d64f9c2b3 Bug 1511210 part 1 - Check script warm up count before calling ensureJitRealmExists in CanEnterBaselineJIT. r=tcampbell
This is just a minor optimization, but it makes the bug fixed by part 2
reproducible when running jit-tests.

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

--HG--
extra : moz-landing-system : lando
2018-12-02 22:05:08 +00:00
Rob Wu
7d113fddff Bug 1504660 - Implement Xrays for instanceof r=bholley
Ensure that "a instanceof b" has Xray semantics, i.e. that when b is a
XrayWrapper, that the wrapped object's getters, `Symbol.hasInstance`
hook and proxy traps are not triggered.

The toolkit/components/mozintl/test/test_mozintlhelper.js test was
updated to explicitly waive Xrays, instead of relying on the previous
behavior where Xrays were automatically waived.

Depends on D11591

Depends on D11591

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

--HG--
extra : moz-landing-system : lando
2018-12-02 22:21:51 +00:00
Rob Wu
15f88c421b Bug 1504660 - Move js::InstanceOfOperator to JS::InstanceofOperator r=bholley
There is currently no public API to call the 'instanceof' handler
without triggering proxies. The public method, JS_HasInstance, may
skip the default logic if a class has a non-null JSHasInstanceOp.
(i.e. js/src/proxy/Proxy.cpp and js/src/ctypes/CTypes.cpp ).

To serve the need of the next patch (which needs to trigger the
instanceof logic without triggering the proxy), this patch publishes the
js::InstanceofOperator method.
JS::InstanceOfOperator is the new name, and the new capitalization
matches the name of the abstract operation in the ES6 specification.

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

--HG--
extra : moz-landing-system : lando
2018-12-02 22:21:48 +00:00
Lars T Hansen
0c89febd85 Bug 1508665 - Split BaseStackFrame to simplify it. r=bbouvier
BaseStackFrame is split into two parts:

- BaseStackFrameAllocator is now responsible for dealing with stack
  allocation and deallocation in all complex cases (which means
  everything except for the simple native masm.Push and masm.Pop
  cases).

- What's left of BaseStackFrame is then a simple-to-use API for the
  rest of the compiler that maintains and checks invariants and does
  various kinds of bookkeeping and hides the remaining differences
  between the chunky and non-chunky stacks.

The latter class inherits from the former because this is simplest
(and it's easy to accomplish with 'protected').

There are a couple of minor functional changes here:

- The variable maxFramePushed_ now actually records the maximum value
  of masm.framePushed, not the maximum stack height.  The new behavior
  is correct even with the chunky stack, since this value is used for
  stack overflow checking.  There should however be no observable
  changes because of this.  (Trivial reason: only ARM64 is affected
  and we have no ARM64 products.  Deeper reason: stacks are aligned at
  coarser boundaries than our stack chunks, and have lots of headroom.)

- Member variables tracking the stack height are now set up in a new
  method, onFixedStackAllocated(), which is called after
  beginFunction() has allocated the space for the Header and Local
  areas of the frame.  The old behavior was correct but very obscure.
  The new code is easier to understand.

--HG--
extra : rebase_source : b3a06eb2a845a76c671d3060fa9e77cb0e4e4b69
2018-11-26 15:15:59 +01:00
Lars T Hansen
0bc0543a7b Bug 1510193 - don't use TypedObjects if not available and necessary. r=jorendorff
We rely on TypedObjects for the experimental wasm GC feature, but that
feature is Nightly-only and we should not be touching TypedObjects if
we don't need them.  Furthermore we should just fail to compile
outright if wasm GC is enabled but TypedObjects are not.

--HG--
extra : rebase_source : e76a01ea25158aa6d3bd8760339e06be41dbba80
2018-11-29 10:10:02 +01:00
Gurzau Raul
a2ac06c603 Merge mozilla-central to inbound. a=merge CLOSED TREE 2018-12-01 16:33:38 +02:00
Coroiu Cristina
1ca919f882 Merge mozilla-central to autoland a=merge 2018-12-01 07:55:13 +02:00
Coroiu Cristina
3564dfde3b Merge inbound to mozila-central a=merge 2018-12-01 07:46:00 +02:00
Jan de Mooij
998a522b90 Bug 1511412 - Fix an issue with incremental sweeping and ICScript. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D13566

--HG--
extra : moz-landing-system : lando
2018-11-30 19:59:04 +00:00
Sean Stangl
3dcc5d23c4 Bug 1510334 - Lower LMulI and fix register corruption. Fixes arguments/args2d.js. r=nbp 2018-11-30 09:28:00 +02:00
Sean Stangl
ee1ecb8b3e Bug 1510735 - ARM64 codegen for LTestDAndBranch and LTestFAndBranch. r=nbp 2018-11-30 09:30:00 +02:00
Sean Stangl
02b6e39ab1 Bug 1510749 - The AArch64 ISR explicitly allows CSINC to accept ZR. r=nbp
--HG--
extra : rebase_source : 66b7a76d979bd2aa8c8b228cba39db9310287944
2018-11-30 11:21:00 +02:00
Matthew Gaudet
5918e7b11c Bug 1510604 - Add SPEW=help to explain structured spewer r=tcampbell
Also cleans out no longer valid IONFLAG bl-ic-stats

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

--HG--
extra : moz-landing-system : lando
2018-11-30 20:18:27 +00:00
Jeff Walden
e23179884e Bug 1506969 - Tests. r=tcampbell
--HG--
extra : rebase_source : 5e466fc9a5206829a0498ab8757c3d325db05eaa
2018-11-29 16:53:53 -08:00
Sylvestre Ledru
265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Noemi Erli
8f0db72fb6 Merge inbound to mozilla-central. a=merge 2018-11-30 11:35:05 +02:00
arthur.iakab
b32fed790c Backed out changeset 5e65de3569fe (bug 1506969) for causing spidermonkey bustages on testScriptSourceCompression.cpp CLOSED TREE 2018-11-30 08:42:51 +02:00
Jeff Walden
6e3babac6f Bug 1506969 - Tests. r=tcampbell 2018-11-29 16:53:53 -08:00
Jeff Walden
e261cecaf9 Bug 1506969. r=tcampbell
--HG--
extra : rebase_source : 81aef7997b882e3640a0c83964e102375b4d1b77
2018-11-26 13:12:29 -08:00
Jeff Walden
ddf47e46d5 Bug 1510367 - More precisely specify the |breakpoint| function that ought be broken on in js/src/gdb/tests tests so that we don't mis-specify it on js::jit::AssemblerX86Shared::breakpoint. :-\ r=jimb
--HG--
extra : rebase_source : 77831855a52fc6294cf035613bd6ce4dc5dd10bd
2018-11-20 09:45:21 -08:00
Adam Holm
6fba94b2f0 Bug 1451591 - Flush CacheIR Spewer on regular intervals. r=mgaudet 2018-11-28 12:08:52 -08:00
Razvan Maries
d696b8eb57 Merge mozilla-central to mozilla-inbound. a=merge on a CLOSED TREE 2018-11-29 23:46:52 +02:00
Jan de Mooij
b38ee74e4d Bug 1499644 - Move IC data out of BaselineScript. r=tcampbell
ICEntries and the fallback stub space are now stored in ICScript. The ICScript*
is stored in TypeScript to not increase sizeof(JSScript).

We need this for bug 1499324 but it also lets us greatly simplify the
BaselineDebugModeOSR code as this patch shows.

Note: some ICScript method definitions are still in BaselineJIT.cpp instead of
BaselineIC.cpp to make this patch easier to review. We could move them to
BaselineIC.cpp as a follow-up change.

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

--HG--
extra : moz-landing-system : lando
2018-11-29 19:08:28 +00:00
Daniel Varga
97590ebbad Merge mozilla-central to autoland. a=merge on a CLOSED TREE 2018-11-29 19:13:14 +02:00
Matthew Gaudet
056ca1083b Bug 1504005 - Initial Structured Spewer r=jandem
This spewer design has two goals:

  1. Provide a spew mechanism that has first-class support for slicing and
     dicing output. This means that filtering by script and channel should be
     the dominant output mechanism.
  2. Provide a simple powerful mechanism for getting information out of the
     compiler and into tools. I'm inspired by tools like CacheIR analyzer,
     IR Hydra, and the upcoming tracelogger integration into perf.html.

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

--HG--
extra : moz-landing-system : lando
2018-11-29 14:37:01 +00:00
Daniel Varga
dc295b2050 Backed out changeset 5c1893bd77c2 (bug 1499323) for linting failure at /builds/worker/checkouts/gecko/config/check_macroassembler_style.py:149:5 on a CLOSED TREE 2018-11-29 16:03:08 +02:00
Nicolas B. Pierron
6570f1fb9f Bug 1499323 - Prepare the check_macroassembler_style python script to accept clang-format rewritting. r=jandem 2018-11-29 14:46:02 +01:00
Coroiu Cristina
da4da94439 Merge mozilla-central to inbound a=merge 2018-11-29 06:39:53 +02:00
Coroiu Cristina
e92b0f1d7f Merge inbound to mozilla-central a=merge 2018-11-29 06:27:40 +02:00
Coroiu Cristina
b8bc09a5b5 Merge mozilla-central to inbound a=merge on a CLOSED TREE
--HG--
rename : python/mozrelease/test/data/Firefox-62.0b11.update.json => python/mozrelease/test/data/Firefox-64.0b13.update.json
extra : rebase_source : 6eb078869182f40343e201993c0d0442ed96ad46
2018-11-29 00:34:07 +02:00
Coroiu Cristina
d4aafa8e1c Merge inbound to mozilla-central a=merge 2018-11-28 23:49:09 +02:00
Jason Orendorff
a942af532c Bug 1506200 - Remove ReadableStream EmbeddingFlags. r=baku,jwalden
Differential Revision: https://phabricator.services.mozilla.com/D11903

--HG--
extra : moz-landing-system : lando
2018-11-28 22:20:55 +00:00
Matthew Gaudet
2ec7f9e1f3 Bug 1510018: Fix error in callVM comment r=nbp DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D13106

--HG--
extra : moz-landing-system : lando
2018-11-28 10:28:57 +00:00
Narcis Beleuzu
6d70864397 Merge mozilla-central to autoland. CLOSED TREE 2018-11-28 12:00:56 +02:00
Ehsan Akhgari
ca162bee20 Bug 1508472 - Part 4: Fourth batch of comment fix-ups in preparation for the tree reformat r=sylvestre
This is a best effort attempt at ensuring that the adverse impact of
reformatting the entire tree over the comments would be minimal.  I've used a
combination of strategies including disabling of formatting, some manual
formatting and some changes to formatting to work around some clang-format
limitations.

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

--HG--
extra : moz-landing-system : lando
2018-11-28 09:16:55 +00:00
Ehsan Akhgari
0ad55ab74f Bug 1510513 - Retain the formatting of MOZ_DEFINE_ENUM_* macros r=sylvestre
These macros tend to be handled quite poorly since the clang-format
tokenizer cannot figure out how to handle them.

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

--HG--
extra : moz-landing-system : lando
2018-11-28 09:14:19 +00:00
Tooru Fujisawa
a056a49888 Bug 1501155 - Part 2: Use WTF-8 as BinAST string encoding. r=Yoric 2018-11-28 14:16:29 +09:00
Tooru Fujisawa
6ca00b0b03 Bug 1501155 - Part 1: Add AtomizeWTF8Chars. r=jwalden 2018-11-28 14:16:29 +09:00
Coroiu Cristina
47323ec73b Merge mozilla-central to autoland a=merge on a CLOSED TREE 2018-11-28 23:56:03 +02:00
Brian Hackett
3b62690341 Bug 1510105 - Save/restore JSReturnOperand when doing debug mode OSR after a VM call returns, r=tcampbell.
--HG--
extra : rebase_source : b20c636ec65a7771c18feb67545a4e2afdfb6083
2018-11-27 05:57:15 -10:00
Brian Hackett
05a3dfff56 Bug 1510684 - Advance iterator in maybeIonFrameRecovery, r=nbp.
--HG--
extra : rebase_source : 1a5dcf2a9708db013ba7e898001e4cb0de3b75d6
2018-11-28 10:02:07 -10:00
Matthew Gaudet
b31f4edbbf Bug 1509293: Add missing lazyProtoCheck to tryAttachArrayPush r=djvj
Differential Revision: https://phabricator.services.mozilla.com/D12787

--HG--
extra : moz-landing-system : lando
2018-11-28 17:52:16 +00:00
Benjamin Bouvier
aee3f05f7d Bug 1509283: Compile the last wasm function batch on the main thread; r=luke
--HG--
extra : rebase_source : 69645820d66e45bed4f622280b3f059525c39f09
2018-11-22 11:12:20 +01:00
Tooru Fujisawa
05a6adee89 Bug 1508063 - Part 5: Move non-auto-generated part of BinASTParser into BinASTParserPerTokenizer. r=Yoric 2018-11-29 01:03:46 +09:00
Tooru Fujisawa
f5534517cb Bug 1508063 - Part 4: Rename BinSource-auto.{cpp,h} to BinASTParser.{cpp,h}, and BinSource.{cpp,h} to BinASTParserPerTokenizer.{cpp,h}. r=Yoric 2018-11-29 01:03:45 +09:00
Tooru Fujisawa
4023bc8687 Bug 1508063 - Part 3: Fix typo in Binsource.yaml. r=Yoric 2018-11-29 01:03:45 +09:00