- 14 Jan, 2019 1 commit
-
-
Sven Sauleau authored
It removes the assertion that caused the bug report by introducing a new trampoline (WasmBigIntToI64) for the conversion code stub between a Bigint object and a Wasm i64 BigIntToI64). The tests were updated to cover calling the stub from a Wasm callsite. Bug: v8:8625 Change-Id: I55891001cfa72f6f2849792293b43bbb54147f1a Reviewed-on: https://chromium-review.googlesource.com/c/1405028 Commit-Queue: Sven Sauleau <ssauleau@igalia.com> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#58767}
-
- 11 Dec, 2018 1 commit
-
-
Sven Sauleau authored
Uses the JavaScript BigInt Object to represent Wasm's 64bits integers. Attention, 32 bits architectures are not supported yet. Bug: v8:7741 Change-Id: I28b718fa567bca5103b2f38a879049cd20a46f12 Reviewed-on: https://chromium-review.googlesource.com/c/1355144 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#58152}
-
- 30 Nov, 2018 1 commit
-
-
Aseem Garg authored
This is a reland of 9436e8a8 This CL simplifies the wasm/futex.js test so that it doesn't push the limits of d8. Original change's description: > [wasm] Add I64AtomicWait implementation > > Bug=v8:8075 > R=adamk@chromium.org,binji@chromium.org > > Change-Id: I11ef5daccd043123b23e60c93ee0df79cabe9ccd > Reviewed-on: https://chromium-review.googlesource.com/c/1342948 > Reviewed-by: Adam Klein <adamk@chromium.org> > Reviewed-by: Ben Smith <binji@chromium.org> > Commit-Queue: Aseem Garg <aseemgarg@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57917} Change-Id: Ifd26f1ecdb9fe24a1896162bb4d4285f9188a9ba Reviewed-on: https://chromium-review.googlesource.com/c/1351304 Commit-Queue: Aseem Garg <aseemgarg@chromium.org> Reviewed-by:
Ben Smith <binji@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#57953}
-
- 29 Nov, 2018 1 commit
-
-
Aseem Garg authored
This reverts commit 9436e8a8. Reason for revert: Breaks TSAN. Original change's description: > [wasm] Add I64AtomicWait implementation > > Bug=v8:8075 > R=adamk@chromium.org,binji@chromium.org > > Change-Id: I11ef5daccd043123b23e60c93ee0df79cabe9ccd > Reviewed-on: https://chromium-review.googlesource.com/c/1342948 > Reviewed-by: Adam Klein <adamk@chromium.org> > Reviewed-by: Ben Smith <binji@chromium.org> > Commit-Queue: Aseem Garg <aseemgarg@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57917} TBR=binji@chromium.org,adamk@chromium.org,aseemgarg@chromium.org Change-Id: Ic82ce8794410a0d4d19de07abd9bb8a7aaff1c1c No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/1351303Reviewed-by:
Aseem Garg <aseemgarg@chromium.org> Commit-Queue: Aseem Garg <aseemgarg@chromium.org> Cr-Commit-Position: refs/heads/master@{#57919}
-
- 28 Nov, 2018 1 commit
-
-
Aseem Garg authored
Bug=v8:8075 R=adamk@chromium.org,binji@chromium.org Change-Id: I11ef5daccd043123b23e60c93ee0df79cabe9ccd Reviewed-on: https://chromium-review.googlesource.com/c/1342948Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Ben Smith <binji@chromium.org> Commit-Queue: Aseem Garg <aseemgarg@chromium.org> Cr-Commit-Position: refs/heads/master@{#57917}
-
- 20 Nov, 2018 1 commit
-
-
Aseem Garg authored
Bug=v8:8075 R=adamk@chromium.org,binji@chromium.org Change-Id: I2367e24888a268ce93b1730195cb4767896861cc Reviewed-on: https://chromium-review.googlesource.com/c/1341126Reviewed-by:
Ben Smith <binji@chromium.org> Commit-Queue: Aseem Garg <aseemgarg@chromium.org> Cr-Commit-Position: refs/heads/master@{#57624}
-
- 19 Nov, 2018 1 commit
-
-
Aseem Garg authored
Bug=v8:8075 R=adamk@chromium.org Change-Id: Ib7b18448d59e1f54f664e24908fbd3a8b4607a9f Reviewed-on: https://chromium-review.googlesource.com/c/1332153 Commit-Queue: Aseem Garg <aseemgarg@chromium.org> Reviewed-by:
Ben Smith <binji@chromium.org> Cr-Commit-Position: refs/heads/master@{#57623}
-
- 29 Oct, 2018 1 commit
-
-
Clemens Hammacher authored
The "grow_memory" opcode was renamed to "memory.grow", and the spec repo was updated to use kExprMemoryGrow internally instead of kExprGrowMemory (https://github.com/WebAssembly/spec/pull/720). This CL does the same change for v8. Drive-by: Rename "current_size" to "memory.size", and a minor cleanup in wasm-graph-builder.js to bring it in line with the version in the js-api tests in the spec repo. R=titzer@chromium.org Change-Id: If525dba898b2c248890a616d3392c22b45f698ef Reviewed-on: https://chromium-review.googlesource.com/c/1302057Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#57089}
-
- 25 Oct, 2018 2 commits
-
-
Michael Starzinger authored
This adds support for having reference type values (i.e. anyref) stored in an exception. It is the natural combination of the reference type proposal and the exception handling proposal. Note that this also introduces support for having write barriers in generated WasmCode, as this is the first time we are storing references within generated code. Such write barriers will be needed for other uses of reference types (e.g. mutable global) regardless. R=clemensh@chromium.org TEST=mjsunit/wasm/exceptions-anyref BUG=v8:8341 Change-Id: I1211d4a850954622cb873eede0b4024fecc3dd8b Reviewed-on: https://chromium-review.googlesource.com/c/1296484 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#56995}
-
Igor Sheludko authored
Bug: v8:8182 Change-Id: I4dadd9cab071ecd4314c370be5f444e36acb708e Reviewed-on: https://chromium-review.googlesource.com/c/1297317Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#56973}
-
- 11 Oct, 2018 2 commits
-
-
Jakob Kummerow authored
The primary purpose of this is to untangle a circular dependency objects.h -> handles.h -> objects.h. Most compilation units only need message-template.h, without the rest of messages.h. Bonus: change the enum to an enum class for improved type safety. Bug: v8:3770 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I8102c55197a450811de2588a68a08e7f99ea6b9e Reviewed-on: https://chromium-review.googlesource.com/c/1272193 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#56583}
-
Igor Sheludko authored
... containing RootsTable, ExternalReferenceTable, builtins array and potentially some other data that can be accessed via the RootRegister. This is a preliminary step before adding support for pointer-compression friendly heap layout. Bug: v8:8182 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I2899f657aaff1351a5304afa0b1a4c5ae4cfc31d Reviewed-on: https://chromium-review.googlesource.com/c/1245426Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#56551}
-
- 25 Sep, 2018 1 commit
-
-
Michael Starzinger authored
This reduces the size a "Throw" or "Rethrow" takes in generated code by switching from runtime calls to using WebAssembly runtime stubs. It also removes a specialized runtime function and instead uses {Runtime_Throw} which is generic and used by all code (including JavaScript code). R=clemensh@chromium.org BUG=v8:8091 Change-Id: Id4f637525f2ea9d81227931b1290d90ca5f376d1 Reviewed-on: https://chromium-review.googlesource.com/1243106 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#56215}
-
- 17 Sep, 2018 1 commit
-
-
Michael Starzinger authored
This avoids unnecessary stack-walks to determine the current context in WebAssembly runtime functions, in cases where the calling stub already determined the calling instance and can just set the context register itself before calling into the runtime. R=clemensh@chromium.org Change-Id: Iba02d479a7dad8907195bf94efb9d559be20a6d1 Reviewed-on: https://chromium-review.googlesource.com/1228035Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#55962}
-
- 10 Sep, 2018 1 commit
-
-
jgruber authored
The motivation behind this change is that the WasmArgumentsAdaptor builtin needed too many registers on ia32 and was blocking work on adding a root register. Bug: v8:6666 Change-Id: I9d39af96e8520acc092f5ef4b7f0a159fe4e3b12 Reviewed-on: https://chromium-review.googlesource.com/1209788 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#55761}
-
- 29 Aug, 2018 1 commit
-
-
jgruber authored
This replaces ebx usage in several more interface descriptors. - IC descriptors already passed most arguments on the stack (updated their Register accessors to reflect that). - The allocation site argument appears to be unused in the ConstructStub descriptor. It can probably be removed in a follow-up. Drive-by: Rename ArgumentAdaptorDescriptor to ArgumentsAdaptorDescriptor to match the builtin name. Bug: v8:6666 Change-Id: I4cdf1775a5b4b74491d6d303c49a8af9b6cd3c03 Reviewed-on: https://chromium-review.googlesource.com/1195367 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#55495}
-
- 25 Jul, 2018 3 commits
-
-
Marja Hölttä authored
This significantly reduces the build time when modifying wasm files: before touching all wasm headers required 684 steps to rebuild, now it's 216. BUG=v8:7754,v8:7490 TBR=clemensh@chromium.org, ulan@chromium.org, tebbi@chromium.org, verwaest@chromium.org, jgruber@chromium.org Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I9003b5b73ac568a29688c5f97ec718c9de8aaaef Reviewed-on: https://chromium-review.googlesource.com/1150163 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#54699}
-
Leszek Swirski authored
This reverts commit 9d18a7fd. Reason for revert: Breaks build https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20noi18n%20-%20debug/21856 Original change's description: > [iwyu] Remove sfi-inl.h -> wasm include > > This significantly reduces the build time when modifying wasm > files: before touching all wasm headers required 684 steps to > rebuild, now it's 216. > > BUG=v8:7754,v8:7490 > > Change-Id: Id7ff6f9063168556daad4840ee614cf68144cdb2 > Reviewed-on: https://chromium-review.googlesource.com/1145264 > Commit-Queue: Marja Hölttä <marja@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#54681} TBR=ulan@chromium.org,marja@chromium.org,titzer@chromium.org,jgruber@chromium.org,clemensh@chromium.org,tebbi@chromium.org,bmeurer@chromium.org,verwaest@chromium.org Change-Id: I3b4087916f65b16db75974dba58914c8ea377a08 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7754, v8:7490 Reviewed-on: https://chromium-review.googlesource.com/1149920Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#54683}
-
Marja Hölttä authored
This significantly reduces the build time when modifying wasm files: before touching all wasm headers required 684 steps to rebuild, now it's 216. BUG=v8:7754,v8:7490 Change-Id: Id7ff6f9063168556daad4840ee614cf68144cdb2 Reviewed-on: https://chromium-review.googlesource.com/1145264 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54681}
-
- 22 Jun, 2018 1 commit
-
-
Igor Sheludko authored
Bug: v8:7754 Change-Id: I6e1461d5e4214b5649f850166c3a988019098465 Reviewed-on: https://chromium-review.googlesource.com/1110126 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#53958}
-
- 21 Jun, 2018 1 commit
-
-
Clemens Hammacher authored
This CL adds a builtin which receives an int32 argument and returns the int32 result. Internally, it checks whether the argument is in the valid smi range, then calls the runtime function with the smi argument and converts the return value back from smi to int32. This saves a lot of code in the wasm TF builder and in Liftoff. R=mstarzinger@chromium.org Bug: v8:6600 Change-Id: Icddcb020eae74c767a75090feb4939275432c007 Reviewed-on: https://chromium-review.googlesource.com/1107711 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#53946}
-
- 20 Jun, 2018 1 commit
-
-
Igor Sheludko authored
This is a preliminary step for adding support for additional flags and return types. Bug: v8:7754, v8:6600 Change-Id: I1f65ec41f22b61a9471eb7105033007744563e91 Reviewed-on: https://chromium-review.googlesource.com/1107917 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#53894}
-
- 19 Jun, 2018 1 commit
-
-
Michael Starzinger authored
This makes sure we use WebAssembly runtime stubs when performing value coercions in wrapper code that is compiled into {WasmCode}. It hence removes the last {RelocInfo::CODE_TARGET} references in {WasmCode}. R=clemensh@chromium.org BUG=v8:7424 Change-Id: Ic96e541abe98f90796a6506b09ff99557743b6f7 Reviewed-on: https://chromium-review.googlesource.com/1104462 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#53846}
-
- 18 Jun, 2018 1 commit
-
-
Clemens Hammacher authored
Currently each isolate stores its own array of {CallInterfaceDescriptorData}. This array has size 173, and each entry has 40 bytes. That's already 7kB per isolate. Additionally, each {CallInterfaceDescriptorData} allocates two heap-allocated arrays, which probably add up to more than the static size of the {CallInterfaceDescriptorData}. Note that all the {CallInterfaceDescriptorData} instances are initialized eagerly on isolate creation. Since {CallInterfaceDescriptor} is totally isolate independent itself, this CL refactors the current design to avoid a copy of them per isolate, and instead shares them process-wide. Still, we need to free the allocated heap arrays when the last isolate dies to avoid leaks. This can probably be refactored later by statically initializing more and avoiding the heap allocations all together. This refactoring will also allow us to use {CallInterfaceDescriptor}s from wasm background compilation threads, which are not bound to any isolate. R=mstarzinger@chromium.org, titzer@chromium.org Bug: v8:6600 Change-Id: If8625b89951eec8fa8986b49a5c166e874a72494 Reviewed-on: https://chromium-review.googlesource.com/1100879 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#53803}
-
- 14 Jun, 2018 1 commit
-
-
Michael Starzinger authored
This allows WebAssembly runtime stubs implemented as {WasmCode} to be called with regular stub linkage. So far we have only been able to call such stubs with WebAssembly linkage. Also switch two more on-heap builtins over to WebAssembly runtime stubs. R=clemensh@chromium.org BUG=v8:7424 Change-Id: Ifa553b5908ee27a1be780c325a114449d7fe7001 Reviewed-on: https://chromium-review.googlesource.com/1100882Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#53734}
-
- 12 Jun, 2018 1 commit
-
-
Igor Sheludko authored
This CL also introduces TailCallRuntime() with explicit arity parameter. Bug: v8:6949 Change-Id: I20266a0d3779e0336d5e9f83d3919ffc91fe0f47 Reviewed-on: https://chromium-review.googlesource.com/1097081 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#53679}
-
- 07 Jun, 2018 1 commit
-
-
Michael Starzinger authored
This makes the WebAssembly runtime stubs load the correct CEntry stub from the instance object instead of embedding the address within the instruction stream. It effectively makes those stubs independent of the underlying Isolate. R=clemensh@chromium.org BUG=v8:7424 Change-Id: I0e7f3ecf7642d3fb1ee7adf83a8f0e6cc4d38fdf Reviewed-on: https://chromium-review.googlesource.com/1086997 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#53575}
-
- 24 Oct, 2017 1 commit
-
-
Clemens Hammacher authored
Our first implementation passed the source position as argument to the runtime function, which would then generate an Error object, patch the contained stack trace to point to the position given as argument, and then throw the Error. Since all our paths are now changed to call a builtin with proper source position information, we do not need to patch anything any more. R=ahaas@chromium.org Bug: v8:5007 Change-Id: I70dce1b9fcf9966a13865c1c373f3e354908b009 Reviewed-on: https://chromium-review.googlesource.com/732117Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#48876}
-
- 20 Jun, 2017 1 commit
-
-
Clemens Hammacher authored
Especially in wasm, many builtins don't actually need a context parameter. We currently pass Smi::kZero instead. This CL allows to generate a CallDescriptor for calling stubs without passing a context, resulting in reduced compile time and code size, and increased performance when executing these builtins. We were calling the ThrowWasm* functions without passing a context anyway (directly from code-generator-<arch>.h). With this change, we will also call the StackCheck builtin without passing a (null) context. This saves two bytes of code in each function plus each loop, and also slightly reduces compile time (very noisy, but statistically significant). Drive-by: Use NoContextConstant instead of SmiConstant(Smi::kZero). R=mstarzinger@chromium.org, ahaas@chromium.org Change-Id: If794cc4c262a9cca8d29a68010803c01a2eef4a3 Reviewed-on: https://chromium-review.googlesource.com/541423Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#46044}
-
- 16 Mar, 2017 1 commit
-
-
jkummerow authored
This is in preparation for linking the former only into mksnapshot. Just shuffling code around, no changes in functionality. BUG=v8:6055 Review-Url: https://codereview.chromium.org/2752143004 Cr-Commit-Position: refs/heads/master@{#43858}
-
- 23 Feb, 2017 1 commit
-
-
Marja Hölttä authored
BUG=v8:5294 Change-Id: If45f25aae8de526027b7851cb4efe0ccf4a7c4b1 Reviewed-on: https://chromium-review.googlesource.com/444226 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#43388}
-
- 22 Feb, 2017 1 commit
-
-
Andreas Haas authored
With this CL the out-of-line code of TrapIf will call a builtin instead of doing a direct runtime call, which is cheaper. In the best case, the out-of-line code now consists of a single call instruction. The builtin will load the trapID and then call the runtime to throw a trap. R=titzer@chromium.org, clemensh@chromium.org Change-Id: I8a75ba09f40236a3d5cbdc17c1317baf0a3c915a Reviewed-on: https://chromium-review.googlesource.com/445937 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#43366}
-
- 17 Feb, 2017 1 commit
-
-
clemensh authored
Instead of placing a runtime call to StackGuard in the compiled wasm code, we just call the builtin, which is cheaper. By passing Smi::kZero as context, we save even more code space and avoid embedding the context in the code. The WasmStackGuard builtin then calls the new WasmStackGuard runtime function, which gets the context from the instance attached to the calling wasm code, and then does the usual StackGuard logic. For the unity benchmark in asm-wasm mode, generated code size reduces from 63.0 to 61.6 MB (-2.1%). R=titzer@chromium.org, ahaas@chromium.org, mstarzinger@chromium.org Review-Url: https://codereview.chromium.org/2691993004 Cr-Commit-Position: refs/heads/master@{#43277}
-