Commit Graph

51560 Commits

Author SHA1 Message Date
Jon Coppeard
42e1147d00 Bug 1217919 - Separate dynamic module scopes from those of function calls r=shu 2015-10-28 11:45:30 +00:00
Jon Coppeard
68a0e7dcf4 Bug 1215678 - Nuke cross compartment wrappers if we fail to add them to the wrapper map r=terrence 2015-10-28 11:45:30 +00:00
Tooru Fujisawa
8b91606b4f Bug 1218967 - Do not stop executing autospider.sh on test failure. r=sfink
--HG--
extra : commitid : 5DfuCBjiLCu
extra : rebase_source : 86d21f0f944c23c2c96ac08cf8d8b8652587144c
2015-10-28 05:10:25 +09:00
simplyblue
4a7be920fb Bug 1218204 - Remove else after return from Parser<ParseHandler>::maybeParseDirective. r=arai 2015-10-27 19:07:58 +05:30
Shu-yu Guo
e22912e1bf Bug 1167029 - Followup: remove now-unused DeprecatedLetBlock telemetry. (rs=efaust) 2015-10-27 20:13:17 -07:00
Shu-yu Guo
d68a20c4a7 Bug 932517 - Treat let as a contextual keyword in sloppy mode and make it versionless. (r=jorendorff) 2015-10-27 20:13:17 -07:00
Boris Zbarsky
7ae3b58eb6 Bug 1039986. Make Function.prototype.toString work on Web IDL interface objects. r=jorendorff,peterv 2015-10-27 16:25:14 -04:00
Tooru Fujisawa
f8b8735722 Bug 1201783 - Throw range error for too long array spread before updating length. r=Waldo, a=abillings
--HG--
extra : commitid : A83oR4MCrfU
extra : rebase_source : 5655ec1def8fe235397d34ff1a37eccf4a5b6545
extra : amend_source : cb0ba64475ac4d790f018fd8fdc90e40be69dd2e
2015-10-21 21:35:46 +09:00
Heiher
1a1f9a1869 Bug 1218652 - IonMonkey: MIPS: Add mips-shared in check macroassembler style. r=arai
---
 config/check_macroassembler_style.py | 2 +-
 js/src/jit/MacroAssembler.h          | 5 ++++-
 2 files changed, 5 insertions(+), 2 deletions(-)
2015-10-28 07:35:06 +08:00
Heiher
7cbdec59d1 Bug 1218652 - IonMonkey: MIPS: Move shared functions to mips-shared. r=arai
---
 .../mips-shared/MacroAssembler-mips-shared-inl.h   |  84 ++++++++++
 .../jit/mips-shared/MacroAssembler-mips-shared.cpp | 185 +++++++++++++++++++++
 js/src/jit/mips32/MacroAssembler-mips32-inl.h      |  61 +------
 js/src/jit/mips32/MacroAssembler-mips32.cpp        | 175 -------------------
 4 files changed, 271 insertions(+), 234 deletions(-)
 create mode 100644 js/src/jit/mips-shared/MacroAssembler-mips-shared-inl.h
2015-10-28 07:35:03 +08:00
Heiher
58a4d68436 Bug 1218641 - IonMonkey: MIPS64: Add support into asmjs. r=lth
---
 js/src/asmjs/AsmJSFrameIterator.cpp | 19 ++++++++++++++-----
 js/src/asmjs/AsmJSModule.cpp        | 36 +++++++++++++++++++++++++++++++++++-
 js/src/asmjs/AsmJSModule.h          |  6 +++---
 js/src/asmjs/AsmJSValidate.cpp      | 18 +++++++++---------
 4 files changed, 61 insertions(+), 18 deletions(-)
2015-10-28 07:35:01 +08:00
Heiher
4b15027501 Bug 1218636 - IonMonkey: MIPS64: Add support into shell. r=lth
---
 js/src/shell/js.cpp | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)
2015-10-28 07:34:59 +08:00
Nicolas B. Pierron
bfb45e1d22 Bug 991249 - Ensure that we can check for OOMs when we run out of ballast space. r=jandem 2015-10-27 14:50:09 +00:00
Jan de Mooij
6e76ee01ed Bug 1214467 - Eliminate redundant loop header phis while emitting MIR for asm.js. r=luke 2015-10-27 14:35:17 +01:00
Jon Coppeard
e4c7052f80 Bug 1217593 - Fix compilation of LComputeThis now this can be undefined r=shu 2015-10-27 11:44:39 +00:00
Jon Coppeard
d50dbaf2da Bug 1216607 - Fix assertion failure ARM assembler on OOM r=jandem 2015-10-26 10:16:51 +00:00
Birunthan Mohanathas
44936aabb2 Bug 1217320 - Remove more XPIDL signature comments in .cpp files. r=froydnj
Comment-only, DONTBUILD.
2015-10-27 06:54:25 +02:00
Kyle Huey
c7d3c4e21a Bug 1216401: Eviscerate nsIDOMWindow, move still needed methods to nsPIDOMWindow. r=bz 2015-10-26 14:37:32 -07:00
Heiher
fe4db105c1 Bug 1217873 - IonMonkey: MIPS: Move BailoutStack to architecture dependent. r=arai f=nbp
---
 js/src/jit/mips-shared/Bailouts-mips-shared.cpp                     | 5 +----
 js/src/jit/mips32/Bailouts-mips32.cpp                               | 4 ++--
 .../Bailouts-mips-shared.h => mips32/Bailouts-mips32.h}             | 6 +++---
 js/src/jit/mips32/Trampoline-mips32.cpp                             | 2 +-
 js/src/jit/mips64/Bailouts-mips64.cpp                               | 4 ++--
 .../Bailouts-mips-shared.h => mips64/Bailouts-mips64.h}             | 6 +++---
 js/src/jit/mips64/Trampoline-mips64.cpp                             | 2 +-
 7 files changed, 13 insertions(+), 16 deletions(-)
 copy js/src/jit/{mips-shared/Bailouts-mips-shared.h => mips32/Bailouts-mips32.h} (93%)
 rename js/src/jit/{mips-shared/Bailouts-mips-shared.h => mips64/Bailouts-mips64.h} (93%)

--HG--
rename : js/src/jit/mips-shared/Bailouts-mips-shared.h => js/src/jit/mips32/Bailouts-mips32.h
rename : js/src/jit/mips-shared/Bailouts-mips-shared.h => js/src/jit/mips64/Bailouts-mips64.h
2015-10-27 18:21:38 +08:00
Heiher
eead0ff209 Bug 1205134 - IonMonkey: MIPS: Split shareable code to mips-shared in MacroAssembler-mips32. r=lth f=nbp
---
 .../MacroAssembler-mips-shared.cpp}                | 2977 +-------------------
 .../MacroAssembler-mips-shared.h}                  | 1236 +-------
 js/src/jit/mips32/MacroAssembler-mips32.cpp        |  766 -----
 js/src/jit/mips32/MacroAssembler-mips32.h          |  158 +-
 js/src/moz.build                                   |    1 +
 5 files changed, 118 insertions(+), 5020 deletions(-)
 copy js/src/jit/{mips32/MacroAssembler-mips32.cpp => mips-shared/MacroAssembler-mips-shared.cpp} (14%)
 copy js/src/jit/{mips32/MacroAssembler-mips32.h => mips-shared/MacroAssembler-mips-shared.h} (11%)

--HG--
rename : js/src/jit/mips32/MacroAssembler-mips32.cpp => js/src/jit/mips-shared/MacroAssembler-mips-shared.cpp
rename : js/src/jit/mips32/MacroAssembler-mips32.h => js/src/jit/mips-shared/MacroAssembler-mips-shared.h
2015-10-27 18:21:31 +08:00
Jakob Olesen
90ca5522d7 Bug 1207827 - Delete Assembler::actualOffset() and transitive closure. r=nbp
The implemetation of Assembler::actualOffset() is now a no-op in all
targets, and it is no longer necessary to rewrite assembler buffer
offsets to their final form after finishing the assembler buffer.

- Delete Assembler::actualOffset() in all targets.
- Delete AsmJSModule::CodeRange::updateOffsets().
- Delete AsmJSModule::updateCodeOffset().
- Delete AsmJSModule::updateOffsets().
- Delete CodeOffsetLabel::fixup().
- Delete ICEnty::fixupReturnOffset().
- Delete LSafepoint::fixupOffset().
- Delete OsiIndex::fixUpOffset().
- Delete PCMappingEntry::fixupNativeOffset().

Also delete all code calling these functions.
2015-10-26 17:06:09 -07:00
Jakob Olesen
529ad0893c Bug 1207827 - Remove ARM temporary offset buffers. r=nbp
The ARM assembler no longer needs to keep track of code offsets for
later translation to 'actual' offsets. The AssemblerBuffer offsets
are directly usable now.

Remove tmpDataRelocations_, tmpPreBarriers_, and tmpJumpRelocations_.
2015-10-26 17:06:09 -07:00
Jakob Olesen
ebcd10e003 Bug 1207827 - Remove ARM64 temporary offset buffers. r=nbp
The ARM64 assembler no longer needs to keep track of code offsets for
later translation to 'final' offsets. The AssemblerBuffer offsets are
directly usable now.

Remove tmpDataRelocations_, tmpPreBarriers_, tmpJumpRelocations_, and
the finalOffset() method.
2015-10-26 17:06:09 -07:00
Jakob Olesen
f1cc8e12a3 Bug 1207827 - Eliminate poolSizeBefore(). r=nbp
This method was used by the Assembler::actualOffset() methods to
translate buffer offsets from pre-pool to post-pool numbers. Since
pools are now injected immediately, there is no need to translate
offsets.

All the actualOffset() methods have become no-ops in all our supported
targets.
2015-10-26 17:06:09 -07:00
Jakob Olesen
ca549c8443 Bug 1207827 - Switch jit::Pool to a LifoAllocPolicy. r=nbp
This is possible because we no longer PodCopy the pools.

Use a more reasonable size for the inline memory in the loadOffsets
vector (8 loads instead of 512). This saves stack space when a
MacroAssembler is created on the stack. Use a matching inline size of 8
entries for the poolData array itself.

Don't drop memory in Pool::reset() by calling placement new - call
Vector::clear() instead which hangs on to previously allocated memory
for use by the next pool.

Delete an unused array of pools in arm64/vixl/MozBaseAssembler-vixl.h.
2015-10-26 17:06:09 -07:00
Jakob Olesen
b797f4ee8c Bug 1207827 - Use a Vector for poolInfo_. r=nbp
Use a Vector with 8 preallocated slots and a LifoAllocPolicy allocating
from the parent AssemblerBuffer's lifoAlloc_. We'll rarely need more
than 8 constant pools in a single assembler.

We can't actually allocate memory from this->lifoAlloc_ in the
constructor, but it is OK to capture allocator references like the
Vector constructor does.

Add an assertion to initWithAllocator() to verify that we didn't
allocate anything from lifoAlloc_ before the MacroAssembler constructor
had a chance to install an AutoJitContextAlloc.
2015-10-26 17:06:09 -07:00
Jakob Olesen
cb1f2413d6 Bug 1207827 - Stop perforating AssemblerBuffers. r=nbp
There is no longer a 1-1 correspondence between buffer slices and
constant pools. We no longer need the ability to truncate a buffer
slice prematurely.

This uses less memory.
2015-10-26 17:06:08 -07:00
Jakob Olesen
0645e48476 Bug 1207827 - Copy pool data into buffer immediately. r=nbp
Since constant pools have been simplified such that they always follow
the load instructions referencing them, it is now possible to copy the
pool data into the main assembly buffer right away in finishPool()
instead of deferring the copy to executableCopy(). This has the
important effect that BufferOffset values don't need to be adjusted to
account for the size of injected constant pools.

- In finishPool(), copy the constant pool data into the main assembler
  buffer with putBytesLarge() which allows the potentially large pool
  data to be split over multiple slices.

- Stop copying pool data in executableCopy(). It has already
  been copied in finishPool().

- Simplify the PoolInfo data structure to a simple (firstEntry, offset)
  pair which records the necessary information about a single emitted
  constant pool.

- Rewrite poolEntryOffset() to use the new PoolInfo data.

- Simplify poolSizeBefore() to just return 0. This function will be
  removed entirely in a followup patch.

- Stop patching branches in executableCopy() and delete the
  patchBranch() method. Since buffer offsets are reliable when the
  branches are inserted and when labels are bound, there is no need to
  adjust branches to account for constant pools.

- Delete the BufferSliceTail class. It is no longer necessary to
  maintain a bit vector of branch instructions since we don't rewrite
  branches any longer. Use the plain AssemblerBuffer::Slice class
  instead.

This patch implements the basic functional change of copying pool data
immediately instead of deferring it. Followup patches will clean up the
now redundant code.
2015-10-26 17:06:08 -07:00
Jakob Olesen
2bb2ea249b Bug 1207827 - Add AssemblerBuffer::putBytesLarge. r=nbp
This new method copies a large amount of data into the assembler
buffer, potentially splitting it across multiple slices.

The existing putBytes() method can only copy into a single slice which
limits the maximum since of data that can be inserted and potentially
wastes space at the end of the previous slice.
2015-10-26 17:06:08 -07:00
Jakob Olesen
f14b5f58a2 Bug 1217061 - Report OOMs in IonCache::linkAndAttachStub(). r=djvj
The method IonCache::linkAndAttachStub() can run out of memory in a few
ways: When adding entries to the global jit code table, and when
generating code through the macro assembler.

Make sure to call ReportOutOfMemory() before returning false when that
happens. Otherwise we won't get the right of error reported, and OOM
simulation tests fail.

The Linker already calls ReportOutOfMemory(), so we don't need to
handle those calls.
2015-10-26 15:39:51 -07:00
Shu-yu Guo
4e6d1736a6 Bug 1167029 - Remove support for let blocks. (r=jorendorff) 2015-10-26 14:13:25 -07:00
Shu-yu Guo
d7e6363a53 Bug 1214048 - Improve callee-not-a-function error for spread calls. (r=jorendorff) 2015-10-26 14:13:25 -07:00
Carsten "Tomcat" Book
9edb90c808 Backed out changeset 5d6aca60d59c (bug 1216607) for failing on own test 2015-10-26 12:24:55 +01:00
Jon Coppeard
a17d33df4f Bug 1216607 - Fix assertion failure ARM assembler on OOM r=jandem 2015-10-26 10:16:51 +00:00
Jan de Mooij
1a5fb5ffcd Bug 1214126 part 5 - Remove SetElementIC. r=efaust 2015-10-26 11:10:19 +01:00
Jan de Mooij
92d446a593 Bug 1214126 part 4 - Move IC stubs from SetElementIC to SetPropertyIC. r=efaust 2015-10-26 11:10:19 +01:00
Jan de Mooij
199ed2c64c Bug 1214126 part 3 - Use IC for JSOP_SETELEM in more cases. r=efaust 2015-10-26 11:10:19 +01:00
Jan de Mooij
e6fea48c59 Bug 1214126 part 2 - Use SetProperty IC for JSOP_SETELEM. r=efaust 2015-10-26 11:10:19 +01:00
Jan de Mooij
eb2fb53b7a Bug 1214126 part 1 - Add extra 'id' operand to SetProperty IC. r=efaust 2015-10-26 11:10:19 +01:00
Tom Tromey
17654ddd0f Bug 863089 - replace Debugger.Script.getOffsetLine with getOffsetLocation; r=fitzgen 2015-10-22 09:35:00 +02:00
Jan de Mooij
fe880dd5d1 Bug 1175111 - Fix enumeration order for indexed properties. r=jorendorff 2015-10-24 20:59:50 +02:00
Heiher
115d577221 Bug 1215420 - IonMonkey: MIPS32: Fix FloatRegister::encoding. r=nbp
---
 js/src/jit/mips32/Architecture-mips32.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
2015-10-25 06:02:16 +08:00
Heiher
bde62bfe5a Bug 1213750 - IonMonkey: MIPS64: Import Trampoline-mips64. r=nbp f=rankov
---
 js/src/jit/mips64/Trampoline-mips64.cpp | 1319 +++++++++++++++++++++++++++++++
 js/src/moz.build                        |    1 +
 2 files changed, 1320 insertions(+)
 create mode 100644 js/src/jit/mips64/Trampoline-mips64.cpp
2015-10-25 06:02:07 +08:00
Heiher
54fae228c6 Bug 1213749 - IonMonkey: MIPS64: Import SharedIC-mips64. r=nbp f=rankov
---
 js/src/jit/mips64/SharedIC-mips64.cpp        | 191 +++++++++++++++
 js/src/jit/mips64/SharedICHelpers-mips64.h   | 350 +++++++++++++++++++++++++++
 js/src/jit/mips64/SharedICRegisters-mips64.h |  47 ++++
 js/src/moz.build                             |   1 +
 4 files changed, 589 insertions(+)
 create mode 100644 js/src/jit/mips64/SharedIC-mips64.cpp
 create mode 100644 js/src/jit/mips64/SharedICHelpers-mips64.h
 create mode 100644 js/src/jit/mips64/SharedICRegisters-mips64.h
2015-10-25 06:01:59 +08:00
Heiher
741f94a70a Bug 1213747 - IonMonkey: MIPS: Import MIPS64 support into MoveEmitter-mips-shared. r=nbp f=rankov
---
 js/src/jit/mips-shared/MoveEmitter-mips-shared.cpp | 39 +++++++++++++++++++++-
 js/src/jit/mips-shared/MoveEmitter-mips-shared.h   |  1 +
 2 files changed, 39 insertions(+), 1 deletion(-)
2015-10-25 06:01:47 +08:00
Heiher
50a8044948 Bug 1213745 - IonMonkey: MIPS64: Import Lowering-mips64. r=nbp f=rankov
---
 js/src/jit/mips64/LIR-mips64.h        |  52 ++++++++++++++
 js/src/jit/mips64/LOpcodes-mips64.h   |  16 +++++
 js/src/jit/mips64/Lowering-mips64.cpp | 128 ++++++++++++++++++++++++++++++++++
 js/src/jit/mips64/Lowering-mips64.h   |  50 +++++++++++++
 js/src/moz.build                      |   1 +
 5 files changed, 247 insertions(+)
 create mode 100644 js/src/jit/mips64/LIR-mips64.h
 create mode 100644 js/src/jit/mips64/LOpcodes-mips64.h
 create mode 100644 js/src/jit/mips64/Lowering-mips64.cpp
 create mode 100644 js/src/jit/mips64/Lowering-mips64.h
2015-10-25 06:01:42 +08:00
Tooru Fujisawa
b4a8c57d5c Bug 1202134 - Save return value onto the stack before executing finally block. r=jandem
--HG--
extra : commitid : F5bVUkIo8Kl
extra : rebase_source : df4be26d3b72d9998af65d0ac8db8d7f49e08aac
2015-10-17 23:30:20 +09:00
Tooru Fujisawa
4462768ce3 Bug 1212719 - Throw SyntaxError immediately for unexpected TOK_TRIPLEDOT. r=Waldo
--HG--
extra : commitid : 1K5yBMpWmf7
extra : rebase_source : de3ff0a85afbe9551448a8ebfd77c3b935ce3d52
2015-10-08 17:31:23 +09:00
Wes Kocher
dd50b531bf Bug 1217963 - Correct the spelling of "corect" rs=mossop
--HG--
extra : commitid : KIXf5DKKRrc
extra : source : 3f3fbf4e7a52b1bbb2848edd65eaacc7282b1a01
2015-10-23 16:02:56 -07:00
Wes Kocher
b1b8cc1e90 Merge m-c to inbound, a=merge
--HG--
extra : commitid : FfOh7UtTKPC
2015-10-23 15:51:31 -07:00