searching for reviewer(lth)
823913dd3fc8ad0d65b46ae91203dfef77044877: Bug 1495609 - Baldr: let non-trapping float-to-int conversions ride the trains (r=sunfish,lth)
Luke Wagner <luke@mozilla.com> - Sat, 13 Oct 2018 13:18:12 -0500 - rev 489449
Push 247 by fmarier@mozilla.com at Sat, 27 Oct 2018 01:06:44 +0000
Bug 1495609 - Baldr: let non-trapping float-to-int conversions ride the trains (r=sunfish,lth)
43a51bc9a77dc2f59196a644798c1911a18615a3: Bug 1497612 - Baldr: add missing oom check for GetOptimizedBuildId (r=lth)
Luke Wagner <luke@mozilla.com> - Wed, 10 Oct 2018 14:56:44 -0500 - rev 488876
Push 246 by fmarier@mozilla.com at Sat, 13 Oct 2018 00:15:40 +0000
Bug 1497612 - Baldr: add missing oom check for GetOptimizedBuildId (r=lth)
8b6344a8c25c48a2180b6a5ba7050e2773f22f89: Bug 1495149 - Baldr: factor out trap-handling code from simulators (r=lth,bbouvier)
Luke Wagner <luke@mozilla.com> - Wed, 03 Oct 2018 15:44:05 -0500 - rev 487753
Push 246 by fmarier@mozilla.com at Sat, 13 Oct 2018 00:15:40 +0000
Bug 1495149 - Baldr: factor out trap-handling code from simulators (r=lth,bbouvier)
d1094983384c30f5aa7860e7d5ff49be625fb47a: Bug 1495149 - Baldr: don't use signal handlers for asm.js bounds checks (r=lth,bbouvier)
Luke Wagner <luke@mozilla.com> - Wed, 03 Oct 2018 15:43:14 -0500 - rev 487752
Push 246 by fmarier@mozilla.com at Sat, 13 Oct 2018 00:15:40 +0000
Bug 1495149 - Baldr: don't use signal handlers for asm.js bounds checks (r=lth,bbouvier)
6b0cb8668a09c92410b1674ca7c91984ea98ed06: Bug 1492916 - [MIPS] Cleanup FIXMEs from Bug 1481171 ; r=lth
Dragan Mladjenovic <dragan.mladjenovic@rt-rk.com> - Thu, 20 Sep 2018 10:43:00 +0300 - rev 487268
Push 246 by fmarier@mozilla.com at Sat, 13 Oct 2018 00:15:40 +0000
Bug 1492916 - [MIPS] Cleanup FIXMEs from Bug 1481171 ; r=lth
909adfe5eaa7c22edbfd0d887349c42cd3943601: Bug 1494544 - Baldr: change order of setting tier-2 testing flag to fix testing race condition (r=lth)
Luke Wagner <luke@mozilla.com> - Fri, 28 Sep 2018 16:31:17 -0500 - rev 487125
Push 246 by fmarier@mozilla.com at Sat, 13 Oct 2018 00:15:40 +0000
Bug 1494544 - Baldr: change order of setting tier-2 testing flag to fix testing race condition (r=lth)
a1f813559240b36519fa4d0782d1d93e5bac0cd8: Bug 1493373 - Baldr: store ProcessSegmentMap in Atomic pointer to avoid shutdown race (r=lth,bbouvier)
Luke Wagner <luke@mozilla.com> - Tue, 25 Sep 2018 17:10:09 -0500 - rev 486539
Push 246 by fmarier@mozilla.com at Sat, 13 Oct 2018 00:15:40 +0000
Bug 1493373 - Baldr: store ProcessSegmentMap in Atomic pointer to avoid shutdown race (r=lth,bbouvier)
f2ecea87ed9f0b61a4b8aca468f070ede9c5619d: Bug 1492778 - Add tests for calling WebAssembly functions with too many arguments; r=lth
Ms2ger <Ms2ger@igalia.com> - Fri, 21 Sep 2018 13:45:50 +0200 - rev 485971
Push 241 by fmarier@mozilla.com at Mon, 24 Sep 2018 21:48:02 +0000
Bug 1492778 - Add tests for calling WebAssembly functions with too many arguments; r=lth
bbc165233051fb57331cf92b2c223faa333b02bf: Bug 1330661 - Baldr: add JS::OptimizedEncodingListener interface, shell implementation of it and tests (r=lth)
Luke Wagner <luke@mozilla.com> - Thu, 20 Sep 2018 14:46:04 -0500 - rev 485811
Push 241 by fmarier@mozilla.com at Mon, 24 Sep 2018 21:48:02 +0000
Bug 1330661 - Baldr: add JS::OptimizedEncodingListener interface, shell implementation of it and tests (r=lth)
ed9bb62ebea140a50e38c08e663b0550a1c3c5da: Bug 1488698 - Always use braces for if/for/while statements in js/src/wasm, part 2. r=lth
Jan de Mooij <jdemooij@mozilla.com> - Thu, 06 Sep 2018 11:23:55 +0200 - rev 484044
Push 241 by fmarier@mozilla.com at Mon, 24 Sep 2018 21:48:02 +0000
Bug 1488698 - Always use braces for if/for/while statements in js/src/wasm, part 2. r=lth
6b3a95df3c123910eeab97cb7cd7cbf0884bd413: Bug 1488698 - Always use braces for if/for/while statements in js/src/vm, part 10. r=lth
Jan de Mooij <jdemooij@mozilla.com> - Thu, 06 Sep 2018 11:18:40 +0200 - rev 484040
Push 241 by fmarier@mozilla.com at Mon, 24 Sep 2018 21:48:02 +0000
Bug 1488698 - Always use braces for if/for/while statements in js/src/vm, part 10. r=lth
6898b065caf34282abaecbac52c16f23169c8b7f: Bug 1471500 - Complete initial implementation of the bulk-memory proposal. Part 8 of 10. r=lth.
Julian Seward <jseward@acm.org> - Mon, 10 Sep 2018 15:09:33 +0200 - rev 483824
Push 241 by fmarier@mozilla.com at Mon, 24 Sep 2018 21:48:02 +0000
Bug 1471500 - Complete initial implementation of the bulk-memory proposal. Part 8 of 10. r=lth. This patch adds a general mechanism that allows the Wasm compilers and verifier to handle situations where the correctness of some constructions seen in the byte stream cannot be determined until further along in the byte stream -- in effect, forward references. It then uses this mechanism to check data segment indices that appear in the instruction section (resulting from memory.{drop,init} instructions) as the number of data sections will not be known until after the code section. * new struct DeferredValidationState, which holds whatever state is required * new type ExclusiveDeferredValidationState, needed because DeferredValidationState is shared between compilation threads and is mutable * the new DeferredValidationState lives in class ModuleGenerator, since that is really the running state for the compilation of a given module. * a reference to the DeferredValidationState is added to OpIter, so that the iterator can update the state as it visits instructions. * consequently, there is a bunch of plumbing (extra parameters) to get a reference to the DeferredValidationState to places where an OpIter has to be created. * also, CompileTask acquires a reference to the DeferredValidationState, as there is no other way to get hold of it in wasm::ExecuteCompileTaskFromHelperThread. * when iteration is finished, we call DeferredValidation::performDeferredValidation so as to perform any final checks. This takes a const ModuleEnvironment& parameter, so that it can crosscheck the deferred state against information collected in the environment. * compilation runs use the DeferredValidationState in the ModuleGenerator. But pure validation runs (wasm::Validate) have no associated ModuleGenerator. So it simply creates its own DeferredValidationState on the stack and uses that. Although at first it seems plausible to add this mutable shared state to CompileTaskState, that is not so attractive because it means * plumbing that into the core of the compilers. It contains information about task management that has nothing to do with the details of compilation. * there's no way to pull out the deferred validation state into its own type without using a different lock than for CompileTaskState. In other words, there appears to be no way to go from an ExclusiveData<CompileTaskState> to an ExclusiveData<some field of CompileTaskState>. In terms of the actual deferred checking added: * data segment indices seen in memory.{drop,init} instructions are noted in the running state. At least, the highest value is noted, along with its bytecode offset. That way, if any index exceeds the number of data sections (discovered later), we can reject the module and issue a suitable error message. The message will be for the highest offending value rather than the first appearance of an offending value, but that is presumably good enough.
cef9a1ef6b543644623200695b072f01d1d0aff4: Bug 1489601 - fix thinko in AtomicOperations-arm64-msvc.h; r=lth
Nathan Froyd <froydnj@mozilla.com> - Fri, 07 Sep 2018 15:05:35 -0400 - rev 483537
Push 239 by fmarier@mozilla.com at Mon, 10 Sep 2018 17:01:34 +0000
Bug 1489601 - fix thinko in AtomicOperations-arm64-msvc.h; r=lth
9287930e6a4909b294912977557739df1fe1284d: Bug 1330661 - Baldr: move LinkData out of Module (r=lth)
Luke Wagner <luke@mozilla.com> - Tue, 04 Sep 2018 16:46:52 -0500 - rev 482966
Push 232 by fmarier@mozilla.com at Wed, 05 Sep 2018 20:45:54 +0000
Bug 1330661 - Baldr: move LinkData out of Module (r=lth)
0dd32db49222b18a9c8e6fef0305bce9b32d9a17: Bug 1330661 - Baldr: make the BuildIdOp a process global (r=lth,mccr8)
Luke Wagner <luke@mozilla.com> - Tue, 04 Sep 2018 14:25:57 -0500 - rev 482964
Push 232 by fmarier@mozilla.com at Wed, 05 Sep 2018 20:45:54 +0000
Bug 1330661 - Baldr: make the BuildIdOp a process global (r=lth,mccr8)
603f0c6003b3ec81be847304b71124fcda216c20: Bug 1330661 - Baldr: move Assumptions out of Module (r=lth)
Luke Wagner <luke@mozilla.com> - Tue, 04 Sep 2018 14:23:10 -0500 - rev 482963
Push 232 by fmarier@mozilla.com at Wed, 05 Sep 2018 20:45:54 +0000
Bug 1330661 - Baldr: move Assumptions out of Module (r=lth)
52fdd53134d53366a895a458be9ae9300da1df95: Bug 1330661 - Baldr: move static functions in WasmCompile.cpp to be closer to their first use (r=lth)
Luke Wagner <luke@mozilla.com> - Tue, 04 Sep 2018 14:21:03 -0500 - rev 482962
Push 232 by fmarier@mozilla.com at Wed, 05 Sep 2018 20:45:54 +0000
Bug 1330661 - Baldr: move static functions in WasmCompile.cpp to be closer to their first use (r=lth)
186b3f9b43c1a4f1f898150d0b6344af184aab6b: Bug 1330661 - Baldr: remove some dead wasm-IDB code (r=lth)
Luke Wagner <luke@mozilla.com> - Tue, 04 Sep 2018 14:19:55 -0500 - rev 482961
Push 232 by fmarier@mozilla.com at Wed, 05 Sep 2018 20:45:54 +0000
Bug 1330661 - Baldr: remove some dead wasm-IDB code (r=lth)
796f67446c435f7549d83df018fde1bb854eaa04: Bug 1480587 - add support for atomic operations on AArch64 Windows; r=lth
Nathan Froyd <froydnj@mozilla.com> - Tue, 28 Aug 2018 11:31:09 -0400 - rev 481867
Push 232 by fmarier@mozilla.com at Wed, 05 Sep 2018 20:45:54 +0000
Bug 1480587 - add support for atomic operations on AArch64 Windows; r=lth
e4a245dc212abd00595bb4e4489096c6daefc73c: Bug 1480998 - Baldr: fix race in wasm signal handler if browser crashes during shutdown (r=lth,bbouvier)
Luke Wagner <luke@mozilla.com> - Thu, 23 Aug 2018 11:23:52 -0500 - rev 481424
Push 232 by fmarier@mozilla.com at Wed, 05 Sep 2018 20:45:54 +0000
Bug 1480998 - Baldr: fix race in wasm signal handler if browser crashes during shutdown (r=lth,bbouvier)
c7d62fc647ec1a96567a6266b51114fb7427cce9: Bug 1481740 - Never do endianness swapping on pointers, r=lth
Steve Fink <sfink@mozilla.com> - Wed, 08 Aug 2018 11:16:21 -0700 - rev 481202
Push 232 by fmarier@mozilla.com at Wed, 05 Sep 2018 20:45:54 +0000
Bug 1481740 - Never do endianness swapping on pointers, r=lth
6129cb421151f9a4f6032a3a2e48a71209850711: Bug 1482932 - Baldr: replace unaligned access trap with out of bounds trap (r=lth)
Luke Wagner <luke@mozilla.com> - Mon, 20 Aug 2018 11:42:46 -0500 - rev 480744
Push 231 by fmarier@mozilla.com at Wed, 22 Aug 2018 00:04:13 +0000
Bug 1482932 - Baldr: replace unaligned access trap with out of bounds trap (r=lth)
e574b6c899c1e4e8f7a087483d8bbb16edd554cf: Bug 1482365: Sync stack before branching in wasm baseline compiler's emitSetGlobal; r=lth
Benjamin Bouvier <benj@benj.me> - Fri, 10 Aug 2018 12:00:41 +0200 - rev 479253
Push 217 by fmarier@mozilla.com at Fri, 10 Aug 2018 22:05:44 +0000
Bug 1482365: Sync stack before branching in wasm baseline compiler's emitSetGlobal; r=lth
2ed9cbebf30e401db82950fc0cca2bb48efb9fa2: Bug 1469395 - Baldr: remove dead JS::WasmModule::notifyWhenCompilationComplete() support (r=lth)
Luke Wagner <luke@mozilla.com> - Wed, 08 Aug 2018 12:14:38 -0500 - rev 478919
Push 215 by fmarier@mozilla.com at Fri, 10 Aug 2018 00:07:31 +0000
Bug 1469395 - Baldr: remove dead JS::WasmModule::notifyWhenCompilationComplete() support (r=lth)
b0f4e67b3ae1bd2e084e12a6dd6cd816636c3a8c: Bug 1469395 - Remove support for storing WebAssembly.Modules in IDB (r=lth,janv,Ms2ger)
Luke Wagner <luke@mozilla.com> - Wed, 08 Aug 2018 12:13:16 -0500 - rev 478918
Push 215 by fmarier@mozilla.com at Fri, 10 Aug 2018 00:07:31 +0000
Bug 1469395 - Remove support for storing WebAssembly.Modules in IDB (r=lth,janv,Ms2ger)
d32128ee9a77e476503622c244761d17664b5fb9: Bug 1481097 - wasm: Remove inline template workaround for gcc 4.8.5 bug. r=lth
Chris Peterson <cpeterson@mozilla.com> - Sun, 22 Jul 2018 00:21:45 -0700 - rev 478770
Push 215 by fmarier@mozilla.com at Fri, 10 Aug 2018 00:07:31 +0000
Bug 1481097 - wasm: Remove inline template workaround for gcc 4.8.5 bug. r=lth This gcc 4.8.5 workaround (from bug 1316850) is no longer needed because Firefox currently requires gcc 6.1 or later (as of bug 1444274). MozReview-Commit-ID: 4JFmOYoJnMH
af793aaa80dc4a9162aba3a3f4f6c47926a9958b: Bug 1480991 - exit mailbox.js early if wasm threads not supported. r=lth
Sebastian Hengst <archaeopteryx@coole-files.de> - Sat, 04 Aug 2018 23:14:51 +0300 - rev 478490
Push 215 by fmarier@mozilla.com at Fri, 10 Aug 2018 00:07:31 +0000
Bug 1480991 - exit mailbox.js early if wasm threads not supported. r=lth MozReview-Commit-ID: EvN67pluT09
a6b2aa1c965714910e4085004219af20d393436c: Bug 1480077: Avoid signed integer overflow in Atomics.store and when printing assembler code. r=lth
André Bargull <andre.bargull@gmail.com> - Thu, 02 Aug 2018 08:03:06 -0700 - rev 478191
Push 215 by fmarier@mozilla.com at Fri, 10 Aug 2018 00:07:31 +0000
Bug 1480077: Avoid signed integer overflow in Atomics.store and when printing assembler code. r=lth
3430a73e5f1c35e93997d95b25252403dc7709d0: Bug 1448277 - Generate GVN-able references to indirect wasm globals. r=lth.
Julian Seward <jseward@acm.org> - Fri, 27 Jul 2018 12:11:31 +0200 - rev 476986
Push 211 by fmarier@mozilla.com at Wed, 01 Aug 2018 21:19:47 +0000
Bug 1448277 - Generate GVN-able references to indirect wasm globals. r=lth. Wasm-via-IonMonkey creates accesses to indirect globals using a double indirection of the form * ( *(tls + imm_offset) ) The inner load produces a pointer to the global cell holding the global's value, and the outer load or store reads or writes the actual value. Currently both accesses are represented by a single MIR node, WasmLoadGlobalVar or WasmStoreGlobalVar respectively. This has the disadvantage that it inhibits CSEing of the |*(tls + imm_offset)| part, which generates poor code when the same indirect global is referred to repeatedly, which is a common idiom. For example (set_global 0 (i32.add (get_global 0) (i32.const 1))) produces [Codegen] instruction WasmLoadGlobalVar [Codegen] movq 0x40(%r14), %rcx [Codegen] movl 0x0(%rcx), %eax [Codegen] instruction AddI [Codegen] addl $1, %eax [Codegen] instruction WasmStoreGlobalVar [Codegen] movq 0x40(%r14), %rcx <-- a load we want to avoid [Codegen] movl %eax, 0x0(%rcx) It also causes confusion in specifying the aliasing behaviour for Wasm{Load,Store}GlobalVar. See bug 1467415. This patch splits Wasm{Load,Store}GlobalVar in two: * Wasm{Load,Store}GlobalVar is reduced in scope, so that it now loads/stores *only* at |tls + imm_offset| -- the inner load/store in the description above. * Wasm{Load,Store}GlobalCell performs the outer load/store. As a result, Wasm{Load,Store}GlobalVar no longer have an |isIndirect| boolean. Instead, a direct global access is expressed using Wasm{Load,Store}GlobalVar alone, and an indirect global access is expressed using WasmLoadGlobalVar to acquire the cell address, followed by Wasm{Load,Store}GlobalCell to access the cell. MWasmLoadGlobal{Var,Cell}::mightAlias are updated accordingly. We believe the resulting alias analysis to be non-optimal in that there are certain known-not-to-alias cases that are not discovered. Most of the changes are boilerplate: * js/src/jit/AliasAnalysisShared.cpp GetObject(const MDefinition* ins) - Handle new MIR node types. * js/src/jit/CodeGenerator.cpp - New functions {Load,Store}PrimitiveValue, to avoid code duplication - CodeGenerator::visitWasmLoadGlobalVar CodeGenerator::visitWasmLoadGlobalCell CodeGenerator::visitWasmStoreGlobalVar CodeGenerator::visitWasmStoreGlobalCell CodeGenerator::visitWasmLoadGlobalVarI64 CodeGenerator::visitWasmLoadGlobalCellI64 CodeGenerator::visitWasmStoreGlobalVarI64 CodeGenerator::visitWasmStoreGlobalCellI64: new/refactored code gen fns * js/src/jit/Lowering.cpp - LIRGenerator::visitWasmLoadGlobalVar LIRGenerator::visitWasmLoadGlobalCell LIRGenerator::visitWasmStoreGlobalVar LIRGenerator::visitWasmStoreGlobalCell: route through to the above code gen fns - MWasmLoadGlobalVar::mightAlias - MWasmLoadGlobalCell::mightAlias: updated - MWasmLoadGlobalVar::congruentTo: updated - MWasmLoadGlobalCell::congruentTo: new function * js/src/jit/MIR.h - class AliasSet { add WasmGlobalCell - other classes: remove |isIndirect| flag from MWasm{Load,Store}GlobalVar add classes MWasm{Load,Store}GlobalCell{,I64} * js/src/wasm/WasmIonCompile.cpp class FunctionCompiler - loadGlobalVar(), storeGlobalVar(): actually take notice of |isIndirect| and generate one or two MIR nodes accordingly * js/src/jit-test/tests/wasm/globals-impl.js - New test case.
3d7a2ff6821ff741268ba2f4fb27d682002bc788: Bug 1416723: Move SIMD code generation to masm methods; r=lth
Benjamin Bouvier <benj@benj.me> - Tue, 24 Jul 2018 19:34:06 +0200 - rev 476827
Push 211 by fmarier@mozilla.com at Wed, 01 Aug 2018 21:19:47 +0000
Bug 1416723: Move SIMD code generation to masm methods; r=lth
bfaf82051dfd4a6605fed0da60f4f934d938bc50: Bug 1416723: Move SIMD code generation to masm methods; r=lth
Benjamin Bouvier <benj@benj.me> - Tue, 24 Jul 2018 19:34:06 +0200 - rev 476743
Push 211 by fmarier@mozilla.com at Wed, 01 Aug 2018 21:19:47 +0000
Bug 1416723: Move SIMD code generation to masm methods; r=lth
316191b80227c7b6781e62dbd0c25347a6d4615a: Bug 1466461 - [MIPS] Do not emit SYNC instruction when MembarNobits is requested. r=lth
Dragan Mladjenovic <dragan.mladjenovic@rt-rk.com> - Mon, 04 Jun 2018 01:04:00 +0300 - rev 473040
Push 198 by fmarier@mozilla.com at Wed, 04 Jul 2018 00:35:04 +0000
Bug 1466461 - [MIPS] Do not emit SYNC instruction when MembarNobits is requested. r=lth
631a97e399a03c3c74d1cadf8e26550373393fa9: Bug 1450261: Rename Val to LitVal; r=lth
Benjamin Bouvier <benj@benj.me> - Thu, 21 Jun 2018 14:25:28 +0200 - rev 472876
Push 198 by fmarier@mozilla.com at Wed, 04 Jul 2018 00:35:04 +0000
Bug 1450261: Rename Val to LitVal; r=lth
2ffe4a57033c1a2bba3ad967109101f83ce89022: Bug 1450261: Implement support of anyref in wasm globals; r=lth
Benjamin Bouvier <benj@benj.me> - Tue, 27 Mar 2018 15:40:13 +0200 - rev 472875
Push 198 by fmarier@mozilla.com at Wed, 04 Jul 2018 00:35:04 +0000
Bug 1450261: Implement support of anyref in wasm globals; r=lth
ddbbcea98cdecbebb985afaa65225e6395a6a494: Bug 1450261: Rename Val to LitVal; r=lth
Benjamin Bouvier <benj@benj.me> - Thu, 21 Jun 2018 14:25:28 +0200 - rev 472668
Push 198 by fmarier@mozilla.com at Wed, 04 Jul 2018 00:35:04 +0000
Bug 1450261: Rename Val to LitVal; r=lth
1478fb0f82debdec6e748e0e2b605b4e17d5f88d: Bug 1450261: Implement support of anyref in wasm globals; r=lth
Benjamin Bouvier <benj@benj.me> - Tue, 27 Mar 2018 15:40:13 +0200 - rev 472667
Push 198 by fmarier@mozilla.com at Wed, 04 Jul 2018 00:35:04 +0000
Bug 1450261: Implement support of anyref in wasm globals; r=lth
99371dbf539290e70252f91cfa910930f3c66974: Bug 1467415 - Importable mutable globals break alias analysis. r=lth.
Julian Seward <jseward@acm.org> - Fri, 29 Jun 2018 11:49:35 +0200 - rev 472666
Push 198 by fmarier@mozilla.com at Wed, 04 Jul 2018 00:35:04 +0000
Bug 1467415 - Importable mutable globals break alias analysis. r=lth. Currently, do-these-references-alias queries for Wasm global variable accesses are handled incorrecty. We fail to identify the case where both references are indirect (that is, imported) as possibly-aliasing. This can lead to incorrect code generation in some pretty simple cases involving globals, when compiling Wasm via IonMonkey. This commit fixes that. It also adds clarifying comments to MWasmLoadGlobalVar::congruentTo and MWasmLoadGlobalVar::valueHash pertaining to equivalance-of-loaded-values assessments.
d5a1643bd46e0e9da278a0ba7aeb2457ac59878e: Bug 1450261: Make To{WebAssembly,JS}Value private and inline GetGlobalExport; r=lth
Benjamin Bouvier <benj@benj.me> - Thu, 21 Jun 2018 14:32:27 +0200 - rev 471741
Push 198 by fmarier@mozilla.com at Wed, 04 Jul 2018 00:35:04 +0000
Bug 1450261: Make To{WebAssembly,JS}Value private and inline GetGlobalExport; r=lth
c451084c1e34d82d1f6529171f8be7dfac8b4743: Bug 1469786: Tweak directory metadata for the new WebAssembly component; r=lth
Benjamin Bouvier <benj@benj.me> - Wed, 20 Jun 2018 11:02:04 +0200 - rev 471740
Push 198 by fmarier@mozilla.com at Wed, 04 Jul 2018 00:35:04 +0000
Bug 1469786: Tweak directory metadata for the new WebAssembly component; r=lth
710e191b76ff7f9d4afb8b6f47a51ed9b003d4d7: Bug 1467071 - Wasm: import embedding_limits "limits.js" test and fix any resulting failures. r=lth.
Julian Seward <jseward@acm.org> - Fri, 08 Jun 2018 18:37:42 +0200 - rev 470226
Push 196 by fmarier@mozilla.com at Mon, 18 Jun 2018 22:44:32 +0000
Bug 1467071 - Wasm: import embedding_limits "limits.js" test and fix any resulting failures. r=lth. The WebAssembly Specification, branch [1] (see also, more generally, comments in [2]), contains a new test, limits.js, to check whether the generally agreed embedding limits (numbers of functions, imports, etc) are observed. This bug is to import the test and fix any resulting breakage detected with it. [1] https://github.com/WebAssembly/spec/tree/embedding_limits [2] https://github.com/WebAssembly/spec/issues/607 * js/src/wasm/WasmBinaryConstants.h: - Added MaxTableMaximumLength as a counterpart to MaxTableInitialLength. - Split the constant group into two parts: spec-required, and those pertaining only to our own implementation. * js/src/wasm/WasmJS.cpp WasmTableObject::construct(): - Update GetLimits call with correct max size bound * js/src/wasm/WasmValidate.cpp DecodeTableLimits(): - Implement missing check for a Table's maximum size. * js/src/jit-test/tests/wasm/import-export.js: js/src/jit-test/tests/wasm/spec/jsapi.js: testing/web-platform/mozilla/tests/wasm/js/jsapi.js: - Update Table maximum size tests. All tests trying to make a Table with more than 10,000,000 entries now throw instead of succeeding. * js/src/jit-test/tests/wasm/spec/harness/wasm-module-builder.js: - Import minimal updates and bug fixes from [1], needed to make the new tests work. * js/src/jit-test/tests/wasm/spec/limits.js - New file. Derived from [1], with comments added to each test to show SM's compliance situation, and with two tests disabled.
88c929206539f80b6ea7b9954cc2465b76bf5af9: Bug 1467071 - Wasm: import embedding_limits "limits.js" test and fix any resulting failures. r=lth.
Julian Seward <jseward@acm.org> - Thu, 07 Jun 2018 09:36:09 +0200 - rev 470104
Push 194 by fmarier@mozilla.com at Fri, 08 Jun 2018 18:34:38 +0000
Bug 1467071 - Wasm: import embedding_limits "limits.js" test and fix any resulting failures. r=lth. The WebAssembly Specification, branch [1] (see also, more generally, comments in [2]), contains a new test, limits.js, to check whether the generally agreed embedding limits (numbers of functions, imports, etc) are observed. This bug is to import the test and fix any resulting breakage detected with it. [1] https://github.com/WebAssembly/spec/tree/embedding_limits [2] https://github.com/WebAssembly/spec/issues/607 * js/src/wasm/WasmBinaryConstants.h: - Added MaxTableMaximumLength as a counterpart to MaxTableInitialLength. - Split the constant group into two parts: spec-required, and those pertaining only to our own implementation. * js/src/wasm/WasmJS.cpp WasmTableObject::construct(): - Update GetLimits call with correct max size bound * js/src/wasm/WasmValidate.cpp DecodeTableLimits(): - Implement missing check for a Table's maximum size. * js/src/jit-test/tests/wasm/import-export.js: js/src/jit-test/tests/wasm/spec/jsapi.js: - Update Table maximum size tests. All tests trying to make a Table with more than 10,000,000 entries now throw instead of succeeding. * js/src/jit-test/tests/wasm/spec/harness/wasm-module-builder.js: - Import minimal updates and bug fixes from [1], needed to make the new tests work. * js/src/jit-test/tests/wasm/spec/limits.js - New file. Derived from [1], with comments added to each test to show SM's compliance situation, and with two tests disabled.
fce767d231ad58adeadec9c16f79a342b5c28a8a: Bug 1465011 - Improve WebAssembly BulkMem.{Copy,Fill} validation tests. r=lth.
Julian Seward <jseward@acm.org> - Thu, 31 May 2018 17:34:33 +0200 - rev 468928
Push 185 by fmarier@mozilla.com at Mon, 04 Jun 2018 18:38:09 +0000
Bug 1465011 - Improve WebAssembly BulkMem.{Copy,Fill} validation tests. r=lth. Bug 1464477 exposes the fact that the current test cases in js/src/jit-test/tests/wasm/memory-bulk.js fail to verify that the following are rejected by validation: * use of BulkMem.{Copy,Fill} in a module that doesn't have a memory * use of BulkMem.{Copy,Fill} with the wrong number of arguments * use of BulkMem.{Copy,Fill} with wrong typed arguments This patch adds those missing tests. It also takes the opportunity to rename |new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(| to |wasmEvalText| in this file for more conciseness and better error checking.
9fc0e4096849fcee3a72b41bbf9a40ab509f06be: Bug 1464477 - Crash [@ JSObject::getClass] with wasm. r=lth.
Julian Seward <jseward@acm.org> - Wed, 30 May 2018 10:15:29 +0200 - rev 468632
Push 185 by fmarier@mozilla.com at Mon, 04 Jun 2018 18:38:09 +0000
Bug 1464477 - Crash [@ JSObject::getClass] with wasm. r=lth. OpIter<Policy>::readMem{Copy,Fill} have to do with memory operations. But they don't verify that the current module actually has a valid memory. If indeed there is no memory, the generated code segfaults. This patch causes verification to fail for modules without memories that use BulkMem.{Copy,Fill}. It also fixes a testcase whose lack of memory is exposed by the C++ fix.
f9e9764dc517d94d75b4c6a730dec2e2e974b1d6: Bug 1464751: Don't install wasm signal handlers on platforms without a JIT. r=lth
Cameron Kaiser <spectre@floodgap.com> - Mon, 28 May 2018 13:19:16 -0700 - rev 468381
Push 182 by fmarier@mozilla.com at Wed, 30 May 2018 01:07:46 +0000
Bug 1464751: Don't install wasm signal handlers on platforms without a JIT. r=lth
91a5de2fb8caaca309135530395590ffdbfdcd71: Bug 1464656 - Enable WebAssembly.Global by default. r=lth.
Julian Seward <jseward@acm.org> - Mon, 28 May 2018 14:51:04 +0200 - rev 468342
Push 182 by fmarier@mozilla.com at Wed, 30 May 2018 01:07:46 +0000
Bug 1464656 - Enable WebAssembly.Global by default. r=lth. WebAssembly.Global is currently nightly- and early-beta-only, gated by ENABLE_WASM_GLOBAL and EARLY_BETA_OR_EARLIER respectively. This bug is to enable it by default. * js/src/moz.build: js/src/shell/moz.build: js/src/jsapi-tests/moz.build: Don't define ENABLE_WASM_GLOBAL. * js/src/wasm/WasmJS.cpp: js/src/wasm/WasmModule.cpp: js/src/wasm/WasmValidate.cpp: Un-guard code guarded by #if defined(ENABLE_WASM_GLOBAL) && defined(EARLY_BETA_OR_EARLIER) and remove code guarded by its negation. Inside js/src, the two symbols are only ever used together, so there's no need to consider them separately. * js/src/jit-test/tests/wasm/globals.js: js/src/jit-test/tests/wasm/spec/harness/index.js: Remove code guarded by (typeof WebAssembly.Global === "undefined") and un-guard code guarded by (typeof WebAssembly.Global === "function") * js/src/jit-test/tests/wasm/spec/globals.wast.js: js/src/jit-test/tests/wasm/spec/linking.wast.js: Make these be the same as spec/proposal_mutable_global/globals.wast.js and spec/proposal_mutable_global/linking.wast.js respectively. * js/src/jit-test/tests/wasm/spec/proposal_mutable_global/globals.wast.js: js/src/jit-test/tests/wasm/spec/proposal_mutable_global/linking.wast.js: js/src/jit-test/tests/wasm/spec/proposal_mutable_global/directives.txt: js/src/jit-test/tests/wasm/spec/proposal_mutable_global (directory): Deleted.
998c04fd7948e070c3ffbe456d98a0d876911c72: Bug 1461727 - The name of the type field in the type descriptor for WebAssembly.Global shall be "value". r=lth.
Julian Seward <jseward@acm.org> - Fri, 25 May 2018 13:31:46 +0200 - rev 468073
Push 182 by fmarier@mozilla.com at Wed, 30 May 2018 01:07:46 +0000
Bug 1461727 - The name of the type field in the type descriptor for WebAssembly.Global shall be "value". r=lth. The current name is "type". Henceforth it shall be known as "value", per CG decision of 15 May 2018.
e7f93c521713aae46341a4971521ddb276b65b60: Bug 1464075 - Missing type guard on WebAssembly.Global. r=lth.
Julian Seward <jseward@acm.org> - Fri, 25 May 2018 08:13:31 +0200 - rev 468035
Push 182 by fmarier@mozilla.com at Wed, 30 May 2018 01:07:46 +0000
Bug 1464075 - Missing type guard on WebAssembly.Global. r=lth. As a result of work to import updated WebAssembly mutable-global tests in bug 1452588, the fact that there is no check to verify that the actual type of an imported global is what is expected, came to light. This patch adds the missing check. It does not add the actual test that exposed the problem; that is part of bug 1452588 and so will land when that lands.
cc575c33a6103423ffada85ce4827b32eb122a14: Bug 1464002 - Implementation error of Atomics.compareExchange on mips. r=lth
qiaopengcheng <qiaopengcheng-hf@loongson.cn> - Thu, 24 May 2018 01:12:00 +0300 - rev 467997
Push 182 by fmarier@mozilla.com at Wed, 30 May 2018 01:07:46 +0000
Bug 1464002 - Implementation error of Atomics.compareExchange on mips. r=lth
b384ccfe2e50d0a4a0af66514e86b0d61e67a6b3: Bug 1420894 - Optimize a check in float-to-int conversion. r=lth
bobslept <bobslept@protonmail.com> - Wed, 16 May 2018 16:35:42 +0200 - rev 467768
Push 179 by fmarier@mozilla.com at Fri, 25 May 2018 23:33:48 +0000
Bug 1420894 - Optimize a check in float-to-int conversion. r=lth
9f4d7874551d9104d13a2459256492506fa2b765: Bug 1457059 - WebAssembly.Global takes init value as separate argument, not as part of the descriptor. r=lth.
Julian Seward <jseward@acm.org> - Wed, 23 May 2018 13:46:23 +0200 - rev 467628
Push 179 by fmarier@mozilla.com at Fri, 25 May 2018 23:33:48 +0000
Bug 1457059 - WebAssembly.Global takes init value as separate argument, not as part of the descriptor. r=lth. This also has effect of changing the default value from NaN to 0 (as required).