searching for reviewer(lth)
f7d1df2061e77d556eb36fac6b87c629d12f4038: Bug 1585957 - Minimal support for mips64r6 r=lth
Radovan Birdic <radovan.birdic@rt-rk.com> - Mon, 07 Oct 2019 13:38:17 +0300 - rev 557841
Push 12169 by ffxbld-merge at Mon, 14 Oct 2019 16:59:29 +0000
Bug 1585957 - Minimal support for mips64r6 r=lth
273ad9e20dc72f08ddd0333c25d4936a5d4e793f: Bug 1582986 - Only compute a virtual memory limit if RLIMIT_AS is supported. r=lth
Ryan Hunt <rhunt@eqrion.net> - Thu, 26 Sep 2019 15:38:40 +0000 - rev 556476
Push 12169 by ffxbld-merge at Mon, 14 Oct 2019 16:59:29 +0000
Bug 1582986 - Only compute a virtual memory limit if RLIMIT_AS is supported. r=lth We could use RLIMIT_DATA here, but that seems to have slightly different semantics and it seems best to just stick to use RLIMIT_AS for this heuristic. Differential Revision: https://phabricator.services.mozilla.com/D47267
b07096708603406b9b305f3ad2c420f982e8d0cc: Bug 1562663 - P5 - Fix try failures; r=nika,lth
Tom Tung <shes050117@gmail.com> - Thu, 26 Sep 2019 13:28:21 +0000 - rev 556457
Push 12169 by ffxbld-merge at Mon, 14 Oct 2019 16:59:29 +0000
Bug 1562663 - P5 - Fix try failures; r=nika,lth Differential Revision: https://phabricator.services.mozilla.com/D46492
f6a917ec38b8973d9bfa708fae2b9a8044f8f999: Bug 1562663 - P4a - Deny sharing memery by default for DataClonePolicy; r=nika,lth
Tom Tung <shes050117@gmail.com> - Thu, 26 Sep 2019 13:27:25 +0000 - rev 556455
Push 12169 by ffxbld-merge at Mon, 14 Oct 2019 16:59:29 +0000
Bug 1562663 - P4a - Deny sharing memery by default for DataClonePolicy; r=nika,lth Differential Revision: https://phabricator.services.mozilla.com/D45187
b01aab238aa0293e21f204be90eea391e35c71ec: Bug 1561515 - Wasm: Add typed select instruction. r=lth
Ryan Hunt <rhunt@eqrion.net> - Wed, 25 Sep 2019 21:27:14 +0000 - rev 556334
Push 12169 by ffxbld-merge at Mon, 14 Oct 2019 16:59:29 +0000
Bug 1561515 - Wasm: Add typed select instruction. r=lth Issue: https://github.com/WebAssembly/reference-types/issues/42 Text: https://webassembly.github.io/reference-types/core/text/instructions.html#parametric-instructions Binary: https://webassembly.github.io/reference-types/core/binary/instructions.html#parametric-instructions This commit adds 'select t*'. The instruction is allowed to encode/decode multiple result types for compatibility with multi-value, but only one is currently supported. Differential Revision: https://phabricator.services.mozilla.com/D45866
7f894549b2877b0c44393a1957eafe092d92f727: Bug 1561515 - Wasm: Turn AstTernaryOperator into AstSelect. r=lth
Ryan Hunt <rhunt@eqrion.net> - Wed, 25 Sep 2019 21:27:05 +0000 - rev 556333
Push 12169 by ffxbld-merge at Mon, 14 Oct 2019 16:59:29 +0000
Bug 1561515 - Wasm: Turn AstTernaryOperator into AstSelect. r=lth NFC. The select operator will be given an array of result types, so this commit requisitions AstTernaryOperator to be a dedicated select ast node. There's no other uses of AstTernaryOperator, so this is just a rename. Differential Revision: https://phabricator.services.mozilla.com/D45865
c1a81d62ead5ea21db50b90dd116b73abbed4e03: Bug 1561513 - Wasm: Add bottom type and tweak validation algorithm. r=lth
Ryan Hunt <rhunt@eqrion.net> - Wed, 25 Sep 2019 21:54:56 +0000 - rev 556332
Push 12169 by ffxbld-merge at Mon, 14 Oct 2019 16:59:29 +0000
Bug 1561513 - Wasm: Add bottom type and tweak validation algorithm. r=lth This commit renames TVar to represent the new Bottom type introduced in the reference types spec. Issue: https://github.com/WebAssembly/reference-types/issues/42 The only observable spec change so far is in validation of br_table which requires that the operand type is a subtype of all label types. With a bottom type, this may allow more code to validate than before. Differential Revision: https://phabricator.services.mozilla.com/D46641
16bba4255fff3cc6b10f43fb82d6d5e126509077: Bug 1561513 - Wasm: Restrict existing select instruction to numeric types. r=lth
Ryan Hunt <rhunt@eqrion.net> - Wed, 25 Sep 2019 21:52:27 +0000 - rev 556331
Push 12169 by ffxbld-merge at Mon, 14 Oct 2019 16:59:29 +0000
Bug 1561513 - Wasm: Restrict existing select instruction to numeric types. r=lth Issue: https://github.com/WebAssembly/reference-types/issues/42 The existing select instruction contains no typing information. As more complicated types are added, we will need to infer the result type as the least upper bound of the operands. This may be a complicated operation, so we will restrict the existing untyped instruction to operate only on the MVP value types, and add a new select instruction with type information. Differential Revision: https://phabricator.services.mozilla.com/D45863
f5bc71d6ee11838d067fd128a4436153378d7c7f: Bug 1575153 part 2 - Remove AutoFlushICache infrastructure. r=tcampbell,lth
Jan de Mooij <jdemooij@mozilla.com> - Mon, 16 Sep 2019 15:06:29 +0000 - rev 554892
Push 12169 by ffxbld-merge at Mon, 14 Oct 2019 16:59:29 +0000
Bug 1575153 part 2 - Remove AutoFlushICache infrastructure. r=tcampbell,lth Depends on D45996 Differential Revision: https://phabricator.services.mozilla.com/D45997
90aeb73dadaf90adec6fce1d02fd1520b1d73704: Bug 1575153 part 1 - Flush ICache when making code executable. r=tcampbell,lth
Jan de Mooij <jdemooij@mozilla.com> - Mon, 16 Sep 2019 13:18:34 +0000 - rev 554891
Push 12169 by ffxbld-merge at Mon, 14 Oct 2019 16:59:29 +0000
Bug 1575153 part 1 - Flush ICache when making code executable. r=tcampbell,lth Flushing on mprotect is a lot simpler and it's easier to reason about correctness. The next patch will remove the AutoFlushICache infrastructure. Because mprotect is pretty expensive we've been moving away from code patching in perf-sensitive cases so I don't expect any serious regressions from this. (This patch could be optimized more, if needed, but it'd add more complexity.) Differential Revision: https://phabricator.services.mozilla.com/D45996
8830edfe87cd2e48619fe8d13f58b4ce674a9a9a: Bug 1507765 - Wasm: Use gc::SystemAddressBits() for determing whether we use huge memory. r=lth
Ryan Hunt <rhunt@eqrion.net> - Thu, 12 Sep 2019 12:40:25 +0000 - rev 554139
Push 12169 by ffxbld-merge at Mon, 14 Oct 2019 16:59:29 +0000
Bug 1507765 - Wasm: Use gc::SystemAddressBits() for determing whether we use huge memory. r=lth This commit uses gc::SystemAddressBits() to disable huge memory in low address space situations on process startup. I've tried to pick a conservative number here, but it may require some tuning. Some systems can limit the available virtual memory (e.g. ulimit -v) and this takes effect independently of gc::SystemAddressBits(). This commit uses 'getrlimit' to detect any limit, and if set uses this as another heuristic to disable huge memory. Additionally, this change requires a change to the initialization order of JS systems (Wasm <-> GC). Differential Revision: https://phabricator.services.mozilla.com/D42989
cbe50166fcf07817941f6e122bffc40aad7a2969: Bug 1507820: Pin HeapReg in Cranelift and use it as the heap base; r=lth
Benjamin Bouvier <benj@benj.me> - Wed, 11 Sep 2019 15:58:09 +0000 - rev 554103
Push 12169 by ffxbld-merge at Mon, 14 Oct 2019 16:59:29 +0000
Bug 1507820: Pin HeapReg in Cranelift and use it as the heap base; r=lth Differential Revision: https://phabricator.services.mozilla.com/D45017
68ce7502665cc3315572e828419e27553d5c9c86: Bug 1580518: Bump Cranelift to bdfd2adc6e2052319d04d9400122c5b49939f404; r=lth
Benjamin Bouvier <benj@benj.me> - Thu, 12 Sep 2019 06:56:09 +0000 - rev 554100
Push 12169 by ffxbld-merge at Mon, 14 Oct 2019 16:59:29 +0000
Bug 1580518: Bump Cranelift to bdfd2adc6e2052319d04d9400122c5b49939f404; r=lth Differential Revision: https://phabricator.services.mozilla.com/D45547
f0bfd885f8c5efe87142634e53bf0272a09af179: Bug 1579369 - Simplify handling of loop exit in baseline compiler r=lth
Andy Wingo <wingo@igalia.com> - Mon, 09 Sep 2019 11:51:48 +0000 - rev 553565
Push 12169 by ffxbld-merge at Mon, 14 Oct 2019 16:59:29 +0000
Bug 1579369 - Simplify handling of loop exit in baseline compiler r=lth Differential Revision: https://phabricator.services.mozilla.com/D44977
55715c676a88225379c56c94de4d153d8795c346: Bug 1507759 - Wasm: Print slightly better warning message for failing to reserve huge memory. r=lth
Ryan Hunt <rhunt@eqrion.net> - Fri, 30 Aug 2019 20:55:35 +0000 - rev 552785
Push 12169 by ffxbld-merge at Mon, 14 Oct 2019 16:59:29 +0000
Bug 1507759 - Wasm: Print slightly better warning message for failing to reserve huge memory. r=lth There's a lot more sophisticated things we could do here, but hopefully this improves the situation a little bit. Differential Revision: https://phabricator.services.mozilla.com/D42217
b1f7e414bcf04c6ff2baa43bedce71268fbe9788: Bug 1578031 - Correct return type for `GetOffsetGuardLimit`. r=lth
Ryan Hunt <rhunt@eqrion.net> - Tue, 03 Sep 2019 02:53:40 +0000 - rev 552633
Push 12169 by ffxbld-merge at Mon, 14 Oct 2019 16:59:29 +0000
Bug 1578031 - Correct return type for `GetOffsetGuardLimit`. r=lth Differential Revision: https://phabricator.services.mozilla.com/D44311
5cc570283ec269c9415a87b8e2a2a1d070c88b0e: Bug 1578031 - Correct return type for `GetOffsetGuardLimit`. r=lth
Ryan Hunt <rhunt@eqrion.net> - Mon, 02 Sep 2019 09:45:20 +0000 - rev 552467
Push 12169 by ffxbld-merge at Mon, 14 Oct 2019 16:59:29 +0000
Bug 1578031 - Correct return type for `GetOffsetGuardLimit`. r=lth Differential Revision: https://phabricator.services.mozilla.com/D44311
6cdaee1535a1b66ad6bd44c7f78ea77ccfdfa4ac: Bug 1578031 - Correct return type for `GetOffsetGuardLimit`. r=lth a=lizzard
Ryan Hunt <rhunt@eqrion.net> - Tue, 03 Sep 2019 02:53:40 +0000 - rev 551609
Push 11888 by btara@mozilla.com at Wed, 04 Sep 2019 21:04:46 +0000
Bug 1578031 - Correct return type for `GetOffsetGuardLimit`. r=lth a=lizzard Differential Revision: https://phabricator.services.mozilla.com/D44311
eee3b548e7cd4757d7611ec319aabcea8bf3c2df: Bug 1518210 - Wasm: Don't run --wasm-disable-huge-memory if the platform doesn't support huge memory. r=lth
Ryan Hunt <rhunt@eqrion.net> - Fri, 30 Aug 2019 20:55:27 +0000 - rev 551465
Push 11865 by btara@mozilla.com at Mon, 02 Sep 2019 08:54:37 +0000
Bug 1518210 - Wasm: Don't run --wasm-disable-huge-memory if the platform doesn't support huge memory. r=lth This commit extends the jit-test runner to support 'skip-variant-if: $FLAG, $COND', and uses this to not run '--wasm-disable-huge-memory' tests when the platform doesn't support huge memory. Differential Revision: https://phabricator.services.mozilla.com/D43670
f493fd84da04b4e32de28dd4da7c2cb544f4353a: Bug 1518210 - Wasm: Make wasm::IsHugeMemoryEnabled() a component of the BuildID for correct invalidation of cached code. r=lth
Ryan Hunt <rhunt@eqrion.net> - Fri, 30 Aug 2019 20:55:21 +0000 - rev 551464
Push 11865 by btara@mozilla.com at Mon, 02 Sep 2019 08:54:37 +0000
Bug 1518210 - Wasm: Make wasm::IsHugeMemoryEnabled() a component of the BuildID for correct invalidation of cached code. r=lth We can't deserialize code that doesn't contain bounds checks if we have dynamically switched to not using huge memory. This commit uses BuildID to invalidate cached code correctly. Differential Revision: https://phabricator.services.mozilla.com/D41870
5bd0f481e985190cf9bf6235d055d97a1378432b: Bug 1518210 - Wasm: Conditionally create huge memory's based on wasm::IsHugeMemoryEnabled. r=lth
Ryan Hunt <rhunt@eqrion.net> - Fri, 30 Aug 2019 20:53:50 +0000 - rev 551463
Push 11865 by btara@mozilla.com at Mon, 02 Sep 2019 08:54:37 +0000
Bug 1518210 - Wasm: Conditionally create huge memory's based on wasm::IsHugeMemoryEnabled. r=lth This commit modifies WasmMemoryObject, ArrayBufferObject, SharedArrayBufferObject to support conditionally using huge memory based on the global flag. The memory logic is fairly involved and entangled, making this change a bit tricky. The following changes were made: * Stopped conditionally compiling huge memory constants and prefixed them with `Huge` * Stopped conditionally compiling `ExtendBufferMapping` and `wasmMovingGrowToSize` * Renamed `CreateBuffer` to `CreateSpecificWasmBuffer` * For clarity * Moved maxSize clamping into `CreateSpecificWasmBuffer` * Lets us keep one callsite to `wasm::IsHugeMemoryEnabled` during memory creation * Moved mappedSize computation out of `RawbufT::Allocate` to `CreateSpecificWasmBuffer` * Lets us keep one callsite to `wasm::IsHugeMemoryEnabled` during memory creation * Moved `boundsCheckLimit` computation from `ArrayBufferObjectMaybeShared` to `WasmMemoryObject` * Lets WasmMemoryObject be responsible for knowing whether it is 'huge' or not * Added method to determine if a `WasmMemoryObject` is huge or not * Lets use know whether we support `movingGrow` or have a `boundsCheckLimit` * Refactored `WasmMemoryObject::grow` to have one callsite to `wasmMovingGrowToSize` * For clarity * Added release assert in `Module::instantiateMemory` * Ensures we have a huge memory or bounds checks if needed Differential Revision: https://phabricator.services.mozilla.com/D41869
47e5adb5ad3137edae7d39b84f74d3d748e734ef: Bug 1518210 - Wasm: Conditionally compile bounds checks based on wasm::IsHugeMemoryEnabled. r=lth
Ryan Hunt <rhunt@eqrion.net> - Fri, 30 Aug 2019 03:17:29 +0000 - rev 551462
Push 11865 by btara@mozilla.com at Mon, 02 Sep 2019 08:54:37 +0000
Bug 1518210 - Wasm: Conditionally compile bounds checks based on wasm::IsHugeMemoryEnabled. r=lth This commit allows us to conditionally compile bounds checks based on runtime support for huge memory. New flags to CompileArgs and CompilerEnvironment are added for whether we are using huge memory or not, and computed based on the global flag. Differential Revision: https://phabricator.services.mozilla.com/D41868
217c5f81229668bd561ad67f50888282f2134658: Bug 1518210 - Wasm: Rename WASM_HUGE_MEMORY to WASM_SUPPORTS_HUGE_MEMORY. r=lth
Ryan Hunt <rhunt@eqrion.net> - Fri, 30 Aug 2019 03:17:31 +0000 - rev 551461
Push 11865 by btara@mozilla.com at Mon, 02 Sep 2019 08:54:37 +0000
Bug 1518210 - Wasm: Rename WASM_HUGE_MEMORY to WASM_SUPPORTS_HUGE_MEMORY. r=lth To highlight that WASM_HUGE_MEMORY doesn't imply we are using huge memory, this commit renames the #define. Most usages of WASM_HUGE_MEMORY are not updated, as they will be removed in later commits. Differential Revision: https://phabricator.services.mozilla.com/D41867
255a6d989d91996737c90571c270af983a8134d9: Bug 1518210 - Wasm: Add pref/flag boilerplate for making WASM_HUGE_MEMORY a runtime decision. r=lth
Ryan Hunt <rhunt@eqrion.net> - Fri, 30 Aug 2019 03:17:33 +0000 - rev 551460
Push 11865 by btara@mozilla.com at Mon, 02 Sep 2019 08:54:37 +0000
Bug 1518210 - Wasm: Add pref/flag boilerplate for making WASM_HUGE_MEMORY a runtime decision. r=lth This commit is the boilerplate for making WASM_HUGE_MEMORY a runtime decision. Because WasmModule's can be passed across threads with `postMessage`, we need to make this decision once per process. The support for this kind of flag seems ad-hoc, so I stubbed in a global flag in WasmProcess. A new 'javascript.options.wasm_disable_huge_memory' pref and '--disable-wasm-huge-memory' JS shell flag are added. These have no effect if the current platform doesn't support huge memory. Tests and fuzzing flags are modified to also test with these new flags. Differential Revision: https://phabricator.services.mozilla.com/D41866
1df22476f295b752a42881f77dc7f153583eb320: Bug 1518210 - Wasm: Bounds checking support for ARM64. r=lth
Ryan Hunt <rhunt@eqrion.net> - Fri, 30 Aug 2019 03:17:37 +0000 - rev 551458
Push 11865 by btara@mozilla.com at Mon, 02 Sep 2019 08:54:37 +0000
Bug 1518210 - Wasm: Bounds checking support for ARM64. r=lth The only observed change needed to get bounds checking working on ARM64 was to implement `wasmBoundsCheck` in MacroAssembler-arm64. ARM64 doesn't support predicated instructions like ARM32, so to support spectre mitigations `wasmBoundsCheck` emits a 'csel' instruction. I'm not familiar with how ARM performs speculative execution or how spidermonkey mitigates it, so this was only a guess. Differential Revision: https://phabricator.services.mozilla.com/D41864
fcc67013b556f2d106996137060c8604c8a03804: Bug 1518210 - Wasm: Bounds checking support for x64. r=lth
Ryan Hunt <rhunt@eqrion.net> - Fri, 30 Aug 2019 03:17:39 +0000 - rev 551457
Push 11865 by btara@mozilla.com at Mon, 02 Sep 2019 08:54:37 +0000
Bug 1518210 - Wasm: Bounds checking support for x64. r=lth x86_64 can re-use MacroAssembler-x86-shared for its wasmBoundsCheck, and so it doesn't require any new assembler code. It does require a small baseline compiler change to ensure that TlsData is loaded if we are going to do a bounds check. I tested this commit with a x64 try run and manually disabling WASM_HUGE_MEMORY. Differential Revision: https://phabricator.services.mozilla.com/D41863
9e00286ac2a6b8953e216dbf904fa2aa5914853f: Bug 1577565 - Fix patchNopToCall and patchCallToNop to flush the icache on ARM and MIPS. r=lth
Jan de Mooij <jdemooij@mozilla.com> - Fri, 30 Aug 2019 12:17:43 +0000 - rev 551378
Push 11865 by btara@mozilla.com at Mon, 02 Sep 2019 08:54:37 +0000
Bug 1577565 - Fix patchNopToCall and patchCallToNop to flush the icache on ARM and MIPS. r=lth The ARM64 code was already doing this correctly. This also affects Wasm debugger breakpoints but it's not clear to me why fuzzing didn't find the same issue there. We are considering doing icache flushing on mprotect, it would eliminate these issues. Differential Revision: https://phabricator.services.mozilla.com/D44140
6e2e9274465d755271a5c1ffc32e1a42a608d879: Bug 1518210 - Wasm: Don't run --wasm-disable-huge-memory if the platform doesn't support huge memory. r=lth
Ryan Hunt <rhunt@eqrion.net> - Fri, 30 Aug 2019 02:34:10 +0000 - rev 551301
Push 11865 by btara@mozilla.com at Mon, 02 Sep 2019 08:54:37 +0000
Bug 1518210 - Wasm: Don't run --wasm-disable-huge-memory if the platform doesn't support huge memory. r=lth This commit extends the jit-test runner to support 'skip-variant-if: $FLAG, $COND', and uses this to not run '--wasm-disable-huge-memory' tests when the platform doesn't support huge memory. Differential Revision: https://phabricator.services.mozilla.com/D43670
39fc18ada840d9de69c45ca8484361a58ce0449b: Bug 1518210 - Wasm: Make wasm::IsHugeMemoryEnabled() a component of the BuildID for correct invalidation of cached code. r=lth
Ryan Hunt <rhunt@eqrion.net> - Fri, 30 Aug 2019 02:33:56 +0000 - rev 551300
Push 11865 by btara@mozilla.com at Mon, 02 Sep 2019 08:54:37 +0000
Bug 1518210 - Wasm: Make wasm::IsHugeMemoryEnabled() a component of the BuildID for correct invalidation of cached code. r=lth We can't deserialize code that doesn't contain bounds checks if we have dynamically switched to not using huge memory. This commit uses BuildID to invalidate cached code correctly. Differential Revision: https://phabricator.services.mozilla.com/D41870
b88d66dddefff7b557143585fb73f2cf9d3c6648: Bug 1518210 - Wasm: Conditionally create huge memory's based on wasm::IsHugeMemoryEnabled. r=lth
Ryan Hunt <rhunt@eqrion.net> - Fri, 30 Aug 2019 02:38:20 +0000 - rev 551299
Push 11865 by btara@mozilla.com at Mon, 02 Sep 2019 08:54:37 +0000
Bug 1518210 - Wasm: Conditionally create huge memory's based on wasm::IsHugeMemoryEnabled. r=lth This commit modifies WasmMemoryObject, ArrayBufferObject, SharedArrayBufferObject to support conditionally using huge memory based on the global flag. The memory logic is fairly involved and entangled, making this change a bit tricky. The following changes were made: * Stopped conditionally compiling huge memory constants and prefixed them with `Huge` * Stopped conditionally compiling `ExtendBufferMapping` and `wasmMovingGrowToSize` * Renamed `CreateBuffer` to `CreateSpecificWasmBuffer` * For clarity * Moved maxSize clamping into `CreateSpecificWasmBuffer` * Lets us keep one callsite to `wasm::IsHugeMemoryEnabled` during memory creation * Moved mappedSize computation out of `RawbufT::Allocate` to `CreateSpecificWasmBuffer` * Lets us keep one callsite to `wasm::IsHugeMemoryEnabled` during memory creation * Moved `boundsCheckLimit` computation from `ArrayBufferObjectMaybeShared` to `WasmMemoryObject` * Lets WasmMemoryObject be responsible for knowing whether it is 'huge' or not * Added method to determine if a `WasmMemoryObject` is huge or not * Lets use know whether we support `movingGrow` or have a `boundsCheckLimit` * Refactored `WasmMemoryObject::grow` to have one callsite to `wasmMovingGrowToSize` * For clarity * Added release assert in `Module::instantiateMemory` * Ensures we have a huge memory or bounds checks if needed Differential Revision: https://phabricator.services.mozilla.com/D41869
40e3f38af193cf11426ed48d89780c1768deb05d: Bug 1518210 - Wasm: Conditionally compile bounds checks based on wasm::IsHugeMemoryEnabled. r=lth
Ryan Hunt <rhunt@eqrion.net> - Fri, 30 Aug 2019 02:33:27 +0000 - rev 551298
Push 11865 by btara@mozilla.com at Mon, 02 Sep 2019 08:54:37 +0000
Bug 1518210 - Wasm: Conditionally compile bounds checks based on wasm::IsHugeMemoryEnabled. r=lth This commit allows us to conditionally compile bounds checks based on runtime support for huge memory. New flags to CompileArgs and CompilerEnvironment are added for whether we are using huge memory or not, and computed based on the global flag. Differential Revision: https://phabricator.services.mozilla.com/D41868
777aa22c9e8a19fc1df9e575db3b46702805bf23: Bug 1518210 - Wasm: Rename WASM_HUGE_MEMORY to WASM_SUPPORTS_HUGE_MEMORY. r=lth
Ryan Hunt <rhunt@eqrion.net> - Fri, 30 Aug 2019 02:33:13 +0000 - rev 551297
Push 11865 by btara@mozilla.com at Mon, 02 Sep 2019 08:54:37 +0000
Bug 1518210 - Wasm: Rename WASM_HUGE_MEMORY to WASM_SUPPORTS_HUGE_MEMORY. r=lth To highlight that WASM_HUGE_MEMORY doesn't imply we are using huge memory, this commit renames the #define. Most usages of WASM_HUGE_MEMORY are not updated, as they will be removed in later commits. Differential Revision: https://phabricator.services.mozilla.com/D41867
eb3fbf8bfb2b344b83c483a35f221b61bfcc76e2: Bug 1518210 - Wasm: Add pref/flag boilerplate for making WASM_HUGE_MEMORY a runtime decision. r=lth
Ryan Hunt <rhunt@eqrion.net> - Fri, 30 Aug 2019 02:36:32 +0000 - rev 551296
Push 11865 by btara@mozilla.com at Mon, 02 Sep 2019 08:54:37 +0000
Bug 1518210 - Wasm: Add pref/flag boilerplate for making WASM_HUGE_MEMORY a runtime decision. r=lth This commit is the boilerplate for making WASM_HUGE_MEMORY a runtime decision. Because WasmModule's can be passed across threads with `postMessage`, we need to make this decision once per process. The support for this kind of flag seems ad-hoc, so I stubbed in a global flag in WasmProcess. A new 'javascript.options.wasm_disable_huge_memory' pref and '--disable-wasm-huge-memory' JS shell flag are added. These have no effect if the current platform doesn't support huge memory. Tests and fuzzing flags are modified to also test with these new flags. Differential Revision: https://phabricator.services.mozilla.com/D41866
12ea41537e05b07fccf665e4fe69d692804b5b70: Bug 1518210 - Wasm: Bounds checking support for ARM64. r=lth
Ryan Hunt <rhunt@eqrion.net> - Fri, 30 Aug 2019 02:35:42 +0000 - rev 551294
Push 11865 by btara@mozilla.com at Mon, 02 Sep 2019 08:54:37 +0000
Bug 1518210 - Wasm: Bounds checking support for ARM64. r=lth The only observed change needed to get bounds checking working on ARM64 was to implement `wasmBoundsCheck` in MacroAssembler-arm64. ARM64 doesn't support predicated instructions like ARM32, so to support spectre mitigations `wasmBoundsCheck` emits a 'csel' instruction. I'm not familiar with how ARM performs speculative execution or how spidermonkey mitigates it, so this was only a guess. Differential Revision: https://phabricator.services.mozilla.com/D41864
4c8fe76ad293573a6a0e9eac934b99028e6da20d: Bug 1518210 - Wasm: Bounds checking support for x64. r=lth
Ryan Hunt <rhunt@eqrion.net> - Fri, 30 Aug 2019 02:32:21 +0000 - rev 551293
Push 11865 by btara@mozilla.com at Mon, 02 Sep 2019 08:54:37 +0000
Bug 1518210 - Wasm: Bounds checking support for x64. r=lth x86_64 can re-use MacroAssembler-x86-shared for its wasmBoundsCheck, and so it doesn't require any new assembler code. It does require a small baseline compiler change to ensure that TlsData is loaded if we are going to do a bounds check. I tested this commit with a x64 try run and manually disabling WASM_HUGE_MEMORY. Differential Revision: https://phabricator.services.mozilla.com/D41863
fb03ac72bc47c9b4bd97e3277ab0cee02026aa7f: Bug 1577065 - Fix an implicit-conversion-changes-value warning with new-enough clang in AtomicsObject.cpp by explicitly converting. r=lth
Jeff Walden <jwalden@mit.edu> - Wed, 28 Aug 2019 06:44:50 +0000 - rev 550958
Push 11858 by rmaries@mozilla.com at Thu, 29 Aug 2019 15:29:30 +0000
Bug 1577065 - Fix an implicit-conversion-changes-value warning with new-enough clang in AtomicsObject.cpp by explicitly converting. r=lth Differential Revision: https://phabricator.services.mozilla.com/D43706
feec09fd96eb7c212844f4dce66e78864ca36606: Bug 1576567 part 2 - Allow using nopPatchableToCall outside Wasm code and fix non-sensical return value. r=lth
Jan de Mooij <jdemooij@mozilla.com> - Wed, 28 Aug 2019 06:35:24 +0000 - rev 550828
Push 11858 by rmaries@mozilla.com at Thu, 29 Aug 2019 15:29:30 +0000
Bug 1576567 part 2 - Allow using nopPatchableToCall outside Wasm code and fix non-sensical return value. r=lth Depends on D43398 Differential Revision: https://phabricator.services.mozilla.com/D43413
dae1e9839adce6f2129c3593b2c2991dd34a0f35: Bug 1576567 part 1 - Optimize table address loads in interpreter code. r=lth
Jan de Mooij <jdemooij@mozilla.com> - Wed, 28 Aug 2019 06:30:56 +0000 - rev 550827
Push 11858 by rmaries@mozilla.com at Thu, 29 Aug 2019 15:29:30 +0000
Bug 1576567 part 1 - Optimize table address loads in interpreter code. r=lth This affects the following platforms: * x64: use a RIP-relative LEA instead of an immediate MOV. This saves a few hundred bytes total and seems to be a little bit faster on interpreter micro-benchmarks. * arm64: use ADR instead of LDR. Seems to be a measurable speedup running Speedometer on Pixel 2 with the JITs disabled. Differential Revision: https://phabricator.services.mozilla.com/D43398
9fe58ec0d824921cb5c8e0589427c8b6ab84be73: Bug 1575470 - Move icache flushing code to Architecture-*.h/cpp files. r=tcampbell,lth
Jan de Mooij <jdemooij@mozilla.com> - Thu, 22 Aug 2019 13:37:03 +0000 - rev 549936
Push 11848 by ffxbld-merge at Mon, 26 Aug 2019 19:26:25 +0000
Bug 1575470 - Move icache flushing code to Architecture-*.h/cpp files. r=tcampbell,lth This makes it easier to see the implementation for a particular platform without getting confused by code for other platforms. The SPARC code was deleted because we don't have a JIT backend for it anymore. Differential Revision: https://phabricator.services.mozilla.com/D42804
3eb184cc45d59eba61cd048e98559adc766b81ac: Bug 1574002 - Add `wasmDis(func)` testing function for viewing disassembly of Wasm exported function. r=lth
Ryan Hunt <rhunt@eqrion.net> - Tue, 20 Aug 2019 15:43:02 +0000 - rev 549518
Push 11848 by ffxbld-merge at Mon, 26 Aug 2019 19:26:25 +0000
Bug 1574002 - Add `wasmDis(func)` testing function for viewing disassembly of Wasm exported function. r=lth Differential Revision: https://phabricator.services.mozilla.com/D42224
b4ca080d3c7b18d86bbc0128e490194bc5f152b0: Bug 1574002 - Use jit::Disassemble for Cranelift JitSpew. r=lth
Ryan Hunt <rhunt@eqrion.net> - Tue, 20 Aug 2019 15:42:45 +0000 - rev 549517
Push 11848 by ffxbld-merge at Mon, 26 Aug 2019 19:26:25 +0000
Bug 1574002 - Use jit::Disassemble for Cranelift JitSpew. r=lth Differential Revision: https://phabricator.services.mozilla.com/D42223
6d1f82ea2d92391043ee3f4bcbc916fc21efad94: Bug 1574002 - Add jit::Disassemble as a wrapper around existing in-tree disassemblers. r=lth
Ryan Hunt <rhunt@eqrion.net> - Tue, 20 Aug 2019 15:42:32 +0000 - rev 549516
Push 11848 by ffxbld-merge at Mon, 26 Aug 2019 19:26:25 +0000
Bug 1574002 - Add jit::Disassemble as a wrapper around existing in-tree disassemblers. r=lth Differential Revision: https://phabricator.services.mozilla.com/D42052
7ed2f4ec0cc2bd2aed0318ed20e17e767e4e91d9: Bug 1574002 - Build Zydis even when not using Cranelift. r=lth
Ryan Hunt <rhunt@eqrion.net> - Tue, 20 Aug 2019 15:42:25 +0000 - rev 549515
Push 11848 by ffxbld-merge at Mon, 26 Aug 2019 19:26:25 +0000
Bug 1574002 - Build Zydis even when not using Cranelift. r=lth The #ifdef(JS_JITSPEW) restriction is still kept. Differential Revision: https://phabricator.services.mozilla.com/D42222
6eccfe79d02f025ada20d121eda69cf0b7921f16: Bug 1555894 - Only enable cranelift on JS standalone builds. r=lth,nalexander
Mike Hommey <mh+mozilla@glandium.org> - Mon, 19 Aug 2019 13:12:25 +0000 - rev 549307
Push 11848 by ffxbld-merge at Mon, 26 Aug 2019 19:26:25 +0000
Bug 1555894 - Only enable cranelift on JS standalone builds. r=lth,nalexander Differential Revision: https://phabricator.services.mozilla.com/D42261
ac0c1beee54f49efc49237a994acc7c63bf6fb7f: Bug 1574002 - Add `wasmDis(func)` testing function for viewing disassembly of Wasm exported function. r=lth
Ryan Hunt <rhunt@eqrion.net> - Mon, 19 Aug 2019 17:56:30 +0000 - rev 549275
Push 11848 by ffxbld-merge at Mon, 26 Aug 2019 19:26:25 +0000
Bug 1574002 - Add `wasmDis(func)` testing function for viewing disassembly of Wasm exported function. r=lth Differential Revision: https://phabricator.services.mozilla.com/D42224
3807af5c121a9d3871f9dd97876d73d622fc6044: Bug 1574002 - Use jit::Disassemble for Cranelift JitSpew. r=lth
Ryan Hunt <rhunt@eqrion.net> - Mon, 19 Aug 2019 17:52:58 +0000 - rev 549274
Push 11848 by ffxbld-merge at Mon, 26 Aug 2019 19:26:25 +0000
Bug 1574002 - Use jit::Disassemble for Cranelift JitSpew. r=lth Differential Revision: https://phabricator.services.mozilla.com/D42223
9f6b91a72f1f2ed9cbd6ea9da771d280bd90d30d: Bug 1574002 - Add jit::Disassemble as a wrapper around existing in-tree disassemblers. r=lth
Ryan Hunt <rhunt@eqrion.net> - Mon, 19 Aug 2019 17:57:42 +0000 - rev 549273
Push 11848 by ffxbld-merge at Mon, 26 Aug 2019 19:26:25 +0000
Bug 1574002 - Add jit::Disassemble as a wrapper around existing in-tree disassemblers. r=lth Differential Revision: https://phabricator.services.mozilla.com/D42052
7e315ddebb02aef8cd9550a970a0a1bf375ffac4: Bug 1574002 - Build Zydis even when not using Cranelift. r=lth
Ryan Hunt <rhunt@eqrion.net> - Mon, 19 Aug 2019 17:57:42 +0000 - rev 549272
Push 11848 by ffxbld-merge at Mon, 26 Aug 2019 19:26:25 +0000
Bug 1574002 - Build Zydis even when not using Cranelift. r=lth The #ifdef(JS_JITSPEW) restriction is still kept. Differential Revision: https://phabricator.services.mozilla.com/D42222
48a97128dbb433e30b17033c1c91c55e76813d98: Bug 1573550: Cranelift: use the Windows calling convention on Windows; r=lth
Benjamin Bouvier <benj@benj.me> - Mon, 19 Aug 2019 10:22:41 +0000 - rev 549216
Push 11848 by ffxbld-merge at Mon, 26 Aug 2019 19:26:25 +0000
Bug 1573550: Cranelift: use the Windows calling convention on Windows; r=lth Differential Revision: https://phabricator.services.mozilla.com/D41944
3b5ed7e00e3b1fcfdcabfaea7336a3989ba47143: Bug 1573817: Remove unused parameter in EffectiveCores; r=lth
Benjamin Bouvier <benj@benj.me> - Wed, 14 Aug 2019 18:54:29 +0000 - rev 548976
Push 11848 by ffxbld-merge at Mon, 26 Aug 2019 19:26:25 +0000
Bug 1573817: Remove unused parameter in EffectiveCores; r=lth Differential Revision: https://phabricator.services.mozilla.com/D41966