Commit Graph

51970 Commits

Author SHA1 Message Date
Hannes Verschore
c219ee8308 Bug 1226445: SharedStubs - Keep track of the pushed frames correctly in GetPropCallNative, r=jandem 2015-11-24 08:02:03 +01:00
Hannes Verschore
77ccc3fbae Bug 1224883: Only lazy linking from jit code expects to have valid jit code afterwards, r=jandem 2015-11-24 07:59:55 +01:00
Mike Hommey
394d50aba5 Bug 1226119 - Clear pending exception from script cache writing failure. r=bholley 2015-11-24 11:29:14 +09:00
Jakob Olesen
072dbcf1f7 Bug 1210554 - Handle toggled calls in CodeFromJump(). r=sstangl
When handed a call that had been disabled by ToggleCall(), this
function would crash.
2015-11-23 15:28:46 -08:00
Jakob Olesen
2257ab0488 Bug 1210554 - Dynamically track short-range branches. r=sstangl
Add a branch range argument to LinkAndGetOffsetTo(): ARM64 branches
can't encode arbitrary ranges, so the linked list of unbound label uses
needs some consideration. We can't assume that a newly assembled branch
instruction will be able to point backwards to label->offset().

Change LinkAndGetOffsetTo() to a normal function instead of a template.
We don't need the code duplication just to apply different scale
factors. Throw the premature microoptimizers a bone by replacing the
element_size template argument with its logarithm.

Implement Assembler::PatchShortRangeBranchToVeneer() to insert the
veneer branch after the original short-range branch in the linked list
of uses of the unbound label.

Fix Assembler::bind() to understand that not all branches can reach the
label. Verify that these branches jump to a veneer instead.

Register short-range branches in LinkAndGetOffsetTo(), and unregister
them again in Assembler::bind().
2015-11-23 15:28:46 -08:00
Jakob Olesen
137875511b Bug 1210554 - Change representation of unbound Label linked lists. r=sstangl
Instead of storing byte offsets in the branch instructions using a
label, store instruction offsets, just like the finished branches do.
Use a 0 pc offset to terminate the linked list instead of -1.

This increases the maximum distance between linked branches to be the
same as the range of the branch instrructions. Previously, the
supported range was only 1/4 of what the branch instructions can
encode.

Provide protected functions for manipulating the linked list in
MozBaseAssembler, and rewrite Assembler::bind() and retarget() to use
them instead of decoding branches manually.

Move the LinkAndGet*OffsetTo functions into MozBaseAssembler. Our
version of these functions is completely different from the VIXL
versions.
2015-11-23 15:28:46 -08:00
Jakob Olesen
c6a6ebb4a0 Bug 1210554 - Add enum ImmBranchRangeType. r=sstangl
We already have an ARM64 ImmBranchType which classifies the branch
instructions in the ISA. The /range/ classification is required because
we need unique small integers to pass to
AssemblerBufferWithConstantPool::registerBranchDeadline(). The b.cond
and cbz instructions have the same range, but different branch types.

Classify the 32 KB and 1 MB range branches as 'short-range'. Request
these branch ranges to be tracked by the new
AssemblerBufferWithConstantPools::NumShortBranchRanges faclity.

Also add two functions for computing the maximum forward and backward
reach of branches given their range enumerator.
2015-11-23 15:28:46 -08:00
Jakob Olesen
7f1734b658 Bug 1210554 - Add PatchShortRangeBranchToVeneer(). r=nbp
This is the second part of the short branch handling in
AssemblerBufferWithConstantPools. The PatchShortRangeBranchToVeneer()
callback is called from finishPool() to patch short-range branches that
are about to expire.

Implement no-op versions of the callback for ARM and ARM64. These
versions will never be called as long as no short-line branches are
registered. They only exist to prevent linker errors in unoptimized
builds. In an optimized build, the unused function calls will be
optimized out because DeadlineSet<0>::empty() is hardwired to return
true.
2015-11-23 15:28:46 -08:00
Jakob Olesen
1369a4294b Bug 1210554 - Implement constant pool test. r=nbp
Test the existing functionality of AssemblerBufferWithConstantPools
using a fake ISA that is much more constrained than ARM and ARM64.

Documant the Assembler callback that are required to use
AssemblerBufferWithConstantPools, and implement mock versions for the
unit test.
2015-11-23 15:28:46 -08:00
Jakob Stoklund Olesen
4fd935c057 Bug 1210554 - Wire up branchDeadlines_ partially. No Asm callbacks yet. r=nbp
AssemblerBufferWithConstantPools geta a branchDeadlines_ member which keeps
track of forward branch to unbound labels.

Add a hasSpaceForInsts() method which collects the logic for checking for
available space in one place. Insert a constant pool both when constant pool
loads are about to go out of range, and when short-range branch deadlines are
about to expire.

Add registerBranchDeadline() and unregisterBranchDeadline() methods that the
assembler will use to add and remove branches to be tracked.
2015-11-23 15:28:46 -08:00
Jakob Olesen
0d7845c409 Bug 1210554 - Implement BranchDeadlineSet. r=nbp
This is the data structure that will be used to keep track of
unresolved forward short-range branches.
2015-11-23 15:28:46 -08:00
Jakob Olesen
79b20824a5 Bug 1210554 - Add testAssemblerBuffer to jsapi-tests. r=sstangl
Also minor fixes to the AssemblerBuffer class:

- Tighten encapsulation / data hiding.
- Use consistent types size_t + void* for raw byte data.
2015-11-23 15:28:46 -08:00
Jakob Olesen
8d5ec0ea2d Bug 1210554 - Fix unified build breakage. r=sfink 2015-11-23 15:28:46 -08:00
Sean Stangl
9aa813dcdc Bug 1219050 - Update VIXL helper code to v1.10. r=jolesen 2015-10-16 13:49:19 -07:00
Terrence Cole
f1d99d6f28 Bug 1225631 - Handle options relating to task spawning in spawn_task; r=sfink
--HG--
extra : rebase_source : e7f9b12934dcc04296a3f7be9ed455e5c6410191
2015-11-23 09:52:28 -08:00
Steve Fink
5072610789 Bug 1225594 - Make jit-test's --show-cmd work again; r=terrence
--HG--
extra : rebase_source : b3000697892d20c724d35e15cd46ccf46816ba1d
2015-10-20 13:26:49 -07:00
Jan de Mooij
897269aa50 Bug 1132183 followup - Bump inlineMaxCalleeInlinedBytecodeLength to 3350. r=h4writer on IRC
--HG--
extra : rebase_source : db17fbda89f35303505dfe1d3393cec639dc9e07
2015-11-23 16:21:47 +01:00
Jon Coppeard
9e992d63eb Bug 1221747 - Fix OOM handling in IonScriptCounts r=nbp 2015-11-06 13:09:01 +00:00
Jon Coppeard
88733ff278 Bug 1221747 - Make JS_vsnprintf() return a value that indicates failure if we reach the buffer limit r=nbp 2015-11-23 14:10:28 +00:00
Benjamin Bouvier
4380807e8f Bug 1225605: Simplify SimdTypeDescr::size()/alignment() and remove a macro; r=jolesen
--HG--
extra : rebase_source : cca8ce6d0433bbbfeb09a21afb36af652d97ce76
2015-11-20 10:56:19 +01:00
Benjamin Bouvier
fb5678ed2a Bug 1225605: Store SIMD type descriptors on the global SIMD object rather than on the global; r=jolesen
--HG--
extra : rebase_source : ea5e9ace0782e01695ee266efdffad1c5769e26b
2015-11-20 10:52:33 +01:00
Benjamin Bouvier
a34c95e14b Bug 1225605: Describe the SIMD type descriptors in terms of a concept; r=jolesen
--HG--
extra : rebase_source : a72625ddeae2d0004fccdda264e824eaf89cd81a
2015-11-19 17:25:36 +01:00
Jan de Mooij
3cdb312aae Bug 1132183 followup - Bump smallFunctionMaxBytecodeLength to 120. r=h4writer 2015-11-23 12:49:50 +01:00
Jon Coppeard
e92c43692b Bug 1224710 - Fix OOM handling bugs revealed by new testcase r=bbouvier 2015-11-23 10:53:33 +00:00
Jon Coppeard
1ed75b91b7 Bug 1224710 - Add test for fuzz bug fixed by bug 1223355 r=bbouvier 2015-11-18 16:07:18 +00:00
Jon Coppeard
c0fb4d57d9 Bug 1218968 - Reduce running time of oomInArrayProtoTest.js r=lth 2015-11-23 10:52:17 +00:00
Jon Coppeard
4ebccb4bfd Bug 1207571 r=jandem a=abillings 2015-11-23 10:48:21 +00:00
Jan de Mooij
042014efdb Bug 1205707 part 2 - Add test. r=Waldo 2015-11-21 20:53:28 +01:00
Jan de Mooij
64e522d49c Bug 1222917 - Fix register allocation in GenerateCallSetter. r=bhackett 2015-11-21 20:52:08 +01:00
Jan de Mooij
8f55c26a1c Bug 1132183 - Make |this| a real binding, remove lazy this computation. r=efaust,shu 2015-11-21 14:33:13 +01:00
Heiher
4e3be28022 Bug 1226152 - IonMonkey: MIPS64: Make sure the frame pushed are set correctly for ion vmcalls. r=h4writer
---
 js/src/jit/mips64/SharedICHelpers-mips64.h | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)
2015-11-21 15:28:52 +08:00
Heiher
96c782733c Bug 1225859 - IonMonkey: MIPS64: Fix branchTestBoolean(Address) missing. r=jandem
---
 js/src/jit/mips64/MacroAssembler-mips64.cpp | 8 ++++++++
 js/src/jit/mips64/MacroAssembler-mips64.h   | 1 +
 2 files changed, 9 insertions(+)
2015-11-21 15:28:46 +08:00
Terrence Cole
79de7574c1 Bug 1226687 - Part 2: Use stable hashing and builtin sweep for JSObject2JSObjectMap; r=mccr8
--HG--
extra : rebase_source : e3c5c05bead56da0dab01a3fdfb16a1f02fe862d
2015-11-20 13:54:35 -08:00
Terrence Cole
2f587b2fc3 Bug 1226687 - Part 1: Export a GCPolicy usable by JS::Heap; r=fitzgen
--HG--
extra : rebase_source : 7ac38143297ef92265faefe6ce800b6c55dcaa64
2015-11-20 13:53:19 -08:00
Boris Zbarsky
fb747879e0 Bug 1224007 part 3. Push down WouldReportJSException into MaybeSetPendingException, since anyone calling the latter will propagate the JS exception as needed. r=peterv 2015-11-20 16:29:41 -05:00
Boris Zbarsky
c19412a7ac Bug 1224007 part 1. Rename ThrowMethodFailed to MaybeSetPendingException and make it an ErrorResult instance method. r=peterv 2015-11-20 16:29:40 -05:00
Jeff Walden
03a1ee233b Bug 1220693 - Put the needs-update status of the ICU default time zone behind a spinlock, as the simplest/stupidest possible thing that works. r=sfink
--HG--
extra : rebase_source : 33e4dad372c155ffdc9bd9fd8c1cf26d82f848e3
2015-11-19 14:30:37 -08:00
Nick Fitzgerald
11e1dd10a1 Bug 1226176 - Compute retained sizes in dominator trees and expose them to JavaScript; r=bz,sfink 2015-11-20 09:08:15 -08:00
Jesper Kristensen
ba4bee60ea Bug 1094057 - Violations of "use strict"; should generate errors, not warnings, r=jorendorff
Make the use of JSREPORT_STRICT consistent across all places where it is used.
I.e. never add JSREPORT_STRICT when reporting JSREPORT_ERROR in strict mode,
but only when reporting JSREPORT_WARNING in non-strict mode.
This happens to make the errors appear as errors instead of warnings in the console.

--HG--
extra : commitid : J0bmt40WGxH
extra : rebase_source : cf7f65d1aa4ca9f355204c5744898113e6f50a68
2015-11-10 18:18:25 +01:00
Jonathan Kew
de00809b72 Bug 1210165 - Update test Intl/DateTimeFormat/format.js to expect 24-hour time in Arabic/Morocco locale. rs=waldo 2015-11-20 11:38:15 +00:00
Jonathan Kew
08e1f4fc03 Bug 1210165 - Update normalization test data for ICU 56 (Unicode 8.0) release. rs=waldo 2015-11-20 11:38:15 +00:00
Benjamin Bouvier
ec06fb2c9c Bug 1225605: Make the dependency between SimdTypeDescr::Type and the SimdTypes/SimdLanes arrays clearer; r=jolesen
--HG--
extra : rebase_source : 151400fbeb32dceb47914e645b6d36df435af3bb
2015-11-17 21:40:02 +01:00
Benjamin Bouvier
f31a605002 Bug 1225605: Remove non standard SIMD.Int{32x4,16x8,8x16}.bool; r=jolesen
--HG--
extra : rebase_source : 4a6aceabf70bfcab77c0d7e9ec6a768dec18e935
2015-11-17 21:09:21 +01:00
Benjamin Bouvier
21140fe66b Bug 1225605: Rename SIMD descriptors toType -> Cast, setReturn -> ToValue, and remove one-argument toType; r=jolesen
--HG--
extra : rebase_source : 1f4be8d5c01586224152025cd8ca45b23363682c
2015-11-17 20:51:23 +01:00
Lars T Hansen
0db882cb7b Bug 1226277 - fix MSVC warning with a cast. r=bbouvier
--HG--
extra : amend_source : ca81e5183943fc92e6c82f35ab67e5c45142c587
2015-11-20 06:20:29 +01:00
Wei Wu
d7cec4a561 Bug 1224810 - "TraceLogger: Add the script information for the event created by BytecodeCompiler". r=hv1989
--HG--
extra : rebase_source : 2dd0433495c62e53763c01ecbcb75a00382d1dfd
2015-11-14 03:43:00 +01:00
Wei Wu
63d4dd88d0 Bug 1224809 - "TraceLogger: Document what are enabled in 'TLLOG=Default' and 'TLLOG=IonCompiler'". r=hv1989
--HG--
extra : rebase_source : e5656fcfe4163296005788bde9b3e9f11584508c
2015-11-18 22:17:00 +01:00
Phil Ringnalda
d005086d1a Backed out 20 changesets (bug 1055472) for Linux64 cgc failures and an apparent crash in the cpp test test_audio on OS X 10.6 debug
CLOSED TREE

Backed out changeset edd1c18b5a5b (bug 1055472)
Backed out changeset 41be086be0e8 (bug 1055472)
Backed out changeset 6ed32cadfc31 (bug 1055472)
Backed out changeset 2f0b0b246e25 (bug 1055472)
Backed out changeset 33d5c8ef947c (bug 1055472)
Backed out changeset 74dca890ec34 (bug 1055472)
Backed out changeset b4a4144b96fa (bug 1055472)
Backed out changeset 9dd0b1fff545 (bug 1055472)
Backed out changeset 31c41d6a16ab (bug 1055472)
Backed out changeset bf8f9604c34f (bug 1055472)
Backed out changeset 69bf1faa9d85 (bug 1055472)
Backed out changeset 284934443cd3 (bug 1055472)
Backed out changeset 65d962413c98 (bug 1055472)
Backed out changeset 94135702e1b5 (bug 1055472)
Backed out changeset 1509efcfa629 (bug 1055472)
Backed out changeset c7180ea9dfa4 (bug 1055472)
Backed out changeset a47a3ce6f35e (bug 1055472)
Backed out changeset 9b4f7a838a66 (bug 1055472)
Backed out changeset e5f593ea362c (bug 1055472)
Backed out changeset 8ec3005245c1 (bug 1055472)
2015-11-19 20:01:07 -08:00
Terrence Cole
2508e5037b No Bug - Remove two unused, orphan variables; r=sfink 2015-11-19 13:55:16 -08:00
Terrence Cole
feac54f0ce No Bug - Fix accumulated unified build bustage in the JS shell; r=sfink
--HG--
extra : rebase_source : d320816b8eb06ccf1baa93ec24c08539710dac8a
2015-11-19 13:54:29 -08:00