Commit Graph

52501 Commits

Author SHA1 Message Date
Jon Coppeard
82b5f8d44d Bug 1233109 - Check for duplicate exported names using the data in the ModuleBuilder and remove ModuleBox::exportNames r=shu 2016-01-05 15:07:58 +00:00
Jon Coppeard
fc10a4b5bf Bug 1233109 - Call into the ModuleBuilder as we parse rather than traversing the AST again afterwards r=shu 2016-01-05 15:07:58 +00:00
Jon Coppeard
7fa52a1973 Bug 1233109 - Refactor module parsing to instantiate ModuleBuilder earlier r=shu 2016-01-05 15:07:58 +00:00
Jon Coppeard
ba32e6eac5 Bug 1236564 - Fix various minor issues with getting/setting GC parameters r=terrence 2016-01-05 15:07:58 +00:00
Benjamin Bouvier
d9a9a55a72 Bug 1234280: Handle oom in CodeGeneratorShared::allocateData; r=jandem
--HG--
extra : commitid : Drbq42mi2jg
extra : rebase_source : 14a7d646151b9983ede0060cb8573b0edec6586c
2015-12-24 09:51:30 +01:00
Carsten "Tomcat" Book
ae7a25d2a4 Merge mozilla-central to mozilla-inbound 2016-01-05 12:01:44 +01:00
Carsten "Tomcat" Book
2262c1271c merge mozilla-inbound to mozilla-central a=merge 2016-01-05 11:58:56 +01:00
Benjamin Bouvier
caee5ab97b Bug 1221361: Mark SetARMHwCapFlags as unsafe for fuzzing; r=jolesen
--HG--
extra : rebase_source : 31d5492d1262019f39c5b295feed2ad02b09c2cb
2015-12-24 09:08:31 +01:00
Bogdan Postelnicu
4486adb46d Bug 1235041 - Cast value to uint64_t in order to prevent int overflow when value is greater than 2^12. r=jonco
--HG--
extra : rebase_source : df473012e5b66abc80513cbd2e83e7fe7129a853
2015-12-24 02:57:00 -05:00
Tom Tromey
e385bd20d9 Bug 1235636 - rewrite PCToLineNumber; r=fitzgen 2016-01-04 09:18:56 -07:00
Nicholas Nethercote
6d93e1b2e4 Bug 1232224 - Streamline setting of compile warnings in configure.in. r=glandium,cpeterson.
The main changes are to the warnings, which are as follows.

- Kept -Wall.

- Part of -Wall or on by default; remove all mentions:
  * -Waddress
  * -Wchar-subscripts
  * -Wcomment
  * -Wconversion-null
  * -Wendif-labels
  * -Wenum-compare
  * -Wimplicit-function-declaration
  * -Wint-to-pointer-cast
  * -Wmissing-braces
  * -Wmultichar
  * -Wnonnull
  * -Wparentheses
  * -Wpointer-sign
  * -Wpointer-to-int-cast (C only)
  * -Wreorder
  * -Wreturn-type
  * -Wsequence-point
  * -Wsign-compare (C++ only)
  * -Wswitch
  * -Wtrigraphs
  * -Wuninitialized
  * -Wunknown-pragmas
  * -Wunused-label
  * -Wunused-value
  * -Wwrite-strings (C++ only)

- Part of -Wextra; kept where present, added where missing:
  * -Wempty-body
  * -Wignored-qualifiers (not added for C++ code; many fixes needed to enable)
  * -Wtype-limits

- Part of -pedantic; kept where present, added where missing:
  * -pointer-arith

- C++ only, kept:
  * -Wno-invalid-offsetof
  * -Woverloaded-virtual

- Clang-only, kept:
  * -Wnon-literal-null-conversion (affected by a clang bug; see the big comment
    in the code)
  * -Wrange-loop-analysis (C++ only)
  * -Wno-unused-local-typedef

- This no longer exists?  I kept it to be safe:
  * -Winline-new-delete

A consequence of this is that, when --enable-warnings-as-errors is on, in
directories which have ALLOW_COMPILER_WARNINGS specified we no longer have any
fatal warnings. (We previously did have all the explicitly-mentioned
-Werror=foo ones.) This is a sensible change; if we are going to allow warnings
in a directory we should allow all of them, not just some of them.

Other changes:

- Some C warnings incorrectly used the CXX macros. Fixes that.

- Moves comments about warnings closer to the lines where they are defined, to
  make it easier to keep the comments consistent with the code.

- Reorders things a little, e.g. so that all enabled warnings are before all
  disabled warnings.

The C and C++ warnings are now very similar, in both configure.in and
js/src/configure.in.

--HG--
extra : rebase_source : 6f8db0fecda1315504a29fbcafb6fdee3053d8a5
2015-12-16 18:39:50 -08:00
Tooru Fujisawa
6eb62d6549 Bug 1235656 - Part 2: Remove alias to selfhosted builtin from Utilities.js. r=till 2016-01-04 06:59:55 +09:00
Tooru Fujisawa
2ede3916c0 Bug 1235656 - Part 1: Set canonical name in self-hosted builtins. r=till 2016-01-04 06:59:52 +09:00
Hannes Verschore
4370e997ad Bug 1233343: SharedStubs: Count frames pushed correctly on ARM when entering an ion stub frame, r=jandem 2016-01-04 22:27:12 -05:00
Nicholas Nethercote
a9f31c44eb Bug 1232219 (part 4) - Enable -Wunused for C code, except where it's too annoying. r=glandium.
--HG--
extra : rebase_source : febc9aac7ec5e3699742e728065c370dcee4f0f3
2015-12-16 22:59:42 -08:00
Chris Peterson
c9b006d167 Bug 1235717 - Enable clang's -Wunreachable-code warnings. r=glandium 2015-12-28 00:17:02 -07:00
Tooru Fujisawa
687256f38d Bug 1236638 - Add JSFunction::setAtom and use it in _SetCanonicalName intrinsic to fire the pre-barrier. r=terrence 2016-01-05 07:24:45 +09:00
Tooru Fujisawa
afeff41c94 Bug 1234025 - Part 3: Remove unused constant from Statistics.cpp 2016-01-05 04:33:35 +09:00
Tooru Fujisawa
bc25c6f0df Bug 1234025 - Part 2: Remove unused functions from ScriptedDirectProxyHandler.cpp. 2016-01-05 04:33:34 +09:00
Tooru Fujisawa
c89eedaf00 Bug 1234025 - Part 1: Move ObjectBox::isModuleBox definition to ParseNode.cpp. 2016-01-05 04:33:34 +09:00
Victor Carlquist
a871c36dc4 Bug 1235403 - Adding flat replacement bit on StringReplace to the recover instruction. r=nbp 2015-12-29 11:02:08 -02:00
Zibi Braniecki
5c9465b248 Bug 1216150 - Implement ECMA 402 DateTimeFormat formatToParts 2015-12-31 19:07:45 -08:00
Wes Kocher
a69ea37914 Backed out 2 changesets (bug 1235598) for linux reftest bustage
Backed out changeset 3bcd3c276785 (bug 1235598)
Backed out changeset 80cd10a8b3d7 (bug 1235598)

--HG--
extra : commitid : DZRlFy6bH2m
extra : rebase_source : 3479cd1146e58115883f2329861647a962d162cc
2015-12-31 15:51:13 -08:00
Zibi Braniecki
03d82c7240 Back out bug 1216150 for Linux x64 opt bustage 2015-12-31 15:32:20 -08:00
Zibi Braniecki
22e38242da Bug 1216150 - Implement ECMA 402 DateTimeFormat formatToParts. r=waldo 2015-12-31 14:45:52 -08:00
Benjamin Bouvier
803af84dc5 Bug 1235989 - Add a null check for filename in ModuleValidator::finish. r=luke 2015-12-31 12:17:03 +01:00
Terrence Cole
c8e1859f04 Bug 489636 - Add a GC u-bench test for property tree splitting via deletion; r=sfink
--HG--
extra : rebase_source : 2e7e21e4a634e348fa584fb1f2514ddffb069a19
2015-12-31 11:32:27 -08:00
Terrence Cole
9d97726f6c Bug 1235598 - Part 2: Use TraceEdge exclusively in Gecko; r=smaug
--HG--
extra : rebase_source : c18f7e97d09f0cd91d0d837d2cdc65926cd3de64
2015-12-30 08:52:14 -08:00
Terrence Cole
dbe067989c Bug 1235598 - Part 1: Add better SpiderMonkey API support for tracing in C++; r=sfink
--HG--
extra : rebase_source : 8e2a38d3eedc0bc795be696ca36759c153e3b34e
2015-12-30 08:52:12 -08:00
Olli Pettay
5ca565690e Bug 1120016 - Allocate short lived JS wrappers in the Nursery, r=mccr8,terrence 2015-12-31 15:21:49 +02:00
Wes Kocher
792ca14825 Backed out changeset 0d55a6e4e98e (bug 1120016) for 980 b2g hazards
--HG--
extra : commitid : 27OIHVsa17S
2015-12-30 16:34:18 -08:00
Sean Stangl
f69acc592f Bug 470143 - Part 2/2 - TrackedOptimization changes for TypeOfNoSuchVar. r=shu 2015-12-15 13:42:56 -08:00
Sean Stangl
8e11be5623 Bug 470143 - Part 1/2 - Implement an IM IC for typeof nosuchvar. r=jandem 2015-12-11 11:27:55 -05:00
Wes Kocher
a865324b23 Backed out 3 changesets (bug 1235598) for build bustage CLOSED TREE
Backed out changeset 7da07459ce20 (bug 1235598)
Backed out changeset cf35918cb3ba (bug 1235598)
Backed out changeset 55db488f9dfd (bug 1235598)

--HG--
extra : commitid : 2Q694NrtoN0
2015-12-30 15:17:44 -08:00
Mike Hommey
d5c0c5233a Bug 1235733 - Use absolute paths for include paths. r=gps
Limit ourselves to include paths for now, because there are tricky things
involved in making this globally.

While here, use shell_quote instead of manual quoting for those paths.
2015-12-31 08:10:02 +09:00
Terrence Cole
2d98949f4f Backout Bug 1235598 Part 2 because of merge bustage on a CLOSED TREE 2015-12-30 15:05:24 -08:00
Terrence Cole
4710ce6d97 Bug 1235598 - Part 2: Use TraceEdge exclusively in Gecko; r=smaug
--HG--
extra : rebase_source : fba9dbd3f6bc7b36074f58d11c411deb84c1ff1e
2015-12-30 08:52:14 -08:00
Terrence Cole
4cc6b37c96 Bug 1235598 - Part 1: Add better SpiderMonkey API support for tracing in C++; r=sfink
--HG--
extra : rebase_source : 66daf07ec194720d31b058ef7288ef1ee2fcf6ca
2015-12-30 08:52:12 -08:00
Mike Hommey
969f681cbc Bug 1235743 - Move compiler flags used for dependency generation to a separate variable. r=gps
This might seem like going in the opposite direction of what we tend to do
to move to moz.build land, but those flags are irrelevant in many situations
and are better separated out.
2015-12-31 07:35:04 +09:00
Mike Hommey
8143237ec5 Bug 1235738 - Simplify MOZ_DEBUG_DEFINES. r=gps
Now that it's not directly used in command lines, it can just become a list
of symbols that ought to be defined. This simplifies all the uses of it.
2015-12-31 07:28:05 +09:00
Jeff Walden
5be7be38a1 Bug 1235615 - Split JS::CompartmentOptions into JS::CompartmentCreationOptions that are immutable characteristics of a compartment, and JS::CompartmentBehaviors that may be changed after the compartment's been created. r=terrence
--HG--
extra : rebase_source : f08c380ae247d3308d4c36788ac765de1b75af50
2015-12-28 16:15:52 -06:00
Jeff Walden
f0ea1c2a47 Add a semicolon to avoid relying on ASI in one place in String.js. No bug, r=trivial
--HG--
extra : rebase_source : 71c6b8d85f35953db9eb5efb9cb9f874e99df2b4
2015-12-23 21:51:43 -06:00
Tom Schuster
04de56a8e6 Bug 1235868 - Change nonWritableJITCode to ifdefs. r=jandem 2015-12-30 22:15:03 +01:00
Olli Pettay
2066f6d7b3 Bug 1120016 - Allocate short lived JS wrappers in the Nursery, r=mccr8,terrence
--HG--
extra : rebase_source : 3d51b7fc9962a93eb6071328db84b5b327225246
2015-12-30 19:16:13 +02:00
Luke Wagner
d8552b2680 Bug 1235874 - handle null filename in DescribeScriptedCaller (r=sunfish)
--HG--
extra : commitid : 7o7x0q1IYrb
2015-12-30 13:50:56 -06:00
Luke Wagner
67ecabbdda Bug 1235631 - Odin: remove change-heap support (r=bbouvier)
--HG--
extra : commitid : 4s3rKVYz3Wr
extra : rebase_source : fb76a99fa15b5814b024926ccffc80bb0777ecba
2015-12-30 12:32:47 -06:00
Terrence Cole
add7a54a34 Bug 1225650 - Use stable hashing for JSObject2WrappedJSMap; r=jonco 2015-11-17 13:40:55 -08:00
Jan de Mooij
aa7429333c Bug 1233152 - Use PersistentRooted for ParseTask script and sourceObject. r=terrence 2015-12-30 13:28:13 +01:00
Jan de Mooij
c31028f3b1 Bug 1221385 - Handle OOM during JitRuntime initialization a bit better. r=bhackett 2015-12-30 13:27:09 +01:00
Arthur Edelstein
3345f3b6d9 Bug 867501 - Pref allows JS locale to be set to US English/C. r=khuey 2015-12-29 13:56:00 +01:00
Benjamin Bouvier
96dd413273 Bug 1230005: Delay buffer flushing in asm.js until the last minute; r=luke
--HG--
extra : commitid : 6ar03ADOWzM
extra : rebase_source : 5e1b25850ca8390d54b545314e543ad2d14f781a
extra : amend_source : 097590cf5a6f98cb74b0af0e9c811c84c932ed53
2015-12-29 10:55:38 +01:00
Nigel Babu
d7f551baae Backed out changeset b45ee8d3233f (bug 867501) for build bustage
--HG--
extra : commitid : Lek3ilQVsmK
2015-12-29 15:28:48 +05:30
Bogdan Postelnicu
770ebf3015 Bug 1235032 - check value of obj, remake while () {} to do { } while(). r=jorendorff 2015-12-28 05:35:00 +01:00
Victor Carlquist
cda9d2e5e1 Bug 1112537 - Optimize String#split('foo').join('bar') pattern. r=nbp
--HG--
extra : rebase_source : 95e4608ec5cb2465e3aa1b0008c1fa5b2edd46ad
2014-12-20 13:33:02 -02:00
Arthur Edelstein
ae80b093a6 Bug 867501 - Pref allows JS locale to be set to US English/C. r=khuey
--HG--
extra : rebase_source : 66cefc1fb5bc407280e3707de1fc8387965d20bf
2015-12-17 16:15:00 +01:00
Birunthan Mohanathas
658dd7bd4b Bug 1204752 - Disable thread-safe statics on VS2015 to fix WinXP startup crash. r=glandium
VS2015 added thread-safe statics, but it causes a startup crash on XP. The
suggested workaround provided by Microsoft is to disable the feature enitrely:
https://connect.microsoft.com/VisualStudio/feedback/details/1789709/visual-c-2015-runtime-broken-on-windows-server-2003-c-11-magic-statics

Note that thread-safe statics were not available in VS2013 so disabling them
should not be considered a regression.

With this patch, Firefox runs fine in XP SP2 and XP SP3.

DONTBUILD because VS2015-only change.
2015-12-29 10:21:07 +02:00
Shu-yu Guo
3d619450c0 Bug 1234164 - Fix Ion GETNAME stubs to check for uninitialized lexicals. (r=efaust) 2015-12-28 18:53:00 -08:00
Shu-yu Guo
c5555284a5 Bug 1071646 - Forgot to commit tests on backout and relanding cycle. (r=me) 2015-12-28 18:52:59 -08:00
Luke Wagner
93a7f2ba2b Bug 1229642 - Factor AsmJSLink.cpp into wasm/asm.js and consolidate AsmJS* into AsmJS.cpp (r=bbouvier)
--HG--
rename : js/src/asmjs/AsmJSValidate.cpp => js/src/asmjs/AsmJS.cpp
rename : js/src/asmjs/AsmJSValidate.h => js/src/asmjs/AsmJS.h
extra : commitid : BUY1jKrhK4t
extra : rebase_source : 011832b3f0339b0a5fe9fd8c40e3eae19400a3db
2015-12-28 17:39:55 -06:00
Luke Wagner
941676a0b5 Bug 1229642 - change to AsmJSActivation to WasmActivation (r=bbouvier)
--HG--
extra : commitid : 9UctFLD6dSG
extra : rebase_source : 1f0c40b6d9c881a1650f8aae3a1387d876ed6a98
2015-12-28 17:39:37 -06:00
Luke Wagner
3c88b36742 Bug 1229642 - Split wasm::Module out of AsmJSModule (r=bbouvier)
--HG--
rename : js/src/asmjs/AsmJSFrameIterator.cpp => js/src/asmjs/WasmFrameIterator.cpp
rename : js/src/asmjs/AsmJSFrameIterator.h => js/src/asmjs/WasmFrameIterator.h
rename : js/src/asmjs/AsmJSSignalHandlers.cpp => js/src/asmjs/WasmSignalHandlers.cpp
rename : js/src/asmjs/AsmJSSignalHandlers.h => js/src/asmjs/WasmSignalHandlers.h
rename : js/src/asmjs/Wasm.h => js/src/asmjs/WasmTypes.h
extra : commitid : 4LBqZ9p8yXp
extra : rebase_source : b0b165b4be2a5ac4bca20d75d9561005e8f57020
2015-12-28 17:39:21 -06:00
Luke Wagner
2cb8f6f717 Bug 1229642 - Fix unified build duplicate static name error (rs=jandem)
--HG--
extra : commitid : 7WiMCsPvY0V
extra : rebase_source : 1f0f7ca8ec717b5cbfc1bd6389e04de6e27d168e
2015-12-28 12:25:26 -06:00
Heiher
873a037ea4 Bug 1235367 - IonMonkey: MIPS64: Use 4-instruction to load 48-bit immedate. r=arai
---
 js/src/jit/mips64/MacroAssembler-mips64.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
2015-12-29 08:38:47 +08:00
Jeff Walden
7f55eab5f9 Bug 1235410 - Centralize StmtType enumeration in a higher-order macro, so as not to have types and string descriptions of them go out of sync. As they happen to be now. ಠ_ಠ r=arai 2015-12-23 21:50:32 -06:00
Jeff Walden
b129cfd983 Bug 1233249 - Refactor for-loop head parsing so that declaration-parsing code is responsible for detecting for-in/of behavior when a loop declaration is used. This makes declaration parsing slightly fuglier, but it simplifies for-loop parsing, makes it more amenable to future changes, and fixes a few bugs that were otherwise pretty hard to fix. r=shu
--HG--
extra : rebase_source : c1b731ab34c9bef2781bbf60e9448dc71af60df4
2015-12-18 02:24:46 -05:00
Jan de Mooij
0db5d8b5eb Bug 1215479 - Turn on W^X JIT code by default. r=luke 2015-12-28 21:05:50 +01:00
Jan de Mooij
1809bef584 Bug 1235338 - Make W^X work on arm64. r=luke 2015-12-28 20:52:19 +01:00
Jan de Mooij
d0979f07b0 Bug 1235201 - Make W^X work in Win64 browser builds. r=luke 2015-12-28 20:48:21 +01:00
Jan de Mooij
0fbad405e3 Bug 1233818 part 8 - Don't patch loop backedges if it's not necessary. r=luke 2015-12-28 16:13:25 +01:00
Lars T Hansen
6428bbee66 Bug 1231338 - SAB gating test cases. r=luke
--HG--
extra : rebase_source : 5948da017a822fff46caa9fd3bb739349a037444
2015-12-15 15:40:59 +01:00
Chris Peterson
4f6bd2b0d7 Bug 1235185 - Fix clang -Wclass-varargs warnings in js/. r=bhackett
js/src/jit/BacktrackingAllocator.cpp:1039:13 [-Wclass-varargs] passing object of class type 'js::jit::CodePosition' through variadic function
js/src/jit/Safepoints.cpp:168:56 [-Wclass-varargs] passing object of class type 'js::jit::SafepointSlotEntry' through variadic function
js/src/jit/Safepoints.cpp:198:57 [-Wclass-varargs] passing object of class type 'js::jit::SafepointSlotEntry' through variadic function
2015-12-23 23:23:34 -07:00
Tooru Fujisawa
ea91538804 Bug 1234402 - Crash on OOM in AlternativeGenerationList constructor. r=bbouvier 2015-12-25 04:36:52 +09:00
Bogdan Postelnicu
51402b39bd Bug 1234177 - check to see if mFunctions.append returned error. r=bholley
DONTBUILD because this is a backout/reland to fix author info.

--HG--
extra : commitid : 44X9bWULWTE
2015-12-24 14:14:43 -05:00
Kartikaya Gupta
0f22bb9cfc Back out cset 1f862b370ab3 (bug 1234177) for landing with wrong author.
--HG--
extra : commitid : 2ThdQ6HBscM
2015-12-24 14:16:55 -05:00
Kartikaya Gupta
dd31769177 Bug 1234177 - check to see if mFunctions.append returned error. r=bholley
--HG--
extra : commitid : BpAqgipPvYN
2015-12-24 14:14:43 -05:00
Jan de Mooij
1da5f0ecd4 Bug 1235046 - Optimize JIT-code poisoning to be fast with W^X. r=bhackett 2015-12-24 17:43:09 +01:00
Benjamin Bouvier
9274ecafd2 Bug 1230005: Flush the assembler buffer at the end of asm.js compilation; r=luke
--HG--
extra : commitid : 11RWmDXAcRf
extra : rebase_source : c69436119acda28c8f44dd6d40b4a632cf04fbb8
extra : amend_source : 5f85a5536820d80704a6d0dfc34e3fc79ac3b18c
extra : histedit_source : 19de23c1518e15a3b5636918e267bbed744a6c9c
2015-12-23 23:06:48 +01:00
Benjamin Bouvier
c15a416116 Bug 1230005: Hide specifics of the LDR instruction; r=jolesen
--HG--
extra : commitid : 9ZRpi8bN8fE
extra : rebase_source : 0c3fa8f441a3857714ea005504ebba0928fbbb50
extra : histedit_source : b3ede24e43775e2416c1bb5d4f4cfd17b79cb2f1%2C2a24f2b472d879c2724f1889f0650022780fc28d
2015-12-24 11:28:16 +01:00
Benjamin Bouvier
bcfe875382 Bug 1230005: Factor out relocation style decision; r=jolesen
--HG--
extra : commitid : LVKXXdtWh52
extra : rebase_source : 03db54ccb02c5977ad31e50bfc58728c1e026b72
extra : histedit_source : 51187d41a6ff7db9b410ed506fa16d795da3a9ea
2015-12-23 23:06:15 +01:00
Chris Peterson
3b820ef6d3 Bug 1167248 - Call RtlGenRandom() instead of rand_s() to workaround crashes from injected third-party hooks. r=jandem 2015-12-20 21:14:44 -08:00
Phil Ringnalda
ec5f249440 Bug 1232159 followup, test for the existence of TypedObject so the test doesn't fail when it hits mozilla-aurora, r=efaust
--HG--
extra : rebase_source : 627904a45db6a932fa29a0547d1dd3d3bc3953fd
2015-12-23 19:34:15 -08:00
Jakob Stoklund Olesen
ab68a2ae94 Bug 1233111 - Implement saturating arithmetic for SIMD. r=bbouvier
The functions addSaturate() and subSaturate() are defined on the 8x16 and 16x8
integer SIMD types only.

Theee are no 32x4 variants defined in SIMD.js because current hardware doesn't
support it directly.

--HG--
extra : rebase_source : 876bd6ab47ccd007dd15d5b34948ebf33aca4f16
2015-12-23 09:52:39 -08:00
Jakob Stoklund Olesen
4ac36bc255 Bug 1233111 - Implement SIMD shiftRightByScalar(). r=bbouvier
This is the right shift function that the SIMD.js spec requires. The old
shiftRightArithmeticByScalar() and shiftRightLogicalByScalar() functions will go
away.

These functions perform an arithmetic shift for signed types and a logical
shift for unsigned types.

Add support to Odin and Ion too, at least for the Int32x4 variant.

--HG--
extra : rebase_source : 7852f266a1ad505436c4c1607c17d542d81b2673
2015-12-23 09:52:39 -08:00
Jakob Stoklund Olesen
c265e4ff17 Bug 1233111 - Add ecma_7 shift tests. r=bbouvier
Fix a bug in ShiftRightArithmetic when the underlying Elem type is unsigned.
Need to cast to a signed type to so it sign-extends to int when shifting.

Implement both logical and arithmetic right shift implementations for both
signed and unsigned integers. This is needed to test our current implementation
where both signed and unsigned SIMD types have the two
shiftRightArithmeticByScalar() and shiftRightLogicalByScalar() functions.

Soon, shiftRightArithmeticByScalar() and shiftRightLogicalByScalar() will be
replaced by a single shiftRightByScalar() function whose behavior is dependent
on the signedness of the underlying type.

--HG--
extra : rebase_source : 00fa414d32592d8d923d2413a9d0f2082fb899d0
2015-12-23 09:52:39 -08:00
Jakob Stoklund Olesen
314da1b881 Bug 1233111 - Add unsigned SIMD types to interpreter. r=bbouvier
- Add new types UInt8x16, UInt16x8, UInt32x4 with all the boilerplate.
- Add corresponding conversion and bitcast functions to existing types.
- Add tests/ecma_7/SIMD tests for all new functions. Mostly boilerplate.
- Add full type coverage in ToSource.js. Fix existing SIMD types that were
  broken.
- Use shared test vectors for all the 32x4 integer binary-op test cases.
- Fix a bug in the 32-bit multiplication reference implementation for Int32x4
  and Uint32x4. A simple 'a*b' double multiplication loses precision to rounding
  for some inputs.

--HG--
extra : rebase_source : 7268170538aae82766d661f3936657f368c6363f
2015-12-23 09:52:39 -08:00
Jakob Stoklund Olesen
02e0bb6c58 Bug 1233111 - Share method lists for SIMD types. r=bbouvier
The lists TypeDescriptorMethods and TypedObjectMethods are identical for all
SIMD types, so save a bit of memory and source code by sharing a single list.

--HG--
extra : rebase_source : 01f65e7eac8c8c99fb6c869206d75d2e5875002b
2015-12-23 09:52:39 -08:00
Jakob Stoklund Olesen
8d6b23cb6b Bug 1233111 - Remove geometry altering SIMD conversions. r=bbouvier
In the current SIMD.js spec, value conversions are only defined between types
with the same number of lanes:

  Float32x4.fromInt32x4()
  Float32x4.fromUInt32x4()
  Int32x4.fromFloat32x4()
  UInt32x4.fromFloat32x4()

Remove existing conversion operators between vectors with different numbers of
lanes:

  Int32x4.fromFloat64x2()
  Float32x4.fromFloat64x2()
  Float64x2.fromInt32x4()
  Float64x2.fromFloat32x4()

Add a static assertion to FuncConvert.

--HG--
extra : rebase_source : c7be47268c913134aa9b718000080e1d54a79f9f
2015-12-23 09:52:39 -08:00
Jakob Stoklund Olesen
2d7330a315 Bug 1233111 - Add a new ToUint8() function. r=efaust
This is needed for casting values into a SIMD.Uint8x16 lane.

--HG--
extra : rebase_source : 361feb40a7216cacf9e39c4e264b925cb06da540
2015-12-23 09:52:39 -08:00
Luke Wagner
dbe15a0d32 Bug 1229642 - Factor out StringToNewUTF8CharsZ (r=jandem)
--HG--
extra : commitid : 9zuXCAfX7dV
extra : rebase_source : 9d0a3157a8dfefc8c52215a00681df232be4ddb7
2015-12-23 14:02:48 -06:00
Nicolas B. Pierron
12b752a241 Backed out changeset 14ea3c6f98bb (Bug 1229813) for performance issues on arewefastyet.
CLOSED TREE
2015-12-23 17:39:04 +00:00
Jan de Mooij
d91e436fb6 Bug 1232676 - Use AutoEnterOOMUnsafeRegion instead of MOZ_CRASH in addPendingCompileError. r=jonco 2015-12-23 17:22:16 +01:00
Jan de Mooij
2978531a4a Bug 1232655 - Fix DebugScopeProxy::has to not lookup .this on non-function scopes. r=shu 2015-12-23 17:22:13 +01:00
Jan de Mooij
907b2b7cb3 Bug 1233115 - Add missing OOM check after handler.newClassMethodList call. r=efaust 2015-12-23 17:05:29 +01:00
Jan de Mooij
aaa795bcb3 Bug 1232386 - Fix NativeObject::growSlotsStatic to recover from OOM. r=terrence 2015-12-23 17:05:27 +01:00
Nathan Froyd
caaca24b03 Bug 1233732 - disable MacroAssembler.h macro magic for clang-cl; r=nbp
clang-cl attempts to emulate MSVC's handling of __VA_ARGS__, but doesn't
quite get it right:

https://llvm.org/bugs/show_bug.cgi?id=25875

As a result of this, compiling files that #include MacroAssembler.h with
clang-cl result in fallbacks to MSVC.  Since falling back to MSVC is
non-ideal (and also causes problems around things like linking function
template instantiations), let's disable MacroAssembler.h's macro magic
for the time being.  Ideally, the problem will get fixed upstream
soon (even though it looks somewhat complicated); in the meantime,
fixing this issue lets forward progress be made when compiling Gecko
with clang-cl.
2015-12-18 11:11:09 -05:00
Nicolas B. Pierron
2cbbdfcf66 Bug 1234193 - IsRelazifiableFunction: Return false when we report an error. r=jandem 2015-12-23 15:01:47 +00:00
Nathan Froyd
7526b032e1 Bug 1232772 - suppress numerous clang-style warnings when using clang-cl; r=glandium
Suppressing these warnings significantly cuts down the warning spam on
clang-cl builds.
2015-12-15 15:35:27 -05:00
Nicolas B. Pierron
1827265936 Bug 1137624 - Remove ArrayJoin code duplication, and use a correct alias set. r=jandem 2015-12-23 14:49:48 +00:00
Nicolas B. Pierron
ccf5e822b4 Bug 1229813 - Enable branch pruning. r=jandem 2015-12-23 14:19:39 +00:00
Nicolas B. Pierron
f04ed1dfd7 Bug 1234387 - DumpBacktrace: Check the result of Sprinter::init function. r=bbouvier 2015-12-23 14:10:26 +00:00