Commit Graph

42825 Commits

Author SHA1 Message Date
Hannes Verschore
02162532b8 Bug 1226445: SharedStubs - Keep track of the pushed frames correctly in GetPropCallNative, r=jandem 2015-11-24 08:02:03 +01:00
Hannes Verschore
026b639ce5 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
067204b48e Bug 1226119 - Clear pending exception from script cache writing failure. r=bholley 2015-11-24 11:29:14 +09:00
Jakob Olesen
04852dd654 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
ca93710124 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
58af8b67c7 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
a6b1e06ca2 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
57a4d24b34 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
a1bbbf28d7 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
f669093811 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
f61bf360d4 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
6e00468ee7 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
a971a298d8 Bug 1210554 - Fix unified build breakage. r=sfink 2015-11-23 15:28:46 -08:00
Sean Stangl
f3cee861e8 Bug 1219050 - Update VIXL helper code to v1.10. r=jolesen 2015-10-16 13:49:19 -07:00
Terrence Cole
42f828e354 Bug 1225631 - Handle options relating to task spawning in spawn_task; r=sfink 2015-11-23 09:52:28 -08:00
Steve Fink
01d1378964 Bug 1225594 - Make jit-test's --show-cmd work again; r=terrence 2015-10-20 13:26:49 -07:00
Jan de Mooij
b8a44f9b9f Bug 1132183 followup - Bump inlineMaxCalleeInlinedBytecodeLength to 3350. r=h4writer on IRC 2015-11-23 16:21:47 +01:00
Jon Coppeard
1135ea12ce Bug 1221747 - Fix OOM handling in IonScriptCounts r=nbp 2015-11-06 13:09:01 +00:00
Jon Coppeard
f69e05bf55 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
c93fc0d3df Bug 1225605: Simplify SimdTypeDescr::size()/alignment() and remove a macro; r=jolesen 2015-11-20 10:56:19 +01:00
Benjamin Bouvier
8f68786b67 Bug 1225605: Store SIMD type descriptors on the global SIMD object rather than on the global; r=jolesen 2015-11-20 10:52:33 +01:00
Benjamin Bouvier
b65770b216 Bug 1225605: Describe the SIMD type descriptors in terms of a concept; r=jolesen 2015-11-19 17:25:36 +01:00
Jan de Mooij
c860507298 Bug 1132183 followup - Bump smallFunctionMaxBytecodeLength to 120. r=h4writer 2015-11-23 12:49:50 +01:00
Jon Coppeard
358659a561 Bug 1224710 - Fix OOM handling bugs revealed by new testcase r=bbouvier 2015-11-23 10:53:33 +00:00
Jon Coppeard
1b8fac9d27 Bug 1224710 - Add test for fuzz bug fixed by bug 1223355 r=bbouvier 2015-11-18 16:07:18 +00:00
Jon Coppeard
d3a5fb91d6 Bug 1218968 - Reduce running time of oomInArrayProtoTest.js r=lth 2015-11-23 10:52:17 +00:00
Jon Coppeard
54479a5b35 Bug 1207571 r=jandem a=abillings 2015-11-23 10:48:21 +00:00
Jan de Mooij
81ff38d00e Bug 1205707 part 2 - Add test. r=Waldo 2015-11-21 20:53:28 +01:00
Jan de Mooij
64ac445aa8 Bug 1222917 - Fix register allocation in GenerateCallSetter. r=bhackett 2015-11-21 20:52:08 +01:00
Jan de Mooij
4cb0a468c3 Bug 1132183 - Make |this| a real binding, remove lazy this computation. r=efaust,shu 2015-11-21 14:33:13 +01:00
Heiher
58344aee95 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
771638fafe 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
232006ddf1 Bug 1226687 - Part 2: Use stable hashing and builtin sweep for JSObject2JSObjectMap; r=mccr8 2015-11-20 13:54:35 -08:00
Terrence Cole
edf1d8c169 Bug 1226687 - Part 1: Export a GCPolicy usable by JS::Heap; r=fitzgen 2015-11-20 13:53:19 -08:00
Boris Zbarsky
939138a7a4 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
30909c0d26 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
4655df0f38 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 2015-11-19 14:30:37 -08:00
Nick Fitzgerald
4d5f410954 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
0816294a9f 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.
2015-11-10 18:18:25 +01:00
Jonathan Kew
d22165734a 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
958463ed24 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
7e3a78d6b4 Bug 1225605: Make the dependency between SimdTypeDescr::Type and the SimdTypes/SimdLanes arrays clearer; r=jolesen 2015-11-17 21:40:02 +01:00
Benjamin Bouvier
eb0ccde844 Bug 1225605: Remove non standard SIMD.Int{32x4,16x8,8x16}.bool; r=jolesen 2015-11-17 21:09:21 +01:00
Benjamin Bouvier
018f1bd631 Bug 1225605: Rename SIMD descriptors toType -> Cast, setReturn -> ToValue, and remove one-argument toType; r=jolesen 2015-11-17 20:51:23 +01:00
Lars T Hansen
bac426bd63 Bug 1226277 - fix MSVC warning with a cast. r=bbouvier 2015-11-20 06:20:29 +01:00
Wei Wu
4ace63cc9a Bug 1224810 - "TraceLogger: Add the script information for the event created by BytecodeCompiler". r=hv1989 2015-11-14 03:43:00 +01:00
Wei Wu
83e943f4e8 Bug 1224809 - "TraceLogger: Document what are enabled in 'TLLOG=Default' and 'TLLOG=IonCompiler'". r=hv1989 2015-11-18 22:17:00 +01:00
Phil Ringnalda
3d1087acb2 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
c584bb0749 No Bug - Remove two unused, orphan variables; r=sfink 2015-11-19 13:55:16 -08:00
Terrence Cole
2a0435a8df No Bug - Fix accumulated unified build bustage in the JS shell; r=sfink 2015-11-19 13:54:29 -08:00