- 30 Jun, 2021 1 commit
-
-
Clemens Backes authored
There currently is no way to enforce explicit bounds checks if the embedder installed the signal handler for wasm trap handling (queried via {trap_handler::IsTrapHandlerEnabled()}). This CL adds a respective flag and makes all compilation emit explicit bounds checks if it is disabled. R=ahaas@chromium.org Bug: v8:11926 Change-Id: Ie19faab1766d3105f3c22cb4470c0f15398f1d09 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2989129Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#75453}
-
- 17 Dec, 2020 1 commit
-
-
Clemens Backes authored
The opcodes were renamed long ago, but the macros were still using the old syntax. This CL was created using the following command (for WASM_GET_LOCAL, WASM_SET_LOCAL, and WASM_TEE_LOCAL): ag -l WASM_GET_LOCAL | xargs -L 1 sed -i 's/\bWASM_SET_LOCAL\b/WASM_LOCAL_SET/g' R=ahaas@chromium.org Bug: v8:11074 Change-Id: I0018bea185030be29344e66e59706fed183cc2f1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2595446Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71835}
-
- 06 Aug, 2020 1 commit
-
-
Clemens Backes authored
The interpreter is not an execution tier in production any more. It's only used in tests. Thus, remove {ExecutionTier::kInterpreter} and instead add a {TestExecutionTier} that still has {kInterpreter}. If needed (in {TestingModuleBuilder::execution_tier()}), we translate back from {TestExecutionTier} to {ExecutionTier} (for {kLiftoff} and {kTurboFan} only). The {TraceMemoryOperation} method, which is shared between interpreter and production code, now receives a {base::Optional<ExecutionTier>}, and we will just pass en empty optional if called from the interpreter. R=thibaudm@chromium.org Bug: v8:10389 Change-Id: Ibe133b91e8dca6d6edbfaee5ffa0d7fe72ed6d64 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2335186Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#69260}
-
- 06 May, 2020 1 commit
-
-
Andreas Haas authored
This CL implements all variants of CompareExchange on arm. Implementing 64-bit CompareExchange on arm requires a lot of registers, with the additional constraint that the low-word register of new_value and result have to have an even register code, and that the corresponding high-word registers have a register code that is by one higher than the register code of the low-word register. This register allocation is achieved by assigning fixed registers to all values. R=clemensb@chromium.org, v8-arm-ports@googlegroups.com Bug: v8:10108 Change-Id: I2edfde15e80db0d45621a461793018d88e997431 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2172791 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#67592}
-
- 05 May, 2020 1 commit
-
-
Andreas Haas authored
The existing implementation needed uses of the outputs of an AtomicExchange to allocate registers for the result value. However, these uses are not guaranteed to exist. With this CL temp registers get allocated if the uses don't exist. R=gdeepti@chromium.org Bug: chromium:1077130 Change-Id: I058ee53b87c6e995c9f490f3aebbfdba69934f3c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2179503Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#67556}
-
- 12 Mar, 2020 1 commit
-
-
Andreas Haas authored
x64's cmpxchgl instruction does not zero-extend the register. The stale high word caused the difference in the results of the interpreter and Liftoff/TurboFan. R=clemensb@chromium.org CC=zhin@chromium.org Bug: chromium:1059529 Change-Id: I0fd440bee26e25b90b29533cfa9151e4d87754e3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2098726 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#66685}
-
- 04 Feb, 2020 1 commit
-
-
Andreas Haas authored
The instruction selector assumed for Word32AtomicPairCompareExchange nodes that if there exists a Projection(1) user, then there also exists a Projection(0) user. This, however, is not the case, because TurboFan eliminates unreachable nodes. The missing projection node lead to a failed DCHECK in the register allocator. With this CL we allocate the right registers for the existing projections, and allocate the other needed registers as temp registers. R=gdeepti@chromium.org Bug: v8:10140 Change-Id: Id50768c3cb712db5e0eb3b9dcd0a8a479e20953a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2030731Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#66122}
-
- 23 Jan, 2020 1 commit
-
-
Andreas Haas authored
The instruction selector assumed for Word32AtomicPairBinop nodes that if there exists a Projection(1) user, then there also exists a Projection(0) user. This, however, is not the case, because TurboFan eliminates unreachable nodes. The missing projection node lead to a failed DCHECK in the register allocator. With this CL we allocate the right registers for the existing projections, and allocate the other needed registers as temp registers. R=gdeepti@chromium.org Bug: v8:10140 Change-Id: I22331cae58f933e89dac6993fe3b21ff6502838a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2011829Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#65941}
-
- 22 Jan, 2020 1 commit
-
-
Andreas Haas authored
The instruction selector assumed for Word32AtomicPairLoad node that if there exists a Projection(1) user, then there also exists a Projection(0) user. This, however, is not the case, because TurboFan eliminates unreachable nodes. The missing projection node lead to a failed DCHECK in the register allocator. To fix the problem I use now the Word32AtomicPairLoad node directly to allocate the register. On ia32 I stop additionally to allocate unneeded temp registers. R=gdeepti@chromium.org CC=zhin@chromium.org Bug: chromium:1042379 Change-Id: I79bd9f3f4672e147246a71c32b7c9b4dbd79b17f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2002547 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#65912}
-
- 31 Jul, 2019 1 commit
-
-
Deepti Gandluri authored
Bug: v8:9536 Change-Id: Ie9c47493ab29f604d6e43ef318e08618ee527fc3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1728329Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#63012}
-
- 11 Apr, 2019 1 commit
-
-
Deepti Gandluri authored
Bug: chromium:925244 Change-Id: If9c00f85b1dece93057b541bf0fe1b0a05b81ceb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1565032 Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#60795}
-
- 01 Feb, 2019 1 commit
-
-
Clemens Hammacher authored
This CL changes the usage pattern from FOR_XXX_VALUES(i) { Use(*i); } to FOR_XXX_VALUES(i) { Use(i); } which is way more intuitive. Note that the replacement in the uses was done via regular expression, so it's purely mechanical. In two locations I removed unneeded braces around the macro, because they confused clang-format. I plan to do more cleanups (remove redundant assignments within the FOR_XXX_VALUES body) in a follow-up CL. R=mstarzinger@chromium.org Bug: v8:8562 Change-Id: I4329bfcf34e5b077d19b50f4204ceb3b4340fe61 Reviewed-on: https://chromium-review.googlesource.com/c/1449615 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#59287}
-
- 22 Jan, 2019 2 commits
-
-
Deepti Gandluri authored
Change-Id: Iac6aca817f1b96b80c7ebc46b4dcc098858a0ddd Reviewed-on: https://chromium-review.googlesource.com/c/1427661Reviewed-by: Adam Klein <adamk@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#59013}
-
Deepti Gandluri authored
Clusterfuzz generated test cases for narrow Load, CmpExchg nodes in which the index is a word64 expression. This was not handled correctly leading to a malformed graph. Use default lowering for all atomic narrow operations, and add reduced test cases in wasm cctests with the same sequence as the ones generated by binaryen for other I64Atomic operations as well. Change-Id: I50d63747b16a8f69289ca4e76547b325d84b22d3 Bug: chromium:921366, chromium:920120, chromium:900681 Reviewed-on: https://chromium-review.googlesource.com/c/1423177 Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#59012}
-
- 18 Sep, 2018 1 commit
-
-
Deepti Gandluri authored
Handle the case when one or both of the output nodes of an I64Atomic op are optimized, for code-gen instructions that use a set of fixed registers, use temp registers to ensure the registers are not clobbered. BUG:v8:6532 Change-Id: I52763c48d615cdf3ae8d754402b11da2df31a4a1 Reviewed-on: https://chromium-review.googlesource.com/1195910Reviewed-by: Bill Budge <bbudge@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#56004}
-
- 29 Aug, 2018 1 commit
-
-
Deepti Gandluri authored
The AtomicNarrow operations are currently used for wider 64-bit operations, that only operate on 32-bits of data or less (Ex:I64AtomicAdd8U). Removing these because this can be handled in int64-lowering by zeroing the higher order node. Explicitly zeroing these in code-gen is not required because - - The spec requires only the data exchange to be atomic, for narrow ops this uses only the low word. - The return values are not in memory, so are not visible to other workers/threads BUG:v8:6532 Change-Id: I90a795ab6c21c70cb096f59a137de653c9c6a178 Reviewed-on: https://chromium-review.googlesource.com/1194428Reviewed-by: Ben Titzer <titzer@chromium.org> Reviewed-by: Ben Smith <binji@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#55499}
-
- 21 Aug, 2018 1 commit
-
-
Ben L. Titzer authored
R=mstarzinger@chromium.org Change-Id: Iacdff28dd1383d77d7708de4ee22d9f2a77d872a Reviewed-on: https://chromium-review.googlesource.com/1183440 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#55284}
-
- 09 Aug, 2018 1 commit
-
-
Deepti Gandluri authored
Bug: v8:6532 Change-Id: I6391c3d5e86d2b04735e241a1e0549a170ab4852 Reviewed-on: https://chromium-review.googlesource.com/1164640Reviewed-by: Ben Titzer <titzer@chromium.org> Reviewed-by: Ben Smith <binji@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#55027}
-
- 02 Aug, 2018 1 commit
-
-
Deepti Gandluri authored
Bug: v8:6532 Change-Id: Ib486a1c0d80a14b778dde5ef6655e11d326b4c73 Reviewed-on: https://chromium-review.googlesource.com/1157068Reviewed-by: Bill Budge <bbudge@chromium.org> Reviewed-by: Ben Smith <binji@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#54852}
-
- 30 Jul, 2018 1 commit
-
-
Deepti Gandluri authored
Bug:v8:6532 Change-Id: Ie983fa561654f86597b8f45c5ce11f993846bfe6 Reviewed-on: https://chromium-review.googlesource.com/1145893 Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#54796}
-
- 10 Jul, 2018 3 commits
-
-
Aseem Garg authored
This is a reland of 5301cdc3 Original change's description: > [wasm] add 64 bit atomic ops to interpreter > > R=gdeepti@chromium.org > BUG=v8:6532 > > Change-Id: I532bf67f1631c692e12f9b054b29601a57b76f05 > Reviewed-on: https://chromium-review.googlesource.com/1130635 > Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> > Commit-Queue: Aseem Garg <aseemgarg@chromium.org> > Cr-Commit-Position: refs/heads/master@{#54365} Bug: v8:6532 Change-Id: I22af58646b898ee2f54ccb64467d9fb978a645c5 Reviewed-on: https://chromium-review.googlesource.com/1132155 Commit-Queue: Aseem Garg <aseemgarg@chromium.org> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#54369}
-
Aseem Garg authored
This reverts commit 5301cdc3. Reason for revert: Failing on mips Original change's description: > [wasm] add 64 bit atomic ops to interpreter > > R=gdeepti@chromium.org > BUG=v8:6532 > > Change-Id: I532bf67f1631c692e12f9b054b29601a57b76f05 > Reviewed-on: https://chromium-review.googlesource.com/1130635 > Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> > Commit-Queue: Aseem Garg <aseemgarg@chromium.org> > Cr-Commit-Position: refs/heads/master@{#54365} TBR=gdeepti@chromium.org,aseemgarg@chromium.org Change-Id: Id56d3bb1228b38b6e2ad29876ea78542658e8310 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6532 Reviewed-on: https://chromium-review.googlesource.com/1132154Reviewed-by: Aseem Garg <aseemgarg@chromium.org> Commit-Queue: Aseem Garg <aseemgarg@chromium.org> Cr-Commit-Position: refs/heads/master@{#54366}
-
Aseem Garg authored
R=gdeepti@chromium.org BUG=v8:6532 Change-Id: I532bf67f1631c692e12f9b054b29601a57b76f05 Reviewed-on: https://chromium-review.googlesource.com/1130635Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Aseem Garg <aseemgarg@chromium.org> Cr-Commit-Position: refs/heads/master@{#54365}
-
- 27 Apr, 2018 2 commits
-
-
Deepti Gandluri authored
Bug: v8:7704, v8:7570 Change-Id: I3543e101ba41b88710e4f5942929e4e128ef2a78 Reviewed-on: https://chromium-review.googlesource.com/1033356Reviewed-by: Eric Holk <eholk@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#52867}
-
Clemens Hammacher authored
Linkage-related methods were declared in wasm-compiler.h and implemented in wasm-linkage.cc. This required all users of e.g. wasm call descriptors to include the whole wasm compiler header. Also, some wasm linkage information is independent of turbofan and also used outside of the compiler directory. This CL splits off wasm-linkage.h (with minimal includes) and puts it in src/wasm. This allows to use that information without including compiler headers (will clean up several uses in follow-up CLs). R=mstarzinger@chromium.org, titzer@chromium.org Bug: v8:7570 Change-Id: Ifcae70b4ea7932cda30953b325c2b87c4176c598 Reviewed-on: https://chromium-review.googlesource.com/1013701Reviewed-by: Ben Titzer <titzer@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#52849}
-
- 16 Apr, 2018 1 commit
-
-
Vincent Belliard authored
First version which can compile a very basic code. Change-Id: I3b98412a5ca39a28f8fe5b60516b82c6981dd187 Reviewed-on: https://chromium-review.googlesource.com/993232 Commit-Queue: Vincent Belliard <vincent.belliard@arm.com> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#52622}
-
- 13 Apr, 2018 1 commit
-
-
Deepti Gandluri authored
- Add Implementation for I64Atomic{Load, Store, Exchange, CompareExchange} for supported MemTypes/Representations - Refactoring to simplify instruction selection - Enable tests for ARM64 Bug: v8:6532 Change-Id: I4c4a65fd3bbdc6955eda29d7e08d6eef29c55628 Reviewed-on: https://chromium-review.googlesource.com/1003225Reviewed-by: Martyn Capewell <martyn.capewell@arm.com> Reviewed-by: Bill Budge <bbudge@chromium.org> Reviewed-by: Ben Smith <binji@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#52598}
-
- 09 Apr, 2018 1 commit
-
-
Deepti Gandluri authored
Bug: v8:6532 Change-Id: I3840df75b745790aaa7e9dec7188adccc70627ce Reviewed-on: https://chromium-review.googlesource.com/998838Reviewed-by: Ben Smith <binji@chromium.org> Reviewed-by: Bill Budge <bbudge@chromium.org> Reviewed-by: Martyn Capewell <martyn.capewell@arm.com> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#52484}
-
- 27 Mar, 2018 1 commit
-
-
Deepti Gandluri authored
Bug:v8:6532 Change-Id: I62e62f6584d1d42dc8af713b874daafa1f8d4436 Reviewed-on: https://chromium-review.googlesource.com/969991Reviewed-by: Ben Smith <binji@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#52253}
-
- 07 Mar, 2018 1 commit
-
-
Deepti Gandluri authored
Bug:v8:6532 Change-Id: Ida865c9cc7c029cf070b24296f6ef7bb573b30c4 Reviewed-on: https://chromium-review.googlesource.com/947094Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Ben Smith <binji@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#51790}
-
- 03 Mar, 2018 1 commit
-
-
Mostyn Bramley-Moore authored
Followup to https://chromium-review.googlesource.com/c/v8/v8/+/923718 Bug: v8:6532 Change-Id: I4ed3dd94a59172a54cc5cb70730fdffba4efb383 Reviewed-on: https://chromium-review.googlesource.com/947942Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Mostyn Bramley-Moore <mostynb@vewd.com> Cr-Commit-Position: refs/heads/master@{#51715}
-
- 02 Mar, 2018 1 commit
-
-
Deepti Gandluri authored
Bug: v8:6532 Change-Id: I6fde1fd2cc5776628af4e8a92e9b9ec030b398f7 Reviewed-on: https://chromium-review.googlesource.com/923718Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Ben Smith <binji@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#51675}
-