searching for reviewer(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 831144
Push 118868 by bmo:zjz@zjz.name at Fri, 24 Aug 2018 07:04:39 +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 830859
Push 118857 by bmo:mtigley@mozilla.com at Thu, 23 Aug 2018 04:55:06 +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 830343
Push 118832 by bmo:ntim.bugs@gmail.com at Tue, 21 Aug 2018 13:33:17 +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 828304
Push 118671 by bmo:mstriemer@mozilla.com at Fri, 10 Aug 2018 18:51:19 +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 827805
Push 118585 by bmo:gl@mozilla.com at Thu, 09 Aug 2018 06:54:14 +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 827804
Push 118585 by bmo:gl@mozilla.com at Thu, 09 Aug 2018 06:54:14 +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 827504
Push 118540 by bmo:bpostelnicu@mozilla.com at Wed, 08 Aug 2018 10:44:22 +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 826882
Push 118402 by xquan@mozilla.com at Mon, 06 Aug 2018 05:45:51 +0000
Bug 1480991 - exit mailbox.js early if wasm threads not supported. r=lth MozReview-Commit-ID: EvN67pluT09
8dd23750589f0e38fcadf60b214c5778d7743a97: Bug 1481097 - wasm: Remove inline template workaround for gcc 4.8.5 bug. r?lth draft
Chris Peterson <cpeterson@mozilla.com> - Sun, 22 Jul 2018 00:21:45 -0700 - rev 826874
Push 118400 by cpeterson@mozilla.com at Sun, 05 Aug 2018 22:56:09 +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
88bbd248be33fb330809e1f32e891dc7182bace9: Bug 1480991 - exit mailbox.js early if wasm threads not supported. r?lth draft
Sebastian Hengst <archaeopteryx@coole-files.de> - Sat, 04 Aug 2018 23:14:51 +0300 - rev 826634
Push 118378 by bmo:aryx.bugmail@gmx-topmail.de at Sat, 04 Aug 2018 20:17:01 +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 826127
Push 118244 by nnethercote@mozilla.com at Fri, 03 Aug 2018 00:00:34 +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 823523
Push 117712 by rwood@mozilla.com at Fri, 27 Jul 2018 15:10:54 +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 823176
Push 117601 by rwood@mozilla.com at Thu, 26 Jul 2018 19:33:14 +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 823076
Push 117560 by rwood@mozilla.com at Thu, 26 Jul 2018 14:25:44 +0000
Bug 1416723: Move SIMD code generation to masm methods; r=lth
4f29d9433d69f95e01796fd687f7035c267cb62c: Bug 1467415 - Importable mutable globals break alias analysis. r=lth a=lizzard
Julian Seward <jseward@acm.org> - Fri, 29 Jun 2018 11:49:35 +0200 - rev 815465
Push 115515 by bmo:edilee@mozilla.com at Sun, 08 Jul 2018 15:56:30 +0000
Bug 1467415 - Importable mutable globals break alias analysis. r=lth a=lizzard 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.
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 813636
Push 114946 by bmo:gl@mozilla.com at Tue, 03 Jul 2018 15:52:50 +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 813101
Push 114772 by bmo:ntim.bugs@gmail.com at Mon, 02 Jul 2018 12:54:14 +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 813100
Push 114772 by bmo:ntim.bugs@gmail.com at Mon, 02 Jul 2018 12:54:14 +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 812527
Push 114579 by bmo:ntim.bugs@gmail.com at Fri, 29 Jun 2018 15:22:55 +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 812526
Push 114579 by bmo:ntim.bugs@gmail.com at Fri, 29 Jun 2018 15:22:55 +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 812525
Push 114579 by bmo:ntim.bugs@gmail.com at Fri, 29 Jun 2018 15:22:55 +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 810376
Push 113964 by bmo:johannes.willbold@rub.de at Mon, 25 Jun 2018 19:14:05 +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 810375
Push 113964 by bmo:johannes.willbold@rub.de at Mon, 25 Jun 2018 19:14:05 +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 806315
Push 112854 by bmo:mstriemer@mozilla.com at Fri, 08 Jun 2018 22:58: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.
c7746c6e3a3fca035734cbff097de630358f4454: Bug 1464002 - Implementation error of Atomics.compareExchange on mips. r=lth, a=RyanVM
qiaopengcheng <qiaopengcheng-hf@loongson.cn> - Thu, 24 May 2018 01:12:00 +0300 - rev 806227
Push 112844 by maglione.k@gmail.com at Fri, 08 Jun 2018 22:18:59 +0000
Bug 1464002 - Implementation error of Atomics.compareExchange on mips. r=lth, a=RyanVM
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 805769
Push 112753 by bmo:ato@sny.no at Fri, 08 Jun 2018 12:21:18 +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 802434
Push 111877 by dholbert@mozilla.com at Thu, 31 May 2018 19:33:20 +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.
20c20890d9bb81c156627c865ff767a6c7da855a: Bug 1464751: Don't install wasm signal handlers on platforms without a JIT. r=lth draft
Cameron Kaiser <spectre@floodgap.com> - Mon, 28 May 2018 13:19:16 -0700 - rev 801761
Push 111729 by bmo:snorp@snorp.net at Wed, 30 May 2018 18:16:24 +0000
Bug 1464751: Don't install wasm signal handlers on platforms without a JIT. r=lth
9fc0e4096849fcee3a72b41bbf9a40ab509f06be: Bug 1464477 - Crash [@ JSObject::getClass] with wasm. r=lth.
Julian Seward <jseward@acm.org> - Wed, 30 May 2018 10:15:29 +0200 - rev 801664
Push 111714 by paul@paul.cx at Wed, 30 May 2018 16:44:23 +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 800825
Push 111493 by bmo:hsivonen@hsivonen.fi at Tue, 29 May 2018 09:33:26 +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 800589
Push 111413 by bmo:gl@mozilla.com at Mon, 28 May 2018 15:27:59 +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 799872
Push 111177 by rwood@mozilla.com at Fri, 25 May 2018 13:40:50 +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 799834
Push 111177 by rwood@mozilla.com at Fri, 25 May 2018 13:40:50 +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 799694
Push 111139 by bmo:gl@mozilla.com at Fri, 25 May 2018 05:08:39 +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 799123
Push 110928 by rwood@mozilla.com at Wed, 23 May 2018 22:52:24 +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 798897
Push 110872 by bmo:gl@mozilla.com at Wed, 23 May 2018 17:32:10 +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).
83bed828a0d6f8ef077ccb444159c86b9a4b3f38: Bug 1461291 - [wasm] Crash [@ __sanitizer::internal_memmove] or Crash [@ __memmove_ssse3_back] through [@ js::wasm::Instance::memCopy]. r=lth.
Julian Seward <jseward@acm.org> - Tue, 15 May 2018 16:10:28 +0200 - rev 795706
Push 110056 by rwood@mozilla.com at Wed, 16 May 2018 13:47:54 +0000
Bug 1461291 - [wasm] Crash [@ __sanitizer::internal_memmove] or Crash [@ __memmove_ssse3_back] through [@ js::wasm::Instance::memCopy]. r=lth. This is due to incorrect range checks in Instance::memCopy and Instance::memFill. In particular, the checks inadvertantly succeed in the wraparound cases where (uint32_t)(byteOffset + len) == 0, for the relevant byteOffset and len pairings. This patch fixes the checks.
9eb38cd0f1966ad843382e2ad83d33a74ba2a399: Bug 1461337: Add a test for anyref and grow-memory; r=lth
Benjamin Bouvier <benj@benj.me> - Tue, 15 May 2018 15:42:25 +0200 - rev 795371
Push 109953 by rwood@mozilla.com at Tue, 15 May 2018 18:48:56 +0000
Bug 1461337: Add a test for anyref and grow-memory; r=lth
bfc1fcbb333261e465b79ab83f2d9f2d08ec75e8: Bug 1461337: Handle anyref locales/return value in debugger; r=lth
Benjamin Bouvier <benj@benj.me> - Mon, 14 May 2018 19:22:42 +0200 - rev 795370
Push 109953 by rwood@mozilla.com at Tue, 15 May 2018 18:48:56 +0000
Bug 1461337: Handle anyref locales/return value in debugger; r=lth
c81dfed2fa9fbde91af9d33a929461105102b92e: Bug 1459893 - Wasm: memory.fill and memory.copy: add validation code and test cases. r=lth.
Julian Seward <jseward@acm.org> - Mon, 14 May 2018 22:43:31 +0200 - rev 795255
Push 109898 by plingurar@mozilla.com at Tue, 15 May 2018 10:04:48 +0000
Bug 1459893 - Wasm: memory.fill and memory.copy: add validation code and test cases. r=lth. Bug 1446930 added a baseline implementation of memory.fill/copy, and runtime test cases for them, but missed out validation code and test cases for them. This is a followup, to add those missing elements.
5c0629a808fe23cc67a1e98a75f57647cb3087db: Bug 1459761 - Baldr: relax WebAssembly.Memory GC heuristic (r=lth,jonco)
Luke Wagner <luke@mozilla.com> - Mon, 14 May 2018 09:21:46 -0500 - rev 794953
Push 109827 by mozilla@noorenberghe.ca at Mon, 14 May 2018 20:13:54 +0000
Bug 1459761 - Baldr: relax WebAssembly.Memory GC heuristic (r=lth,jonco)
1d050e53f0d3a22b44cd00e21911229ecb2ad5e0: Bug 1459850 - Wasm baseline: BaseCompiler::load() for 8-bit loads on x86: remove use of scratch reg. r=lth.
Julian Seward <jseward@acm.org> - Sat, 12 May 2018 13:00:47 +0200 - rev 794608
Push 109731 by bmo:mantaroh@gmail.com at Mon, 14 May 2018 00:23:03 +0000
Bug 1459850 - Wasm baseline: BaseCompiler::load() for 8-bit loads on x86: remove use of scratch reg. r=lth. For x86(32), BaseCompiler::load() loads indirectly via the scratch reg (ebx) when the data size is 8 bits and the eventual destination is esi or edi. This is pointless because the actual load created by |masm.wasmLoad(*access, srcAddr, out);| is a mov{s,z}bl instruction and so is unconstrained as to the output register. This patch removes the indirection.
3f75694d9f8202393dc43283a378bd0f8eaf2fba: Bug 1459552 - Wasm: memory.fill and memory.copy: fix opcode assignments per recent committee decision. r=lth.
Julian Seward <jseward@acm.org> - Fri, 11 May 2018 08:47:18 +0200 - rev 794037
Push 109567 by bmo:sledru@mozilla.com at Fri, 11 May 2018 09:14:19 +0000
Bug 1459552 - Wasm: memory.fill and memory.copy: fix opcode assignments per recent committee decision. r=lth. This patch: (1) renames the NumericPrefix top level encoding byte to MiscPrefix, as somewhat vaguely implied by https://github.com/WebAssembly/bulk-memory-operations/issues/9, and uses the value 0xFC for it. (2) installs the memory.copy/fill encodings as secondary opcodes of MiscPrefix, with values 0x40 and 0x41 respectively. The 0x40 and 0x41 values are our own choice and haven't yet been agreed more broadly. This isn't entirely simple, because the uses of 'enum class NumericOp' (which is renamed MiscOp) now have to be divided into two different ifdef-guarded sections, rather than being an all-or-nothing thing. As a result, a number of switches that previously looked like this case uint16_t(Op::NumericPrefix): { #ifdef ENABLE_WASM_SATURATING_TRUNC_OPS switch (op.b1) { case uint16_t(NumericOp::I32TruncSSatF32): case uint16_t(NumericOp::I32TruncUSatF32): default: return iter.unrecognizedOpcode(&op); #else return iter.unrecognizedOpcode(&op); #endif } first have to be rearranged like this case uint16_t(Op::NumericPrefix): { switch (op.b1) { #ifdef ENABLE_WASM_SATURATING_TRUNC_OPS case uint16_t(NumericOp::I32TruncSSatF32): case uint16_t(NumericOp::I32TruncUSatF32): #endif default: break; } return iter.unrecognizedOpcode(&op); (that is, have the ifdef pushed inwards to the inner |case| level, and have the after-the-switch control flow fixed up) before it is possible to add similarly guarded cases for memory.copy/fill. I'm assuming that the degenerate configuration, where the innermost switch has no active entries switch (op.b1) { default: break; } is optimised away by the C++ compiler, so there's no perf loss. This seems reasonable to me.
44c76dad59b675325ac4262d42f743c35ae2be5e: Bug 1459225 - Add a gc() call to wasm/atomic.js test so TSan builds don't OOM. r=lth
Jan de Mooij <jdemooij@mozilla.com> - Tue, 08 May 2018 15:06:53 +0200 - rev 792564
Push 109144 by nalexander@mozilla.com at Tue, 08 May 2018 16:37:00 +0000
Bug 1459225 - Add a gc() call to wasm/atomic.js test so TSan builds don't OOM. r=lth
bb402086c764108a03d90a8b29256dce4eee4cba: Bug 1446930 - Wasm: basic (OOL) implementation of memory.fill and memory.copy. r=lth.
Julian Seward <jseward@acm.org> - Fri, 04 May 2018 23:14:09 +0200 - rev 792068
Push 108982 by bschouten@mozilla.com at Mon, 07 May 2018 16:15:56 +0000
Bug 1446930 - Wasm: basic (OOL) implementation of memory.fill and memory.copy. r=lth. This patch adds an initial implementation, along with test cases, for the memory.fill and memory.copy instructions that form part of the bulk-memory-operations proposal at https://github.com/WebAssembly/bulk-memory-operations/blob/master/proposals/bulk-memory-operations/Overview.md. This covers code generation for the baseline and optimising compilers, as well as supporting infrastructure for conversion to/from binary and text representations. The implementation is simple in the sense that -- for both compilers -- it is done by a call to a helper function, which eventually devolves to a call to memset/memmove respectively. Per subsequent clarification requests: * https://github.com/WebAssembly/bulk-memory-operations/issues/8 The arguments to these instructions are all interpreted as unsigned 32 bit ints. * https://github.com/WebAssembly/bulk-memory-operations/issues/11 Zero length fills/copies that have starting point offsets out of bounds trap rather than are treated as no-ops.
f3ffc928dddd32983a2f623b3a254606d4dc6406: Bug 1458456 part 3a - Notify main thread after finishing wasm tasks to fix a race with waitForAllThreads. r=lth
Luke Wagner <luke@mozilla.com> - Fri, 04 May 2018 15:28:23 +0200 - rev 791555
Push 108842 by bmo:gl@mozilla.com at Fri, 04 May 2018 17:13:12 +0000
Bug 1458456 part 3a - Notify main thread after finishing wasm tasks to fix a race with waitForAllThreads. r=lth
bc311a04727333f0dab9aaa650ece30181ddf0f3: Bug 1455610: Prevent nop fills from happening in jump tables; r=lth
Benjamin Bouvier <benj@benj.me> - Tue, 24 Apr 2018 16:16:34 +0200 - rev 791094
Push 108690 by bmo:gl@mozilla.com at Thu, 03 May 2018 13:37:18 +0000
Bug 1455610: Prevent nop fills from happening in jump tables; r=lth
4f2dc01fcef52503ed7adb6e7950d315f0571c7e: Bug 1454923: Add debugging support for anyref return values in wasm; r=lth
Benjamin Bouvier <benj@benj.me> - Wed, 18 Apr 2018 14:34:20 +0200 - rev 784493
Push 106951 by bmo:emilio@crisal.io at Wed, 18 Apr 2018 17:52:44 +0000
Bug 1454923: Add debugging support for anyref return values in wasm; r=lth
a1ceebb96b78f8cfc82ad4d7fbcc972205213ce9: Bug 1429727 - Rename js::ThreadLocalData to prevent confusion with mozilla::ThreadLocal r=lth
Jon Coppeard <jcoppeard@mozilla.com> - Tue, 17 Apr 2018 15:32:02 +0200 - rev 783793
Push 106779 by rwood@mozilla.com at Tue, 17 Apr 2018 18:04:07 +0000
Bug 1429727 - Rename js::ThreadLocalData to prevent confusion with mozilla::ThreadLocal r=lth
44662c81a04d0e0f5a2f10f98bdf1b9ffbcdf19f: Bug 1454161: Make --wasm-gc a no-op in non-Nightly builds; r=lth
Benjamin Bouvier <benj@benj.me> - Mon, 16 Apr 2018 10:13:57 +0200 - rev 783717
Push 106761 by kgupta@mozilla.com at Tue, 17 Apr 2018 15:59:54 +0000
Bug 1454161: Make --wasm-gc a no-op in non-Nightly builds; r=lth MozReview-Commit-ID: AynuyMIj9Rz