- 05 Nov, 2018 1 commit
-
-
Jakob Kummerow authored
and split Smi out of objects.h into smi.h. Bug: v8:3770, v8:5402 Change-Id: I5ff7461495d29c785a76c79aca2616816a29ab1e Reviewed-on: https://chromium-review.googlesource.com/c/1313035Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#57252}
-
- 19 Oct, 2018 1 commit
-
-
Sigurd Schneider authored
Drive-by: Eliminate unnecessary includes to src/assembler.h. Bug: v8:8238 Change-Id: Ia0408b993b8b1c21a76c947f406f96b63fe41994 Reviewed-on: https://chromium-review.googlesource.com/c/1288810Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#56817}
-
- 28 Sep, 2018 1 commit
-
-
Clemens Hammacher authored
We have the generic {no_reg} and {no_dreg}, other definitions are dead. Currently even {no_dreg} is dead, but I am keeping this because I can see future need for that. R=mstarzinger@chromium.org Bug: v8:8238 Change-Id: I0de597fead6b3def18fd5c530419d3c149f235a8 Reviewed-on: https://chromium-review.googlesource.com/1251123Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#56288}
-
- 19 Sep, 2018 2 commits
-
-
Maya Lekova authored
This CL implements the following design doc: https://docs.google.com/document/d/1h5kdfemMQMpUd15PSKW1lqikJW5hsGwrmOvoqhGFRts/edit?ts=5b978756#heading=h.urs7r34mx9p Bug: v8:7790 Change-Id: I5f758c6d906ea9275c30b28f339063c64a2dc8d8 Reviewed-on: https://chromium-review.googlesource.com/1221807Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#56021}
-
Florian Sattler authored
Fixing clang-tidy warning. Bug: v8:8015 Change-Id: Ibc5a81aea25f797e90db891e90b2977f27e13990 Reviewed-on: https://chromium-review.googlesource.com/1224410 Commit-Queue: Florian Sattler <sattlerf@google.com> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#56015}
-
- 18 Sep, 2018 1 commit
-
-
Florian Sattler authored
Fixing clang-tidy warning. Bug: v8:8015 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I2204967cff3e50d967a9c6f4685f0df5a6ba84af Reviewed-on: https://chromium-review.googlesource.com/1226793Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Florian Sattler <sattlerf@google.com> Cr-Commit-Position: refs/heads/master@{#55976}
-
- 12 Sep, 2018 3 commits
-
-
Clemens Hammacher authored
This is a reland of 6afe7d18. The reason for the revert is fixed in https://crrev.com/c/1219633. Original change's description: > [Liftoff] Implement f32.copysign and f64.copysign > > These are two of the few missing instructions. This CL implements them > for ia32 and x64, and bails out on other platforms. > On x64, we are using the BTR instruction since we cannot have 64-bit > immediates. > > Drive-by: Fix naming of existing bt/bts instructions on x64. > > R=titzer@chromium.org > > Bug: v8:6600 > Change-Id: Ib8532ca811160cd61f4ba7c06b04ce093861c872 > Reviewed-on: https://chromium-review.googlesource.com/1174383 > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Ben Titzer <titzer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#55780} Bug: v8:6600 Change-Id: Ie14ba3a14848ba8e67f97e66d3379178f35dea40 TBR=titzer@chromium.org Change-Id: Ie14ba3a14848ba8e67f97e66d3379178f35dea40 Reviewed-on: https://chromium-review.googlesource.com/1219693Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#55817}
-
Clemens Hammacher authored
This reverts commit f0f5f877. Reason for revert: Merge conflict (does not compile). Original change's description: > Reland "[Liftoff] Implement f32.copysign and f64.copysign" > > This is a reland of 6afe7d18. > The reason for the revert is fixed in https://crrev.com/c/1219633. > > Original change's description: > > [Liftoff] Implement f32.copysign and f64.copysign > > > > These are two of the few missing instructions. This CL implements them > > for ia32 and x64, and bails out on other platforms. > > On x64, we are using the BTR instruction since we cannot have 64-bit > > immediates. > > > > Drive-by: Fix naming of existing bt/bts instructions on x64. > > > > R=titzer@chromium.org > > > > Bug: v8:6600 > > Change-Id: Ib8532ca811160cd61f4ba7c06b04ce093861c872 > > Reviewed-on: https://chromium-review.googlesource.com/1174383 > > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > > Reviewed-by: Ben Titzer <titzer@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#55780} > > Bug: v8:6600 > Change-Id: I4baeec6b02b17450988cfa7fedd5037f9cfe1638 > Reviewed-on: https://chromium-review.googlesource.com/1219508 > Reviewed-by: Ben Titzer <titzer@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#55812} TBR=titzer@chromium.org,clemensh@chromium.org Change-Id: Iae075a8f5225f1678691698bf3a304faa5ae2aab No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6600 Reviewed-on: https://chromium-review.googlesource.com/1220747Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#55813}
-
Clemens Hammacher authored
This is a reland of 6afe7d18. The reason for the revert is fixed in https://crrev.com/c/1219633. Original change's description: > [Liftoff] Implement f32.copysign and f64.copysign > > These are two of the few missing instructions. This CL implements them > for ia32 and x64, and bails out on other platforms. > On x64, we are using the BTR instruction since we cannot have 64-bit > immediates. > > Drive-by: Fix naming of existing bt/bts instructions on x64. > > R=titzer@chromium.org > > Bug: v8:6600 > Change-Id: Ib8532ca811160cd61f4ba7c06b04ce093861c872 > Reviewed-on: https://chromium-review.googlesource.com/1174383 > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Ben Titzer <titzer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#55780} Bug: v8:6600 Change-Id: I4baeec6b02b17450988cfa7fedd5037f9cfe1638 Reviewed-on: https://chromium-review.googlesource.com/1219508Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#55812}
-
- 11 Sep, 2018 3 commits
-
-
Clemens Hammacher authored
This reverts commit 6afe7d18. Reason for revert: Failures (-2e+66 vs. -2e+66): https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20debug/22148 Original change's description: > [Liftoff] Implement f32.copysign and f64.copysign > > These are two of the few missing instructions. This CL implements them > for ia32 and x64, and bails out on other platforms. > On x64, we are using the BTR instruction since we cannot have 64-bit > immediates. > > Drive-by: Fix naming of existing bt/bts instructions on x64. > > R=titzer@chromium.org > > Bug: v8:6600 > Change-Id: Ib8532ca811160cd61f4ba7c06b04ce093861c872 > Reviewed-on: https://chromium-review.googlesource.com/1174383 > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Ben Titzer <titzer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#55780} TBR=titzer@chromium.org,clemensh@chromium.org Change-Id: I4377c13346b42b65e8db04cbd15fc2f906113f65 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6600 Reviewed-on: https://chromium-review.googlesource.com/1219446Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#55783}
-
Clemens Hammacher authored
These are two of the few missing instructions. This CL implements them for ia32 and x64, and bails out on other platforms. On x64, we are using the BTR instruction since we cannot have 64-bit immediates. Drive-by: Fix naming of existing bt/bts instructions on x64. R=titzer@chromium.org Bug: v8:6600 Change-Id: Ib8532ca811160cd61f4ba7c06b04ce093861c872 Reviewed-on: https://chromium-review.googlesource.com/1174383 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#55780}
-
Clemens Hammacher authored
The macro has been deprecated since 2016, and it keeps confusing me, so let's just remove it completely from the code base. R=leszeks@chromium.org TBR=mstarzinger@chromium.org, verwaest@chromium.org, jgruber@chromium.org Bug: v8:8015 Change-Id: Ibe1122fd9d2624bc94873d9c51dc8499c54a04fd Reviewed-on: https://chromium-review.googlesource.com/1209322Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#55779}
-
- 23 Aug, 2018 1 commit
-
-
Michael Starzinger authored
R=sigurds@chromium.org Change-Id: Ib024d099946d4351bfce9de8eb61be1dba5e1ce5 Reviewed-on: https://chromium-review.googlesource.com/1186415 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#55351}
-
- 21 Aug, 2018 1 commit
-
-
Jakob Gruber authored
This reverts commit ad5b7365. Reason for revert: https://crbug.com/875678 Original change's description: > [x64] Apply rip-relative call/jump for OFF_HEAP_TARGET > > Merge rip-relative loading and call/jump into one instruction for > OFF_HEAP_TARGET call/jump. For example, > > REX.W movq r10,[rip+#disp] > call r10 > > turns into: > > call [rip+#disp] > > Change-Id: I17e115d054b4b352bdaf8eba2e6ac4054bbedaca > Reviewed-on: https://chromium-review.googlesource.com/1172152 > Commit-Queue: Shiyu Zhang <shiyu.zhang@intel.com> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > Cr-Commit-Position: refs/heads/master@{#55150} TBR=sigurds@chromium.org,jgruber@chromium.org,shiyu.zhang@intel.com # Not skipping CQ checks because original CL landed > 1 day ago. Bug: chromium:875678 Change-Id: I5a9dd6e29cc53566d681864f7e275a70ccdcb0cb Reviewed-on: https://chromium-review.googlesource.com/1183164 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#55255}
-
- 16 Aug, 2018 2 commits
-
-
Deepti Gandluri authored
Change-Id: I55d15fd15cc714732139e4bf12bd75f21f922048 Reviewed-on: https://chromium-review.googlesource.com/1174013Reviewed-by:
Ben Titzer <titzer@chromium.org> Reviewed-by:
Bill Budge <bbudge@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#55174}
-
Shiyu Zhang authored
Merge rip-relative loading and call/jump into one instruction for OFF_HEAP_TARGET call/jump. For example, REX.W movq r10,[rip+#disp] call r10 turns into: call [rip+#disp] Change-Id: I17e115d054b4b352bdaf8eba2e6ac4054bbedaca Reviewed-on: https://chromium-review.googlesource.com/1172152 Commit-Queue: Shiyu Zhang <shiyu.zhang@intel.com> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#55150}
-
- 14 Aug, 2018 2 commits
-
-
Benedikt Meurer authored
This adds support for unaligned load/store access to the DataView backing store and uses byteswap operations to fix up the endianess when necessary. This changes the Word32ReverseBytes operator to be a required operator and adds the missing support on the Intel and ARM platforms (on 64-bit platforms the Word64ReverseBytes operator is also mandatory now). This further improves the performance on the dataviewperf.js test mentioned in the tracking bug by up to 40%, and at the same time reduces the code complexity in the EffectControlLinearizer. Bug: chromium:225811 Change-Id: I7c1ec826faf46a144a5a9068f8f815a5fd040997 Reviewed-on: https://chromium-review.googlesource.com/1174252Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#55111}
-
Leszek Swirski authored
This reverts commit c46915b9. Reason for revert: Disasm failures https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20debug/21727 Original change's description: > [turbofan] Further optimize DataView accesses. > > This adds support for unaligned load/store access to the DataView > backing store and uses byteswap operations to fix up the endianess > when necessary. This changes the Word32ReverseBytes operator to be > a required operator and adds the missing support on the Intel and > ARM platforms (on 64-bit platforms the Word64ReverseBytes operator > is also mandatory now). > > This further improves the performance on the dataviewperf.js test > mentioned in the tracking bug by up to 40%, and at the same time > reduces the code complexity in the EffectControlLinearizer. > > Bug: chromium:225811 > Change-Id: I296170b828c2ccc1c317ed37840b564aa14cdec2 > Reviewed-on: https://chromium-review.googlesource.com/1172777 > Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > Cr-Commit-Position: refs/heads/master@{#55099} TBR=sigurds@chromium.org,bmeurer@chromium.org Change-Id: If7a62e3a1a4ad26823fcbd2ab6eb4c053ad11c49 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:225811 Reviewed-on: https://chromium-review.googlesource.com/1174171Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#55107}
-
- 13 Aug, 2018 1 commit
-
-
Benedikt Meurer authored
This adds support for unaligned load/store access to the DataView backing store and uses byteswap operations to fix up the endianess when necessary. This changes the Word32ReverseBytes operator to be a required operator and adds the missing support on the Intel and ARM platforms (on 64-bit platforms the Word64ReverseBytes operator is also mandatory now). This further improves the performance on the dataviewperf.js test mentioned in the tracking bug by up to 40%, and at the same time reduces the code complexity in the EffectControlLinearizer. Bug: chromium:225811 Change-Id: I296170b828c2ccc1c317ed37840b564aa14cdec2 Reviewed-on: https://chromium-review.googlesource.com/1172777 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#55099}
-
- 08 Aug, 2018 2 commits
-
-
Michael Starzinger authored
R=sigurds@chromium.org Change-Id: I1ca0e215da36400a8817bc8c8912ccfde8eca613 Reviewed-on: https://chromium-review.googlesource.com/1166911Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54973}
-
Shiyu Zhang authored
Partial constant pool aims at reducing code size and only takes effect for shareable constants. Different from ARM’s constant pool, partial constant pool does not emit constant pools at the end of each code object. Instead, it keeps the first shareable constant inlined in the instructions and uses rip-relative memory loadings for the same constants in subsequent instructions. These rip-relative memory loadings will target at the position of the first inlined constant. For example: REX.W movq r10,0x7f9f75a32c20 ; 10 bytes … REX.W movq r10,0x7f9f75a32c20 ; 10 bytes … turns into REX.W movq r10,0x7f9f75a32c20 ; 10 bytes … REX.W movq r10,[rip+0xffffff96] ; 7 bytes … Change-Id: I25a417f6d82da96024989bddf0451d7df9340c00 Reviewed-on: https://chromium-review.googlesource.com/1082231Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Shiyu Zhang <shiyu.zhang@intel.com> Cr-Commit-Position: refs/heads/master@{#54963}
-
- 24 Jul, 2018 1 commit
-
-
Clemens Hammacher authored
This is a reland of a462a785 Original change's description: > [turboassembler] Introduce hard-abort mode > > For checks and assertions (mostly for debug code, like stack alignment > or zero extension), we had two modes: Emit a call to the {Abort} > runtime function (the default), and emit a debug break (used for > testing, enabled via --trap-on-abort). > In wasm, where we cannot just call a runtime function because code must > be isolate independent, we always used the trap-on-abort behaviour. > This causes problems for our fuzzers, which do not catch SIGTRAP, and > hence do not detect debug code failures. > > This CL introduces a third mode ("hard abort"), which calls a C > function via {ExternalReference}. The C function still outputs the > abort reason, but does not print the stack trace. It then aborts via > "OS::Abort", just like the runtime function. > This will allow fuzzers to detect the crash and even find a nice error > message. > > Even though this looks like a lot of code churn, it is actually not. > Most added lines are new tests, and other changes are minimal. > > R=mstarzinger@chromium.org > > Bug: chromium:863799 > Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b > Reviewed-on: https://chromium-review.googlesource.com/1142163 > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#54592} Bug: chromium:863799 Change-Id: I7729a47b4823a982a8e201df36520aa2b6ef5326 Reviewed-on: https://chromium-review.googlesource.com/1146100Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54656}
-
- 20 Jul, 2018 2 commits
-
-
Sigurd Schneider authored
This reverts commit a462a785. Reason for revert: Breaks a TurboAssembler test: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Arm/7726 Original change's description: > [turboassembler] Introduce hard-abort mode > > For checks and assertions (mostly for debug code, like stack alignment > or zero extension), we had two modes: Emit a call to the {Abort} > runtime function (the default), and emit a debug break (used for > testing, enabled via --trap-on-abort). > In wasm, where we cannot just call a runtime function because code must > be isolate independent, we always used the trap-on-abort behaviour. > This causes problems for our fuzzers, which do not catch SIGTRAP, and > hence do not detect debug code failures. > > This CL introduces a third mode ("hard abort"), which calls a C > function via {ExternalReference}. The C function still outputs the > abort reason, but does not print the stack trace. It then aborts via > "OS::Abort", just like the runtime function. > This will allow fuzzers to detect the crash and even find a nice error > message. > > Even though this looks like a lot of code churn, it is actually not. > Most added lines are new tests, and other changes are minimal. > > R=mstarzinger@chromium.org > > Bug: chromium:863799 > Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b > Reviewed-on: https://chromium-review.googlesource.com/1142163 > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#54592} TBR=mstarzinger@chromium.org,clemensh@chromium.org Change-Id: I60c011cfe262ccebbb9abf32699a9fe17e72a3c8 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:863799 Reviewed-on: https://chromium-review.googlesource.com/1145431 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#54597}
-
Clemens Hammacher authored
For checks and assertions (mostly for debug code, like stack alignment or zero extension), we had two modes: Emit a call to the {Abort} runtime function (the default), and emit a debug break (used for testing, enabled via --trap-on-abort). In wasm, where we cannot just call a runtime function because code must be isolate independent, we always used the trap-on-abort behaviour. This causes problems for our fuzzers, which do not catch SIGTRAP, and hence do not detect debug code failures. This CL introduces a third mode ("hard abort"), which calls a C function via {ExternalReference}. The C function still outputs the abort reason, but does not print the stack trace. It then aborts via "OS::Abort", just like the runtime function. This will allow fuzzers to detect the crash and even find a nice error message. Even though this looks like a lot of code churn, it is actually not. Most added lines are new tests, and other changes are minimal. R=mstarzinger@chromium.org Bug: chromium:863799 Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b Reviewed-on: https://chromium-review.googlesource.com/1142163 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54592}
-
- 06 Jul, 2018 1 commit
-
-
Sigurd Schneider authored
This CL surfaces AssemblerOptions to CodeAssembler::GenerateCode and to pipeline methods. To allow forward declaring AssemblerOptions, AssemblerBase::Options was moved out of the AssemblerBase class. Bug: v8:6666 Change-Id: If9fc50d3d4767bb5dd39a0c3b6e094021f4cae2b Reviewed-on: https://chromium-review.googlesource.com/1127039 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#54286}
-
- 05 Jul, 2018 1 commit
-
-
Sigurd Schneider authored
The code target vector is used by backends whenever initial code creation uses immediates that cannot hold a code pointer: An index into the vector is used instead, and the vector contains the corresponding code object. This CL makes the code target vector available on all platforms. Bug: v8:6666 Change-Id: I2026acd6a77a3465fe2285b84d47866c3b794855 Reviewed-on: https://chromium-review.googlesource.com/1118885 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#54236}
-
- 26 Jun, 2018 1 commit
-
-
Sigurd Schneider authored
We had a kRootRegisterBias on x64 before. This CL ports the feature to all other platforms as well. The root register bias is helpful to adjust the value of the root register, which allows to better utilize signed immediate offset constants in load instructions. We currently use a separate add instruction to add kRootRegisterBias in the code that initializes the root register. This could be improved by adding a custom relocation mode ensuring that instead of the root address, the root address plus the bias is inserted (and in this way the add instruction can be omitted). Bug: v8:6666 Change-Id: I55cf02ab85d11e3c6d0d83a8f7905dbf924890f1 Reviewed-on: https://chromium-review.googlesource.com/1113539 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#54023}
-
- 21 Jun, 2018 1 commit
-
-
Ben L. Titzer authored
This completes the transition to Assembler::Options, which reduces the assemblers's dependency on isolates, and there is now only one way to create an Assembler, which is to use the options. Note that some operations on assemblers still need an isolate, such as GetCode(), and in these cases, the isolate is an additional argument to the method. R=jgruber@chromium.org CC=mstarzinger@chromium.org Change-Id: I413209d816c63a7c3640f1c226764693dcad1e7f Reviewed-on: https://chromium-review.googlesource.com/1106169 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#53925}
-
- 20 Jun, 2018 1 commit
-
-
Ben L. Titzer authored
This CL attempts to simplify the Assembler's dependency on the isolate, in particular on a global "serializer_enabled" mode contained therein. The "serializer_enabled" condition enabled and disabled a number of things in both the assemblers and macro assemblers. To make these dependencies explicit, the Assembler::IsolateData is refactored to be a proper Assembler::Options struct that controls specific assembler behaviors, with default settings easily computable from the isolate. This also helps make the contract for compiling WASM code more explicit (since WASM code needs to have reloc info recorded for external references) we can explicitly enable this recording without trying to "trick" the assembler using "serializer_enabled". R=jgruber@chromium.org CC=mstarzinger@chromium.org, herhut@chromium.org Change-Id: I7a8ba49df7b75b292d73ec2aa6e507c27a3d99c8 Reviewed-on: https://chromium-review.googlesource.com/1105982 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#53890}
-
- 13 Jun, 2018 1 commit
-
-
Ben L. Titzer authored
Lift the declaration of the heap allocation request list and the method which adds to the list up to AssemblerBase. Change-Id: I099260425af8cb579144998c71c538f19ba00e65 Reviewed-on: https://chromium-review.googlesource.com/1098959Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#53708}
-
- 18 May, 2018 1 commit
-
-
Georgia Kouveli authored
This requires changing the way stubs and builtins are encoded in tags, as for arm64 we only have 26 bits to encode a PC-relative offset. With the previous encoding scheme the builtin ids were shifted by 16 bits and ended up exceeding this range. Change-Id: I0f396390a622ea67b890d2dd47ca12e00092e204 Reviewed-on: https://chromium-review.googlesource.com/1059209 Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com> Reviewed-by:
Ben Titzer <titzer@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#53262}
-
- 30 Apr, 2018 1 commit
-
-
Georgia Kouveli authored
This includes the following changes: - Limit code space to 128 MB. - Use direct branches wherever possible. - Where not possible, continue using load literal followed by an indirect branch. - Sort RelocInfo by target_address_address for the serializer, since mixing load literal instructions and branch instructions messes up that order. - Ensure we always wipe out targets in the serializer (not just for the snapshot) in order to be able to distinguish between constant pool entries and branch instructions. Change-Id: I1a1029ce2a5f72a3a94802daf267d14a42c7c790 Reviewed-on: https://chromium-review.googlesource.com/939175Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com> Cr-Commit-Position: refs/heads/master@{#52885}
-
- 14 Apr, 2018 1 commit
-
-
Jakob Kummerow authored
The "Address" type is V8's general-purpose type for manipulating memory addresses. Per the C++ spec, pointer arithmetic and pointer comparisons are undefined behavior except within the same array; since we generally don't operate within a C++ array, our general-purpose type shouldn't be a pointer type. Bug: v8:3770 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel Change-Id: Ib96016c24a0f18bcdba916dabd83e3f24a1b5779 Reviewed-on: https://chromium-review.googlesource.com/988657 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#52601}
-
- 20 Mar, 2018 1 commit
-
-
Clemens Hammacher authored
Avoid loading to a general purpose register if the bit pattern consists of a consecutive block of 1 bits. Drive-by: Change a parameter from int8_t to byte such that the AVX_OP macro works on these methods. R=mstarzinger@chromium.org Change-Id: Ib469ddd29d92ddeabe98460d2951b01159a6548a Reviewed-on: https://chromium-review.googlesource.com/969123 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#52077}
-
- 01 Mar, 2018 3 commits
-
-
Clemens Hammacher authored
This is a reland of 01db326c. Original change's description: > [Assembler][x64] Make immediates immutable > > On x64, we already pass immediates by value. This CL ensures that this > is indeed cheap, and it makes immediates immutable. > > R=mstarzinger@chromium.org > > Bug: v8:7310 > Change-Id: I53a0666d53b9de69d390621298798c03b5190497 > Reviewed-on: https://chromium-review.googlesource.com/934341 > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#51613} Bug: v8:7310 Change-Id: I37f1bd1528c742e8df11b7f524316935dd289f00 Reviewed-on: https://chromium-review.googlesource.com/941621Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#51655}
-
Clemens Hammacher authored
MSVC 2015 and 2017 implement std::is_trivially_copyable, but not correctly. Hence, reimplement it using more low-level primitives. For stdlibc++ versions below 5.0, we already have a workaround for the missing support of std::is_trivially_copyable, but this is an unsound approximation, because it is ignoring move constructor, move assignment and copy assignment. Therefore, do not use this approximation for asserting trivial copyability of a type. Finally, add unittests for the new is_trivially_copyable implementations. R=mstarzinger@chromium.org CC=loorongjie@gmail.com Change-Id: I9ee56a65882e8c94b72c9a2d484edd27963a5d89 Reviewed-on: https://chromium-review.googlesource.com/941521Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#51651}
-
jing.bao authored
Also Add vhaddps to x64 Fix haddps for SSE3 scope and disassembler on ia32/x64 Change-Id: If511e6428fa1ce034b4281943dfee1405c9d4ffc Reviewed-on: https://chromium-review.googlesource.com/939265Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Jing Bao <jing.bao@intel.com> Cr-Commit-Position: refs/heads/master@{#51642}
-
- 27 Feb, 2018 2 commits
-
-
Michael Achenbach authored
This reverts commit 01db326c. Reason for revert: https://build.chromium.org/p/client.v8/builders/V8%20Win64%20-%20msvc/builds/1607 Original change's description: > [Assembler][x64] Make immediates immutable > > On x64, we already pass immediates by value. This CL ensures that this > is indeed cheap, and it makes immediates immutable. > > R=mstarzinger@chromium.org > > Bug: v8:7310 > Change-Id: I53a0666d53b9de69d390621298798c03b5190497 > Reviewed-on: https://chromium-review.googlesource.com/934341 > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#51613} TBR=mstarzinger@chromium.org,clemensh@chromium.org Change-Id: Id3870e671c106644b62353c2b6c0ec2607596166 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7310 Reviewed-on: https://chromium-review.googlesource.com/939901Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#51614}
-
Clemens Hammacher authored
On x64, we already pass immediates by value. This CL ensures that this is indeed cheap, and it makes immediates immutable. R=mstarzinger@chromium.org Bug: v8:7310 Change-Id: I53a0666d53b9de69d390621298798c03b5190497 Reviewed-on: https://chromium-review.googlesource.com/934341Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#51613}
-
- 26 Feb, 2018 1 commit
-
-
Clemens Hammacher authored
This is a reland of e7f9fb4a. Original change's description: > [Assembler][x64] Make Operand immutable > > This CL removes all setters from the Operand and removes the friendship > relation between Assembler and Operand. All data fields of the Operand > are set exactly once in the constructor, the Operand is immutable > afterwards. > In order to construct the data of an Operand easily, the OperandBuilder > is introduced. After building an Operand, the data is copied to the > const field of the Operand. > > R=mstarzinger@chromium.org > > Bug: v8:7310 > Change-Id: I1628052b8a0c47cbfbc3645dfdac5a0e9705977b > Reviewed-on: https://chromium-review.googlesource.com/936741 > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#51563} Bug: v8:7310 Change-Id: I84df5e11b1811585fbba7309e3bb9c6b17e18c0b Reviewed-on: https://chromium-review.googlesource.com/936628Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#51573}
-