searching for reviewer(rhunt)
caf157f846d62511e21f0fb8eef79eb3574f4160: Bug 1708124 - Fix OOM case in Wasm ReportError r=rhunt
Asumu Takikawa <asumu@igalia.com> - Tue, 04 May 2021 16:08:27 +0000 - rev 578485
Push 38433 by nbeleuzu@mozilla.com at Tue, 04 May 2021 21:49:50 +0000
Bug 1708124 - Fix OOM case in Wasm ReportError r=rhunt Differential Revision: https://phabricator.services.mozilla.com/D114146
9875462954aa412a1aee25d2c80e9cc1e3e8287a: Bug 1706427 - Update wasmparser and cranelift. r=rhunt
Yury Delendik <ydelendik@mozilla.com> - Tue, 04 May 2021 14:59:40 +0000 - rev 578464
Push 38433 by nbeleuzu@mozilla.com at Tue, 04 May 2021 21:49:50 +0000
Bug 1706427 - Update wasmparser and cranelift. r=rhunt Differential Revision: https://phabricator.services.mozilla.com/D112806
e700a3084c27e48addfc880f82b86b225da23cf3: Bug 1706891 - Config machinery for relaxed simd. r=rhunt
Lars T Hansen <lhansen@mozilla.com> - Tue, 04 May 2021 06:26:13 +0000 - rev 578399
Push 38433 by nbeleuzu@mozilla.com at Tue, 04 May 2021 21:49:50 +0000
Bug 1706891 - Config machinery for relaxed simd. r=rhunt Introduce moz.configure, WasmFeatures, and StaticPrefList.yaml machinery to define a config option for relaxed SIMD (https://github.com/WebAssembly/relaxed-simd). At the moment, there are no defined relaxed SIMD opcodes, but a dozen or so are in the works. This just sets us up for implementing those. Differential Revision: https://phabricator.services.mozilla.com/D114117
e1484bb05982e24801a711c757923b6cde77b492: Bug 1704722 - Tidy up confusion around jit entry/exit generation. r=rhunt
Lars T Hansen <lhansen@mozilla.com> - Thu, 22 Apr 2021 08:57:55 +0000 - rev 577041
Push 38399 by apavel@mozilla.com at Thu, 22 Apr 2021 21:31:57 +0000
Bug 1704722 - Tidy up confusion around jit entry/exit generation. r=rhunt Differential Revision: https://phabricator.services.mozilla.com/D111800
b070428c3e0786c5fc16fd37d246fdd6c443d3ef: Bug 1697371 - Templatize baseline compiler part 5: eqz and wrap. r=rhunt
Lars T Hansen <lhansen@mozilla.com> - Wed, 21 Apr 2021 12:52:09 +0000 - rev 576932
Push 38395 by malexandru@mozilla.com at Wed, 21 Apr 2021 15:50:30 +0000
Bug 1697371 - Templatize baseline compiler part 5: eqz and wrap. r=rhunt Differential Revision: https://phabricator.services.mozilla.com/D109611
1992090d7578cb60bee130240af3e3f0e2cf28b8: Bug 1697371 - Templatize baseline compiler part 4: Shifts and 32-bit rotates. r=rhunt
Lars T Hansen <lhansen@mozilla.com> - Wed, 21 Apr 2021 12:52:09 +0000 - rev 576931
Push 38395 by malexandru@mozilla.com at Wed, 21 Apr 2021 15:50:30 +0000
Bug 1697371 - Templatize baseline compiler part 4: Shifts and 32-bit rotates. r=rhunt Shifts and rotates may require a variable RHS to be in a specific register. We can express this generically by passing an rhs-popper function to the emitter. (64-bit rotates are additionally complicated by requiring a temp, and are not translated in this patch.) Differential Revision: https://phabricator.services.mozilla.com/D109610
2da4589bf1e2e73d1ca024e58f24333ac4e63acf: Bug 1697371 - Templatize baseline compiler part 3: Popcnt. r=rhunt
Lars T Hansen <lhansen@mozilla.com> - Wed, 21 Apr 2021 12:52:08 +0000 - rev 576930
Push 38395 by malexandru@mozilla.com at Wed, 21 Apr 2021 15:50:30 +0000
Bug 1697371 - Templatize baseline compiler part 3: Popcnt. r=rhunt Popcount may need a temp; whether it does depends on both the platform and the CPU. A custom temp allocator function can be passed to the emitter and used generically. Differential Revision: https://phabricator.services.mozilla.com/D109609
ad98cd5334b37e0c3af4ef6697771f68f161d873: Bug 1697371 - Templatize baseline compiler part 2: Easy cases. r=rhunt
Lars T Hansen <lhansen@mozilla.com> - Wed, 21 Apr 2021 12:52:08 +0000 - rev 576929
Push 38395 by malexandru@mozilla.com at Wed, 21 Apr 2021 15:50:30 +0000
Bug 1697371 - Templatize baseline compiler part 2: Easy cases. r=rhunt Translate the existing emitters that have simple register use patterns (no custom pops, temps, widens, or narrows) into the new templated style. Differential Revision: https://phabricator.services.mozilla.com/D107798
9c24133b2b6d284289eb4ead0cd01eef2606a325: Bug 1697371 - Templatize baseline compiler part 1: Move stuff around and rename. r=rhunt
Lars T Hansen <lhansen@mozilla.com> - Wed, 21 Apr 2021 12:52:08 +0000 - rev 576928
Push 38395 by malexandru@mozilla.com at Wed, 21 Apr 2021 15:50:30 +0000
Bug 1697371 - Templatize baseline compiler part 1: Move stuff around and rename. r=rhunt The templates that were introduced for SIMD are promoted from emitVectorWhatever to emitWhatever, so that they can be used more generally. They are also moved away from SIMD-specific code to a more generic place in the compiler. Some type-specific names for which type information is otherwise available though a parameter type are changed to become type-agnostic (popConstT -> popConst for example), this will aid further template use. Differential Revision: https://phabricator.services.mozilla.com/D109608
6f12cc06efc005daf9da88ae78d39d48506d21b7: Bug 1697371 - Templatize baseline compiler part 5: eqz and wrap. r=rhunt
Lars T Hansen <lhansen@mozilla.com> - Wed, 21 Apr 2021 10:51:02 +0000 - rev 576919
Push 38395 by malexandru@mozilla.com at Wed, 21 Apr 2021 15:50:30 +0000
Bug 1697371 - Templatize baseline compiler part 5: eqz and wrap. r=rhunt Differential Revision: https://phabricator.services.mozilla.com/D109611
c6a95e1a6b94ad6e44360afe09f8469bd138fa0c: Bug 1697371 - Templatize baseline compiler part 4: Shifts and 32-bit rotates. r=rhunt
Lars T Hansen <lhansen@mozilla.com> - Wed, 21 Apr 2021 10:51:02 +0000 - rev 576918
Push 38395 by malexandru@mozilla.com at Wed, 21 Apr 2021 15:50:30 +0000
Bug 1697371 - Templatize baseline compiler part 4: Shifts and 32-bit rotates. r=rhunt Shifts and rotates may require a variable RHS to be in a specific register. We can express this generically by passing an rhs-popper function to the emitter. (64-bit rotates are additionally complicated by requiring a temp, and are not translated in this patch.) Differential Revision: https://phabricator.services.mozilla.com/D109610
4b683260bf2f55dd2f33f4d5ba55574c5935fcff: Bug 1697371 - Templatize baseline compiler part 3: Popcnt. r=rhunt
Lars T Hansen <lhansen@mozilla.com> - Wed, 21 Apr 2021 10:51:02 +0000 - rev 576917
Push 38395 by malexandru@mozilla.com at Wed, 21 Apr 2021 15:50:30 +0000
Bug 1697371 - Templatize baseline compiler part 3: Popcnt. r=rhunt Popcount may need a temp; whether it does depends on both the platform and the CPU. A custom temp allocator function can be passed to the emitter and used generically. Differential Revision: https://phabricator.services.mozilla.com/D109609
8869b6a4843ebc589ac5de6ca4d58a71345780e1: Bug 1697371 - Templatize baseline compiler part 2: Easy cases. r=rhunt
Lars T Hansen <lhansen@mozilla.com> - Wed, 21 Apr 2021 10:51:01 +0000 - rev 576916
Push 38395 by malexandru@mozilla.com at Wed, 21 Apr 2021 15:50:30 +0000
Bug 1697371 - Templatize baseline compiler part 2: Easy cases. r=rhunt Translate the existing emitters that have simple register use patterns (no custom pops, temps, widens, or narrows) into the new templated style. Differential Revision: https://phabricator.services.mozilla.com/D107798
85fe1b348664320ced22553795d4219f4629acb9: Bug 1697371 - Templatize baseline compiler part 1: Move stuff around and rename. r=rhunt
Lars T Hansen <lhansen@mozilla.com> - Wed, 21 Apr 2021 10:51:01 +0000 - rev 576915
Push 38395 by malexandru@mozilla.com at Wed, 21 Apr 2021 15:50:30 +0000
Bug 1697371 - Templatize baseline compiler part 1: Move stuff around and rename. r=rhunt The templates that were introduced for SIMD are promoted from emitVectorWhatever to emitWhatever, so that they can be used more generally. They are also moved away from SIMD-specific code to a more generic place in the compiler. Some type-specific names for which type information is otherwise available though a parameter type are changed to become type-agnostic (popConstT -> popConst for example), this will aid further template use. Differential Revision: https://phabricator.services.mozilla.com/D109608
efc9536a55e4028f4795c891fc5b37cd056fced6: Bug 1705869 - Fix wasm build error in tier-3 config. r=rhunt
Lars T Hansen <lhansen@mozilla.com> - Mon, 19 Apr 2021 13:34:30 +0000 - rev 576541
Push 38389 by dluca@mozilla.com at Mon, 19 Apr 2021 22:16:26 +0000
Bug 1705869 - Fix wasm build error in tier-3 config. r=rhunt Cranelift tier-3 compile failed on buildbot due to a disabled feature that exposed a private field as unused. Make the field conditional on the feature. Differential Revision: https://phabricator.services.mozilla.com/D112467
cb26d49c9f18d29c8f8b9f2fc107d7ff03057e85: Bug 1705446 - Fix Firefox pref names in WasmFeatures. r=rhunt
Lars T Hansen <lhansen@mozilla.com> - Fri, 16 Apr 2021 14:20:49 +0000 - rev 576352
Push 38381 by nbeleuzu@mozilla.com at Sat, 17 Apr 2021 09:50:08 +0000
Bug 1705446 - Fix Firefox pref names in WasmFeatures. r=rhunt The features rewrite got the names of the Firefox wasm prefs wrong, they all have a wasm_ prefix that got chopped off. This puts it back. It sucks that we don't have meaningful test cases for this. A manual test case (see bug) is easy, but how to automate it? Differential Revision: https://phabricator.services.mozilla.com/D112325
20cbe7fb98bf83d8b1959887d04f56580a8e4104: Bug 1695585 - Flip SIMD flag to true for x64/x86. r=rhunt
Lars T Hansen <lhansen@mozilla.com> - Thu, 08 Apr 2021 18:50:02 +0000 - rev 575121
Push 38358 by archaeopteryx@coole-files.de at Fri, 09 Apr 2021 09:20:20 +0000
Bug 1695585 - Flip SIMD flag to true for x64/x86. r=rhunt Flip javascript.options.wasm_simd to true for beta and release. This patch leaves the flag as true on nightly and otherwise false, for arm64, since arm64 code landing is imminent. But in truth simd is not even compiled in for arm64 at the moment. Differential Revision: https://phabricator.services.mozilla.com/D111285
35b1d4bfe9d84a5a746c8ca0624f08ad4bbb998c: Bug 1703287 - Document removal of wasm thread ops under j.o.shared_memory=false. r=rhunt DONTBUILD
Lars T Hansen <lhansen@mozilla.com> - Thu, 08 Apr 2021 15:41:52 +0000 - rev 575075
Push 38358 by archaeopteryx@coole-files.de at Fri, 09 Apr 2021 09:20:20 +0000
Bug 1703287 - Document removal of wasm thread ops under j.o.shared_memory=false. r=rhunt DONTBUILD As is the case for JS, when j.o.shared_memory=false we remove the atomic operations altogether for maximum safety; this just documents that it is not an accident. Differential Revision: https://phabricator.services.mozilla.com/D111061
293371b99fca0f90019d388ec372beafa7d987fc: Bug 1676441 - Bounds checking for 4GB heaps. r=rhunt
Lars T Hansen <lhansen@mozilla.com> - Fri, 26 Mar 2021 12:33:01 +0000 - rev 573242
Push 38324 by ncsoregi@mozilla.com at Fri, 26 Mar 2021 21:51:06 +0000
Bug 1676441 - Bounds checking for 4GB heaps. r=rhunt Add wasmBoundsCheck64() APIs that will take a 64-bit index and 64-bit limit, to be used on all 64-bit platforms. Document their use. Use the new 64-bit API on 64-bit systems (after widening the index appropriately) and the 32-bit API on 32-bit systems. Update both Baseline and Ion to handle this. Make a special exception for asm.js, which continues to use 32-bit bounds checking even on 64-bit systems. Continue to use the 32-bit API when heaps are known not to be 4GB exactly, so as to avoid some manipulation of the index value during bounds checking. Differential Revision: https://phabricator.services.mozilla.com/D99098
c6b934f5ec431b9ba33e6900ef5633188874c57d: Bug 1676441 - Allow 64K pages. r=rhunt
Lars T Hansen <lhansen@mozilla.com> - Fri, 26 Mar 2021 12:33:00 +0000 - rev 573241
Push 38324 by ncsoregi@mozilla.com at Fri, 26 Mar 2021 21:51:06 +0000
Bug 1676441 - Allow 64K pages. r=rhunt Increase the max number of allocatable pages on 64-bit from 65534 to 65536, except when Cranelift is present (because Cranelift depends on the bounds check limit being 32 bits and we don't want to deal with updating Cranelift right now). (An alternative to using ENABLE_WASM_CRANELIFT would be to introduce another name, ENABLE_WASM_65534 as a strawman, that is used throughout for clarity, and is defined by moz.configure when Cranelift is selected. Yet another alternative would be to limit Cranelift to 2GB heaps, to reduce the number of testing configurations. Discuss.) Change TlsData::boundsCheckLimit from uint32_t to uintptr_t, so that it can be 64 bits on 64-bit systems and can represent a 4GB heapsize. Update test cases so that boundary conditions are handled properly, for example, i32(65536*65536) == 0, so some test cases should not be run unless the max page count is below 64K. Note, this patch does *not* update the compilers, so the bounds check limit continues to be read as a 32-bit quantity. This results in some failures, which go away when the compilers are updated (next patch). Differential Revision: https://phabricator.services.mozilla.com/D108613
9878eb4fb39b32758a5ac42bf63ddce56427c5d7: Bug 1700602 - fix compile errors when Wasm exceptions are off r=rhunt
Asumu Takikawa <asumu@igalia.com> - Wed, 24 Mar 2021 23:09:35 +0000 - rev 573006
Push 38318 by cbrindusan@mozilla.com at Thu, 25 Mar 2021 03:42:26 +0000
Bug 1700602 - fix compile errors when Wasm exceptions are off r=rhunt Fixes compile errors for recent Wasm exception handling changes when the feature's compilation flag is turned off. Differential Revision: https://phabricator.services.mozilla.com/D109652
b6c1b50570fd49ad3a406e80b83f2e58675abc82: Bug 1690965 - part 4: add unwind wasm instruction r=rhunt
Asumu Takikawa <asumu@igalia.com> - Tue, 23 Mar 2021 17:11:41 +0000 - rev 572694
Push 38313 by apavel@mozilla.com at Tue, 23 Mar 2021 21:43:59 +0000
Bug 1690965 - part 4: add unwind wasm instruction r=rhunt Adds support for the `unwind` instruction from the wasm exception handling proposal to the Baseline compiler. Differential Revision: https://phabricator.services.mozilla.com/D106221
a369b2597d48acecf4cb42e4bfd480ea78b59758: Bug 1690965 - part 3: add delegate wasm instruction r=rhunt
Asumu Takikawa <asumu@igalia.com> - Tue, 23 Mar 2021 17:11:40 +0000 - rev 572693
Push 38313 by apavel@mozilla.com at Tue, 23 Mar 2021 21:43:59 +0000
Bug 1690965 - part 3: add delegate wasm instruction r=rhunt Adds support for the `delegate` instruction from the wasm exception handling proposal to the Baseline compiler. Differential Revision: https://phabricator.services.mozilla.com/D106220
e983f4efe9b0e9400d37286c02775a2b00263ac3: Bug 1690965 - part 2: add rethrow wasm instruction r=rhunt
Asumu Takikawa <asumu@igalia.com> - Tue, 23 Mar 2021 17:11:40 +0000 - rev 572692
Push 38313 by apavel@mozilla.com at Tue, 23 Mar 2021 21:43:59 +0000
Bug 1690965 - part 2: add rethrow wasm instruction r=rhunt Adds support for the `rethrow` instruction from the wasm exception handling proposal to the Baseline compiler. Differential Revision: https://phabricator.services.mozilla.com/D105854
1a04bb7eaba73d74412341026a305ecf8fa78e39: Bug 1690965 - part 1: add catch_all wasm instruction r=rhunt
Asumu Takikawa <asumu@igalia.com> - Tue, 23 Mar 2021 17:11:39 +0000 - rev 572691
Push 38313 by apavel@mozilla.com at Tue, 23 Mar 2021 21:43:59 +0000
Bug 1690965 - part 1: add catch_all wasm instruction r=rhunt Adds support for the `catch_all` instruction for the wasm exception handling proposal in the Baseline compiler. Differential Revision: https://phabricator.services.mozilla.com/D104292
97a7ee338056f0e9238a4ae1788c6a6b0569fb40: Bug 1699213 - Check for SIMD wormhole availability the right way. r=rhunt
Lars T Hansen <lhansen@mozilla.com> - Wed, 17 Mar 2021 19:23:11 +0000 - rev 571667
Push 38295 by btara@mozilla.com at Thu, 18 Mar 2021 04:15:43 +0000
Bug 1699213 - Check for SIMD wormhole availability the right way. r=rhunt We are never supposed to check flags directly, we should always go via the 'Available' functions. So also here: the flag test tests just the flag; the availability test allows the flag value to be provided by a privileged-extension check. Differential Revision: https://phabricator.services.mozilla.com/D108819
ce483363652d448558c9d99923b1870624c6c648: Bug 1676441 - Upgrade to BufferSize::get everywhere. r=rhunt
Lars T Hansen <lhansen@mozilla.com> - Tue, 16 Mar 2021 06:48:25 +0000 - rev 571367
Push 38290 by abutkovits@mozilla.com at Tue, 16 Mar 2021 16:29:54 +0000
Bug 1676441 - Upgrade to BufferSize::get everywhere. r=rhunt Use the value from BufferSize::get() without checking that it fits in uint32_t in cases where this makes sense and is straightforward. In the cases where it still matters, perform additional checking or rewrite code so that it doesn't matter. Remove BufferSize::getWasmUint32(), it is now unused. Indeed BufferSize could be replaced by size_t now. As a consequence of these changes, we relabel the memory operations so that it is clear that they are for 32-bit memories, as they would otherwise have to take 64-bit arguments and have more complicated overflow checking on source and destination addresses. So long as only the memory size needs to be larger than 32 bits it's not complicated. Drive-by fix a bug where TableCopy used a failure value from MemCopy; this has no impact on any code, it's just a typo. Differential Revision: https://phabricator.services.mozilla.com/D98970
cb02a960ee5c10e36258060c61fcb0f7837d6fb1: Bug 1676441 - Allow up to 65534 pages + test cases. r=rhunt
Lars T Hansen <lhansen@mozilla.com> - Tue, 16 Mar 2021 06:48:25 +0000 - rev 571366
Push 38290 by abutkovits@mozilla.com at Tue, 16 Mar 2021 16:29:54 +0000
Bug 1676441 - Allow up to 65534 pages + test cases. r=rhunt The purpose here is to allow wasm memories to use up to 65534 pages of memory on 64-bit systems, if the underlying ArrayBuffer / SharedArrayBuffer supports it. (The remaining two pages remain out of bounds until we can make the bounds checking limit 64 bits wide, and some other things.) As the max value of the heap limit field is 65536, this should unlock memories above 2GB for all users who do not insist on actually allocating all 4GB. The changes here are: * Parameterize everything properly: Get rid of hardcoded UINT32_MAX and INT32_MAX and similar where that is possible. Some remain; comments have been added. * Add guards for asm.js to remain at heap limit INT32_MAX forever * Add guard for grow() methods to enforce the limit separately from arraybuffer code * Add test cases and test infrastructure * Clean up some transitional things that are no longer required, now that the underlying arraybuffer code is stable Some parameters are turned into function calls now, but may become constants again later. Differential Revision: https://phabricator.services.mozilla.com/D96602
9a689a52f8c69329e867967c23918f7f00ad2d7f: Bug 1694537 - support reference types in wasm exceptions r=rhunt
Asumu Takikawa <asumu@igalia.com> - Sun, 14 Mar 2021 20:13:47 +0000 - rev 571013
Push 38286 by smolnar@mozilla.com at Mon, 15 Mar 2021 09:18:36 +0000
Bug 1694537 - support reference types in wasm exceptions r=rhunt This patch adds support for using reference types in wasm exception types and allows exceptions including such values to be thrown and caught. Differential Revision: https://phabricator.services.mozilla.com/D106850
52b2e914fabb7130a29bff5434e5d5c1482890d0: Bug 1693912 - Renumber SIMD instructions based on final spec. r=rhunt
Yury Delendik <ydelendik@mozilla.com> - Fri, 12 Mar 2021 17:23:54 +0000 - rev 570902
Push 38281 by smolnar@mozilla.com at Fri, 12 Mar 2021 21:58:43 +0000
Bug 1693912 - Renumber SIMD instructions based on final spec. r=rhunt Renumbers instructions based on final SIMD spec. Removes I16x8AnyTrue / I32x4AnyTrue Differential Revision: https://phabricator.services.mozilla.com/D105840
507a60ec1f75fcea6b01f5dbe87e4fb818b8803d: Bug 1693476 - fix SP reload in the Wasm throw stub r=rhunt
Asumu Takikawa <asumu@igalia.com> - Wed, 03 Mar 2021 08:34:13 +0000 - rev 569442
Push 38260 by apavel@mozilla.com at Wed, 03 Mar 2021 21:50:27 +0000
Bug 1693476 - fix SP reload in the Wasm throw stub r=rhunt Fixes an issue in which the Wasm throw stub could generate bad accesses under the SP when a catch handler was found. Differential Revision: https://phabricator.services.mozilla.com/D106549
6c026ef51eba16c1c73ea864492c11a55e653d52: Bug 1667984 - Document JumpTable, the stubs system, and tiering. r=rhunt DONTBUILD
Lars T Hansen <lhansen@mozilla.com> - Wed, 03 Mar 2021 08:31:53 +0000 - rev 569441
Push 38260 by apavel@mozilla.com at Wed, 03 Mar 2021 21:50:27 +0000
Bug 1667984 - Document JumpTable, the stubs system, and tiering. r=rhunt DONTBUILD Starting with JumpTable, document how tiering and jit-entry stubs work globally. Clean up a little bit of naming: the "provisional jit-entry stub" is really the "provisional lazy jit-entry stub", so make that clear. Differential Revision: https://phabricator.services.mozilla.com/D104078
376a5c3973da9828aa6681286bfbed26d3b284a3: Bug 1335652 - wasm exceptions part 17: refine validation tests r=rhunt
Asumu Takikawa <asumu@igalia.com> - Fri, 26 Feb 2021 22:07:09 +0000 - rev 568988
Push 38247 by malexandru@mozilla.com at Sat, 27 Feb 2021 21:43:59 +0000
Bug 1335652 - wasm exceptions part 17: refine validation tests r=rhunt This enables the checking of all validation test error messages, which wasn't possible before the exception instructions were implemented in at least the Baseline compiler. Differential Revision: https://phabricator.services.mozilla.com/D103965
1b682d807c4084308cc200a45125b3664f999be0: Bug 1691426 - address perf regression for ErrorObject wasm trap flag r=rhunt
Asumu Takikawa <asumu@igalia.com> - Tue, 23 Feb 2021 08:24:53 +0000 - rev 568356
Push 38232 by dluca@mozilla.com at Tue, 23 Feb 2021 23:03:32 +0000
Bug 1691426 - address perf regression for ErrorObject wasm trap flag r=rhunt This patch intends to fix a performance regression on some tests caused by the overhead of initializing the extra wasm trap slot on ErrorObjects. This patch only creates the additional slot on exception types that can be used for traps (RuntimeError and InternalError cases). Differential Revision: https://phabricator.services.mozilla.com/D104878
bead43912b15ac428d397401bfee13b5c9f7c4b4: Bug 1693483 part 3 - Move TypeDescr from ObjectGroup to TypedObject. r=iain,rhunt
Jan de Mooij <jdemooij@mozilla.com> - Fri, 19 Feb 2021 12:32:57 +0000 - rev 568086
Push 38220 by ncsoregi@mozilla.com at Fri, 19 Feb 2021 21:25:35 +0000
Bug 1693483 part 3 - Move TypeDescr from ObjectGroup to TypedObject. r=iain,rhunt To prepare for ObjectGroup removal, this adds the TypeDescr to the TypedObject itself instead of storing it in the group. The OutlineTypedObject AllocKind is changed from OBJECT0 to OBJECT2 to be able to store the extra value. Once we remove the group from JSObject this will be changed back, at that point the TypeDescr* replaces the group so there will be no size increase. Typed objects are currently only used for Wasm GC. Once they're more stable and perf-sensitive, we can consider optimizing them better by potentially moving the TypeDescr into the Shape etc. Short-term this patch makes it much easier for us to change the object representation for all other objects. Differential Revision: https://phabricator.services.mozilla.com/D105608
79f9f998d815cedd9cfc0e0118a327c21d229fbd: Bug 1692842 - Stopgap solution for IsSimdPrivilegedContext. r=rhunt
Lars T Hansen <lhansen@mozilla.com> - Wed, 17 Feb 2021 15:32:47 +0000 - rev 567847
Push 38212 by malexandru@mozilla.com at Wed, 17 Feb 2021 21:32:26 +0000
Bug 1692842 - Stopgap solution for IsSimdPrivilegedContext. r=rhunt This is the solution discussed in bug 1686652 - we use isSystemOrAddonPrincipal to gate the interpretation of the nonstandard wasm compilation options bag in the absence of a true value for javascript.options.wasm_simd_wormhole (since that flag will not be available in late beta or later builds). This is slightly more lenient than desirable as discussed on the present bug, and if I can find a stricter check that works I will followup with that. In the mean time, this check should be a reasonable and safe stopgap. Differential Revision: https://phabricator.services.mozilla.com/D105456
63e8e8ea15788895893e3d12cc8f0b4a33d5dbc0: Bug 1686652 - Make the wormhole cleverer. r=rhunt
Lars T Hansen <lhansen@mozilla.com> - Fri, 12 Feb 2021 08:44:09 +0000 - rev 567193
Push 38198 by nerli@mozilla.com at Fri, 12 Feb 2021 16:21:58 +0000
Bug 1686652 - Make the wormhole cleverer. r=rhunt This introduces cleaner logic around selecting the SIMD wormhole. The large comment block in WasmConstants.h explains it in full, but in summary this is what happens: - Under some circumstances, an options bag passed to the wasm compilation functions is recognized, and an option in that bag can request simd + the simd wormhole for the compilation in question, to wit, `{simdWormhole:true}`. - In nightly and early betas, the switch j.o.wasm_simd_wormhole can be set to force recognition of the options bag. - Privileged content also gets to force recogntion of the options bag (simply by being privileged). The definition of privileged content is TBD in this patch; there is a placeholder. Thus some of our ongoing experiments can request the use of simd and the simd wormhole even in release browsers, without risking exposing this functionality to the web until it's ready. Differential Revision: https://phabricator.services.mozilla.com/D103694
6c5025b25cde2534545e4d13d84800fe4b7ae29a: Bug 1686652 - Clean up SIMD metadata and features. r=rhunt
Lars T Hansen <lhansen@mozilla.com> - Fri, 12 Feb 2021 08:44:09 +0000 - rev 567192
Push 38198 by nerli@mozilla.com at Fri, 12 Feb 2021 16:21:58 +0000
Bug 1686652 - Clean up SIMD metadata and features. r=rhunt This just tidies up the wormhole switch, introducing a getter for it on the moduleEnv. As a drive-by fix, the v128Enabled switch in the code metadata is removed, since nobody's using it. (At least I think so. It does not seem to be part of anything we use to determine whether cached code is valid, for example.) Differential Revision: https://phabricator.services.mozilla.com/D103693
038677ec0ae1b2d1eb5ced61911eba658c6e740e: Bug 1690817 - Update wat to 1.0.34 r=rhunt
Yury Delendik <ydelendik@mozilla.com> - Fri, 05 Feb 2021 02:31:10 +0000 - rev 566138
Push 38176 by apavel@mozilla.com at Sat, 06 Feb 2021 09:42:43 +0000
Bug 1690817 - Update wat to 1.0.34 r=rhunt Differential Revision: https://phabricator.services.mozilla.com/D104072
0ece6be486a7a9f46e55417ee2540717f3cf3753: Bug 1335652 - wasm exceptions part 16: fix x86 crashes in wasm throw stub r=rhunt
Asumu Takikawa <asumu@igalia.com> - Fri, 05 Feb 2021 06:48:33 +0000 - rev 566105
Push 38175 by malexandru@mozilla.com at Fri, 05 Feb 2021 21:39:46 +0000
Bug 1335652 - wasm exceptions part 16: fix x86 crashes in wasm throw stub r=rhunt Fixes incorrect parameter passing on the stack for a call to WasmHandleThrow in the wasm throw stub. Differential Revision: https://phabricator.services.mozilla.com/D104120
e8d905cabbdbcf20314f7d9e36500b1b01655197: Bug 1690510 - fix unused definition when wasm exceptions are off r=rhunt
Asumu Takikawa <asumu@igalia.com> - Thu, 04 Feb 2021 04:02:04 +0000 - rev 565951
Push 38171 by apavel@mozilla.com at Thu, 04 Feb 2021 16:08:00 +0000
Bug 1690510 - fix unused definition when wasm exceptions are off r=rhunt This patch fixes release/beta builds where the compile flag for Wasm exceptions are turned off. Differential Revision: https://phabricator.services.mozilla.com/D103935
33f7edb2c121bf49f3f1863777b81f4ee24749db: Bug 1335652 - wasm exceptions part 15: Baseline implementation r=rhunt
Asumu Takikawa <asumu@igalia.com> - Wed, 03 Feb 2021 04:52:57 +0000 - rev 565818
Push 38166 by smolnar@mozilla.com at Wed, 03 Feb 2021 09:31:46 +0000
Bug 1335652 - wasm exceptions part 15: Baseline implementation r=rhunt Implement compilation for the core Wasm exception instruction in the Baseline compiler. Also adds evaluation tests. Differential Revision: https://phabricator.services.mozilla.com/D101138
3c0b8d1a9c6abd2b9239dd3f59cd362a6edaa17b: Bug 1335652 - wasm exceptions part 14: disallow exns with reftypes for now r=rhunt
Asumu Takikawa <asumu@igalia.com> - Wed, 03 Feb 2021 04:45:15 +0000 - rev 565817
Push 38166 by smolnar@mozilla.com at Wed, 03 Feb 2021 09:31:46 +0000
Bug 1335652 - wasm exceptions part 14: disallow exns with reftypes for now r=rhunt Disallows exception types containing a reference type for the throw and catch instructions temporarily until support for this is added. Differential Revision: https://phabricator.services.mozilla.com/D102829
3659f7375613b0fb795921d6fd630ad84d7be90a: Bug 1335652 - wasm exceptions part 13: add instance methods for exception handling r=rhunt
Asumu Takikawa <asumu@igalia.com> - Wed, 03 Feb 2021 04:31:41 +0000 - rev 565814
Push 38166 by smolnar@mozilla.com at Wed, 03 Feb 2021 09:31:46 +0000
Bug 1335652 - wasm exceptions part 13: add instance methods for exception handling r=rhunt Add Wasm instance methods that handle exception object allocation, preparing to throw an exception, and finding the index corresponding to a thrown exception object. Differential Revision: https://phabricator.services.mozilla.com/D101137
0d79003d2bab8f54911d8bf7780307ab0d466895: Bug 1335652 - wasm exceptions part 12: stack walking for exceptions r=rhunt
Asumu Takikawa <asumu@igalia.com> - Wed, 03 Feb 2021 04:29:32 +0000 - rev 565813
Push 38166 by smolnar@mozilla.com at Wed, 03 Feb 2021 09:31:46 +0000
Bug 1335652 - wasm exceptions part 12: stack walking for exceptions r=rhunt This patch adds support for walking the stack in order to find Wasm exception handlers to HandleThrow and adjusts support in JitFrames.cpp and WasmStubs.cpp to use this functionality. It also adds a wrapper class for wrapping JS values that get thrown to Wasm handlers (they are unwrapped on a Wasm `throw`). Differential Revision: https://phabricator.services.mozilla.com/D101136
81bb9db5e1392947bb8cb07f9f9a585574e7c931: Bug 1335652 - wasm exceptions part 11: add WasmExceptionReg. r=rhunt
Asumu Takikawa <asumu@igalia.com> - Wed, 03 Feb 2021 04:21:30 +0000 - rev 565812
Push 38166 by smolnar@mozilla.com at Wed, 03 Feb 2021 09:31:46 +0000
Bug 1335652 - wasm exceptions part 11: add WasmExceptionReg. r=rhunt Adds a WasmExceptionReg register definition in Assembler headers. This register is used to coordinate between exception throw and catch sites in Wasm. Differential Revision: https://phabricator.services.mozilla.com/D101135
201aaf2eb7e0bec692101a4b7bb9baecec4a60a4: Bug 1335652 - wasm exceptions part 10: add WebAssembly.RuntimeException r=rhunt
Asumu Takikawa <asumu@igalia.com> - Wed, 03 Feb 2021 04:21:07 +0000 - rev 565811
Push 38166 by smolnar@mozilla.com at Wed, 03 Feb 2021 09:31:46 +0000
Bug 1335652 - wasm exceptions part 10: add WebAssembly.RuntimeException r=rhunt This patch adds the WebAssembly.RuntimeException class in order to represent exceptions thrown from Wasm. When the JS API is finalized, this class may allow access to the thrown values from JS. Differential Revision: https://phabricator.services.mozilla.com/D101134
0b260a20b5834dc1122445d6b9e4f6de68dbf5b8: Bug 1335652 - wasm exceptions part 9: adjust ErrorObject to allow detection of traps. r=rhunt
Asumu Takikawa <asumu@igalia.com> - Wed, 03 Feb 2021 03:58:51 +0000 - rev 565808
Push 38166 by smolnar@mozilla.com at Wed, 03 Feb 2021 09:31:46 +0000
Bug 1335652 - wasm exceptions part 9: adjust ErrorObject to allow detection of traps. r=rhunt This patch extends ErrorObject so that errors that originated from Wasm traps can be distinguished in the VM from other kinds of errors. This is used to correctly implement the catching of JS exceptions in Wasm code. Differential Revision: https://phabricator.services.mozilla.com/D101133
e708372efade6fbc00b3e1dc49cfa4a167c9cb72: Bug 1335652 - wasm exceptions part 8: add try notes r=rhunt
Asumu Takikawa <asumu@igalia.com> - Wed, 03 Feb 2021 03:57:52 +0000 - rev 565807
Push 38166 by smolnar@mozilla.com at Wed, 03 Feb 2021 09:31:46 +0000
Bug 1335652 - wasm exceptions part 8: add try notes r=rhunt This patch adds a WasmTryNote data structure that is similar to JS try notes, in that they note the code ranges that correspond to try blocks. These are used in a subsequent patch to find catch handler code to throw to. The Assembler additions are there primarily to allow the code generator in Ion to easily access the try notes in a future patch. Differential Revision: https://phabricator.services.mozilla.com/D101132
f0c9ad1ae6fee2e51e9074881a22464165e4d4f0: Bug 1687654 - Update an error message in the multi-table test. r=rhunt
Lars T Hansen <lhansen@mozilla.com> - Wed, 20 Jan 2021 17:36:19 +0000 - rev 563963
Push 38124 by ncsoregi@mozilla.com at Thu, 21 Jan 2021 03:22:45 +0000
Bug 1687654 - Update an error message in the multi-table test. r=rhunt The parsing of table indices has changed a little and an error message needs to be updated. Depends on D102399 Differential Revision: https://phabricator.services.mozilla.com/D102400