- 18 Jan, 2016 2 commits
-
-
ahaas authored
Revert of [turbofan] Implement rounding of floats on x64 and ia32 without sse4.1. (patchset #2 id:20001 of https://codereview.chromium.org/1584663007/ ) Reason for revert: Code is incorrect for -0. Original issue's description: > [turbofan] Implement rounding of floats on x64 and ia32 without sse4.1. > > The implementation sets the rounding mode flag and then uses the > cvtsd2si and cvtsi2sd instructions (convert between float and int) to do > the rounding. Input values outside int range either don't have to be > rounded anyways, or are rounded by calculating input + 2^52 - 2^52 for > positive inputs, or input -2^52 + 2^52 for negative inputs. The original > rounding mode is restored afterwards. > > R=titzer@chromium.org > > B=575379 > > Committed: https://crrev.com/fa5d09e547abe79a8c82f780deb980c53ad78beb > Cr-Commit-Position: refs/heads/master@{#33367} TBR=titzer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1593313010 Cr-Commit-Position: refs/heads/master@{#33369}
-
ahaas authored
The implementation sets the rounding mode flag and then uses the cvtsd2si and cvtsi2sd instructions (convert between float and int) to do the rounding. Input values outside int range either don't have to be rounded anyways, or are rounded by calculating input + 2^52 - 2^52 for positive inputs, or input -2^52 + 2^52 for negative inputs. The original rounding mode is restored afterwards. R=titzer@chromium.org B=575379 Review URL: https://codereview.chromium.org/1584663007 Cr-Commit-Position: refs/heads/master@{#33367}
-
- 16 Jan, 2016 1 commit
-
-
ahaas authored
The new operator converts an int32 input to float32. If the input cannot be represented exactly in float32, the value is rounded using the round-ties-even rounding mode (the default rounding mode). I provide implementations of the new operator for x64, ia32, arm, arm64, mips, mips64, ppc, and ppc64. R=titzer@chromium.org, v8-arm-ports@googlegroups.com, v8-mips-ports@googlegroups.com, v8-ppc-ports@googlegroups.com Review URL: https://codereview.chromium.org/1589363002 Cr-Commit-Position: refs/heads/master@{#33347}
-
- 27 Nov, 2015 1 commit
-
-
jochen authored
It needs ot to flush icaches all over the place BUG=v8:2487 LOG=n R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1477343002 Cr-Commit-Position: refs/heads/master@{#32371}
-
- 26 Nov, 2015 3 commits
-
-
ahaas authored
The TruncateFloat32ToInt64 operator converts a float32 to an int64 using the round-to-zero rounding mode (truncate). If the input value is outside the int64 range, then the result depends on the architecture. I implemented the operator on x64, arm64, and mips64. R=titzer@chromium.org, jacob.bramley@arm.com Committed: https://crrev.com/1df1066c3c77464d2a68d7c8d501a5a0f3ad195a Cr-Commit-Position: refs/heads/master@{#32315} Review URL: https://codereview.chromium.org/1476063002 Cr-Commit-Position: refs/heads/master@{#32325}
-
ahaas authored
Revert of [turbofan] Implemented the TruncateFloat32ToInt64 TurboFan operator. (patchset #1 id:1 of https://codereview.chromium.org/1476063002/ ) Reason for revert: Unexpected error occurred. Original issue's description: > [turbofan] Implemented the TruncateFloat32ToInt64 TurboFan operator. > > The TruncateFloat32ToInt64 operator converts a float32 to an int64 using > the round-to-zero rounding mode (truncate). If the input value is > outside the int64 range, then the result depends on the architecture. I > implemented the operator on x64, arm64, and mips64. > > R=titzer@chromium.org, jacob.bramley@arm.com > > Committed: https://crrev.com/1df1066c3c77464d2a68d7c8d501a5a0f3ad195a > Cr-Commit-Position: refs/heads/master@{#32315} TBR=jacob.bramley@arm.com,titzer@chromium.org,v8-mips-ports@googlegroups.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1475343002 Cr-Commit-Position: refs/heads/master@{#32316}
-
ahaas authored
The TruncateFloat32ToInt64 operator converts a float32 to an int64 using the round-to-zero rounding mode (truncate). If the input value is outside the int64 range, then the result depends on the architecture. I implemented the operator on x64, arm64, and mips64. R=titzer@chromium.org, jacob.bramley@arm.com Review URL: https://codereview.chromium.org/1476063002 Cr-Commit-Position: refs/heads/master@{#32315}
-
- 25 Nov, 2015 2 commits
-
-
titzer authored
Turns out we've been putting garbage into code->constant_pool_offset for quite some time. R=jkummerow@chromium.org BUG= Review URL: https://codereview.chromium.org/1478713002 Cr-Commit-Position: refs/heads/master@{#32269}
-
ahaas authored
I implemented the optional Float32RoundDown operator on x64, ia32, arm, and arm64. For arm I also had to adjust the simulator. R=titzer@chromium.org Review URL: https://codereview.chromium.org/1471913006 Cr-Commit-Position: refs/heads/master@{#32261}
-
- 10 Nov, 2015 2 commits
-
-
ahaas authored
R=titzer@chromium.org Review URL: https://codereview.chromium.org/1435603003 Cr-Commit-Position: refs/heads/master@{#31929}
-
ahaas authored
Ctz is implemented as an optional operator at the moment, which is only implemented by x64 at the moment. R=titzer@chromium.org Review URL: https://codereview.chromium.org/1421163005 Cr-Commit-Position: refs/heads/master@{#31912}
-
- 06 Nov, 2015 1 commit
-
-
ahaas authored
R=titzer@chromium.org Review URL: https://codereview.chromium.org/1413463009 Cr-Commit-Position: refs/heads/master@{#31858}
-
- 24 Oct, 2015 2 commits
-
-
alph authored
BUG=v8:4406 LOG=N Review URL: https://codereview.chromium.org/1413903003 Cr-Commit-Position: refs/heads/master@{#31539}
-
alph authored
BUG=v8:4406 LOG=N Review URL: https://codereview.chromium.org/1413013003 Cr-Commit-Position: refs/heads/master@{#31538}
-
- 23 Oct, 2015 2 commits
-
-
alph authored
BUG=v8:4406 LOG=N Review URL: https://codereview.chromium.org/1420653005 Cr-Commit-Position: refs/heads/master@{#31493}
-
alph authored
BUG=v8:4406 LOG=N Review URL: https://codereview.chromium.org/1420543003 Cr-Commit-Position: refs/heads/master@{#31490}
-
- 22 Oct, 2015 1 commit
-
-
alph authored
BUG=v8:4406 LOG=N Review URL: https://codereview.chromium.org/1419983002 Cr-Commit-Position: refs/heads/master@{#31452}
-
- 20 Oct, 2015 1 commit
-
-
alph authored
BUG=v8:4406 LOG=N Review URL: https://codereview.chromium.org/1416663004 Cr-Commit-Position: refs/heads/master@{#31391}
-
- 19 Oct, 2015 1 commit
-
-
alph authored
BUG=v8:4406 LOG=N Review URL: https://codereview.chromium.org/1413183002 Cr-Commit-Position: refs/heads/master@{#31385}
-
- 18 Oct, 2015 4 commits
-
-
alph authored
BUG=v8:4406 LOG=N Review URL: https://codereview.chromium.org/1406293003 Cr-Commit-Position: refs/heads/master@{#31351}
-
alph authored
BUG=v8:4406 LOG=N Review URL: https://codereview.chromium.org/1411023002 Cr-Commit-Position: refs/heads/master@{#31350}
-
alph authored
BUG=v8:4406 LOG=N Review URL: https://codereview.chromium.org/1411743003 Cr-Commit-Position: refs/heads/master@{#31349}
-
alph authored
BUG=v8:4406 LOG=N Review URL: https://codereview.chromium.org/1406353003 Cr-Commit-Position: refs/heads/master@{#31348}
-
- 16 Oct, 2015 2 commits
-
-
alph authored
BUG=v8:4406 LOG=N Review URL: https://codereview.chromium.org/1408983002 Cr-Commit-Position: refs/heads/master@{#31323}
-
alph authored
BUG=v8:4406 LOG=N Review URL: https://codereview.chromium.org/1409873002 Cr-Commit-Position: refs/heads/master@{#31322}
-
- 15 Oct, 2015 5 commits
-
-
alph authored
BUG=v8:4406 LOG=N Committed: https://crrev.com/adcbe619a959fe1d8f21d06fbf5984868c4f6b9a Cr-Commit-Position: refs/heads/master@{#31276} Review URL: https://codereview.chromium.org/1404903004 Cr-Commit-Position: refs/heads/master@{#31315}
-
ahaas authored
Review URL: https://codereview.chromium.org/1405453003 Cr-Commit-Position: refs/heads/master@{#31313}
-
alph authored
Revert of [x64] Use vcvtlsi2sd when AVX is enabled (patchset #1 id:1 of https://codereview.chromium.org/1404903004/ ) Reason for revert: Caused a crash on Windows Original issue's description: > [x64] Use vcvtlsi2sd when AVX is enabled > > BUG=v8:4406 > LOG=N > > Committed: https://crrev.com/adcbe619a959fe1d8f21d06fbf5984868c4f6b9a > Cr-Commit-Position: refs/heads/master@{#31276} TBR=bmeurer@chromium.org,danno@chromium.org,yurys@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4406 Review URL: https://codereview.chromium.org/1396283004 Cr-Commit-Position: refs/heads/master@{#31277}
-
alph authored
BUG=v8:4406 LOG=N Review URL: https://codereview.chromium.org/1404903004 Cr-Commit-Position: refs/heads/master@{#31276}
-
alph authored
R=bmeurer@chromium.org BUG=v8:4406 LOG=N Review URL: https://codereview.chromium.org/1391963005 Cr-Commit-Position: refs/heads/master@{#31275}
-
- 02 Oct, 2015 3 commits
-
-
danno authored
Previous to this patch, both the lithium and TurboFan register allocators tracked allocated registers by "indices", rather than the register codes used elsewhere in the runtime. This patch ensures that codes are used everywhere, and in the process cleans up a bunch of redundant code and adds more structure to how the set of allocatable registers is defined. Some highlights of changes: * TurboFan's RegisterConfiguration class moved to V8's top level so that it can be shared with Crankshaft. * Various "ToAllocationIndex" and related methods removed. * Code that can be easily shared between Register classes on different platforms is now shared. * The list of allocatable registers on each platform is declared as a list rather than implicitly via the register index <-> code mapping. Committed: https://crrev.com/80bc6f6e11f79524e3f1ad05579583adfd5f18b2 Cr-Commit-Position: refs/heads/master@{#30913} Committed: https://crrev.com/7b7a8205d9a00c678fb7a6e032a55fecbc1509cf Cr-Commit-Position: refs/heads/master@{#31075} Review URL: https://codereview.chromium.org/1287383003 Cr-Commit-Position: refs/heads/master@{#31087}
-
danno authored
Revert of Reland: Remove register index/code indirection (patchset #20 id:380001 of https://codereview.chromium.org/1287383003/ ) Reason for revert: Failures on MIPS Original issue's description: > Remove register index/code indirection > > Previous to this patch, both the lithium and TurboFan register > allocators tracked allocated registers by "indices", rather than > the register codes used elsewhere in the runtime. This patch > ensures that codes are used everywhere, and in the process cleans > up a bunch of redundant code and adds more structure to how the > set of allocatable registers is defined. > > Some highlights of changes: > > * TurboFan's RegisterConfiguration class moved to V8's top level > so that it can be shared with Crankshaft. > * Various "ToAllocationIndex" and related methods removed. > * Code that can be easily shared between Register classes on > different platforms is now shared. > * The list of allocatable registers on each platform is declared > as a list rather than implicitly via the register index <-> > code mapping. > > Committed: https://crrev.com/80bc6f6e11f79524e3f1ad05579583adfd5f18b2 > Cr-Commit-Position: refs/heads/master@{#30913} > > Committed: https://crrev.com/7b7a8205d9a00c678fb7a6e032a55fecbc1509cf > Cr-Commit-Position: refs/heads/master@{#31075} TBR=akos.palfi@imgtec.com,bmeurer@chromium.org,jarin@chromium.org,paul.lind@imgtec.com,titzer@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1380863004 Cr-Commit-Position: refs/heads/master@{#31083}
-
danno authored
Previous to this patch, both the lithium and TurboFan register allocators tracked allocated registers by "indices", rather than the register codes used elsewhere in the runtime. This patch ensures that codes are used everywhere, and in the process cleans up a bunch of redundant code and adds more structure to how the set of allocatable registers is defined. Some highlights of changes: * TurboFan's RegisterConfiguration class moved to V8's top level so that it can be shared with Crankshaft. * Various "ToAllocationIndex" and related methods removed. * Code that can be easily shared between Register classes on different platforms is now shared. * The list of allocatable registers on each platform is declared as a list rather than implicitly via the register index <-> code mapping. Committed: https://crrev.com/80bc6f6e11f79524e3f1ad05579583adfd5f18b2 Cr-Commit-Position: refs/heads/master@{#30913} Review URL: https://codereview.chromium.org/1287383003 Cr-Commit-Position: refs/heads/master@{#31075}
-
- 24 Sep, 2015 2 commits
-
-
danno authored
Revert of Remove register index/code indirection (patchset #17 id:320001 of https://codereview.chromium.org/1287383003/ ) Reason for revert: Failures on greedy RegAlloc, Fuzzer Original issue's description: > Remove register index/code indirection > > Previous to this patch, both the lithium and TurboFan register > allocators tracked allocated registers by "indices", rather than > the register codes used elsewhere in the runtime. This patch > ensures that codes are used everywhere, and in the process cleans > up a bunch of redundant code and adds more structure to how the > set of allocatable registers is defined. > > Some highlights of changes: > > * TurboFan's RegisterConfiguration class moved to V8's top level > so that it can be shared with Crankshaft. > * Various "ToAllocationIndex" and related methods removed. > * Code that can be easily shared between Register classes on > different platforms is now shared. > * The list of allocatable registers on each platform is declared > as a list rather than implicitly via the register index <-> > code mapping. > > Committed: https://crrev.com/80bc6f6e11f79524e3f1ad05579583adfd5f18b2 > Cr-Commit-Position: refs/heads/master@{#30913} TBR=akos.palfi@imgtec.com,bmeurer@chromium.org,jarin@chromium.org,paul.lind@imgtec.com,titzer@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1365073002 Cr-Commit-Position: refs/heads/master@{#30914}
-
danno authored
Previous to this patch, both the lithium and TurboFan register allocators tracked allocated registers by "indices", rather than the register codes used elsewhere in the runtime. This patch ensures that codes are used everywhere, and in the process cleans up a bunch of redundant code and adds more structure to how the set of allocatable registers is defined. Some highlights of changes: * TurboFan's RegisterConfiguration class moved to V8's top level so that it can be shared with Crankshaft. * Various "ToAllocationIndex" and related methods removed. * Code that can be easily shared between Register classes on different platforms is now shared. * The list of allocatable registers on each platform is declared as a list rather than implicitly via the register index <-> code mapping. Review URL: https://codereview.chromium.org/1287383003 Cr-Commit-Position: refs/heads/master@{#30913}
-
- 04 Jun, 2015 1 commit
-
-
mbrandy authored
Embed constant pools within their corresponding Code objects. This removes support for out-of-line constant pools in favor of the new approach -- the main advantage being that it eliminates the need to allocate and manage separate constant pool array objects. Currently supported on PPC and ARM. Enabled by default on PPC only. This yields a 6% improvment in Octane on PPC64. R=bmeurer@chromium.org, rmcilroy@chromium.org, michael_dawson@ca.ibm.com BUG=chromium:478811 LOG=Y Review URL: https://codereview.chromium.org/1162993006 Cr-Commit-Position: refs/heads/master@{#28801}
-
- 03 Jun, 2015 1 commit
-
-
bmeurer authored
Revert of Embedded constant pools. (patchset #12 id:220001 of https://codereview.chromium.org/1131783003/) Reason for revert: Breaks Linux nosnap cctest/test-api/FastReturnValuesWithProfiler, see http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap%20-%20debug%20-%202/builds/609/steps/Check/logs/FastReturnValuesWithP.. Original issue's description: > Add support for Embedded Constant Pools for PPC and Arm > > Embed constant pools within their corresponding Code > objects. > > This removes support for out-of-line constant pools in favor > of the new approach -- the main advantage being that it > eliminates the need to allocate and manage separate constant > pool array objects. > > Currently supported on PPC and ARM. Enabled by default on > PPC only. > > This yields a 6% improvment in Octane on PPC64. > > R=danno@chromium.org, svenpanne@chromium.org, bmeurer@chromium.org, rmcilroy@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com > BUG=chromium:478811 > LOG=Y > > Committed: https://crrev.com/a9404029343d65f146e3443f5280c40a97e736af > Cr-Commit-Position: refs/heads/master@{#28770} TBR=rmcilroy@chromium.org,ishell@chromium.org,rodolph.perfetta@arm.com,mbrandy@us.ibm.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:478811 Review URL: https://codereview.chromium.org/1155703006 Cr-Commit-Position: refs/heads/master@{#28772}
-
- 02 Jun, 2015 1 commit
-
-
mbrandy authored
Embed constant pools within their corresponding Code objects. This removes support for out-of-line constant pools in favor of the new approach -- the main advantage being that it eliminates the need to allocate and manage separate constant pool array objects. Currently supported on PPC and ARM. Enabled by default on PPC only. This yields a 6% improvment in Octane on PPC64. R=danno@chromium.org, svenpanne@chromium.org, bmeurer@chromium.org, rmcilroy@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com BUG=chromium:478811 LOG=Y Review URL: https://codereview.chromium.org/1131783003 Cr-Commit-Position: refs/heads/master@{#28770}
-
- 01 Jun, 2015 1 commit
-
-
erikcorry authored
When compiling on a laptop I like to concatenate the small test files. This makes a big difference to compile times. These changes make that easier. R=ulan@chromium.org BUG= Review URL: https://codereview.chromium.org/1163803002 Cr-Commit-Position: refs/heads/master@{#28742}
-
- 11 Apr, 2015 1 commit
-
-
Weiliang Lin authored
R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1072343002 Cr-Commit-Position: refs/heads/master@{#27768}
-