- 03 Jul, 2018 1 commit
-
-
Dan Elphick authored
In future the RO_SPACE root accessors in Heap will become private, so instead convert them all to use ReadOnlyRoots. Bug: v8:7786 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: Ifd2f75298bacd2f6a89c551f689d269a59d87e97 Reviewed-on: https://chromium-review.googlesource.com/1124470 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#54183}
-
- 21 Jun, 2018 1 commit
-
-
Leszek Swirski authored
Bug: v8:7786 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I98ac4de406630c14280927240e9471049af3e790 Reviewed-on: https://chromium-review.googlesource.com/1108118Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#53920}
-
- 17 Apr, 2018 1 commit
-
-
Jakob Kummerow authored
Casting from a floating-point type to an integer type is undefined behavior if the integral part of the float cannot be represented in the range of the int. Bug: v8:3770, chromium:831145 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I2e85ea8b0f09bbeeb3e0dcc1135fc747fa312f6d Reviewed-on: https://chromium-review.googlesource.com/1011651 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#52631}
-
- 17 Jan, 2018 1 commit
-
-
Benedikt Meurer authored
This adds a new simplified operator NumberToString, which just lowers to a call to the NumberToString builtin, and hooks that up to the typed lowering (addressing a long-standing TODO). Drive-by-fix: Also remove the %NumberToString runtime entry, and just always use the %NumberToStringSkipCache entry from CSA, since we only go there if the cache lookup already failed. Bug: v8:5267, v8:7109 Change-Id: I5ca698c98679653813088a404f1fd38903a73c0e Reviewed-on: https://chromium-review.googlesource.com/779099 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#50636}
-
- 06 Nov, 2017 1 commit
-
-
Clemens Hammacher authored
This is a reland of 7d231e57, fixed to avoid instantiating CountLeadingZeros for bits==0. Original change's description: > [bits] Consolidate Count{Leading,Trailing}Zeros > > Instead of having one method for 32 bit integers and one for 64 bit, > plus a templatized version to choose from those two, just implement one > version which handles unsigned integers of any size. Also, make them > constexpr. > The Count{Leading,Trailing}Zeros{32,64} methods are kept for now in > order to keep the amount of code changes small. Also, sometimes it > improves readability by stating exactly the size of the argument, > especially for leading zeros (where zero-extending would add more > leading zeros). > > CountLeadingZeros now uses a binary search inspired implementation > as proposed in Hacker's Delight. It's more than 20% faster on x64 if > the builtins are disabled. > CountTrailingZeros falls back to CountPopulation instead of counting in > a naive loop. This is ~50% faster. > > R=mstarzinger@chromium.org > > Change-Id: I1d8bf1d7295b930724163248150444bd17fbb34e > Reviewed-on: https://chromium-review.googlesource.com/741231 > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#49106} Change-Id: Icdff2510ec66d1c96a1912cef29d77d8550994ee Reviewed-on: https://chromium-review.googlesource.com/753903Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#49138}
-
- 04 Nov, 2017 1 commit
-
-
Michael Achenbach authored
This reverts commit 7d231e57. Reason for revert: Breaks revert for win-clang: https://build.chromium.org/p/tryserver.chromium.win/builders/win_clang/builds/342755 Original change's description: > [bits] Consolidate Count{Leading,Trailing}Zeros > > Instead of having one method for 32 bit integers and one for 64 bit, > plus a templatized version to choose from those two, just implement one > version which handles unsigned integers of any size. Also, make them > constexpr. > The Count{Leading,Trailing}Zeros{32,64} methods are kept for now in > order to keep the amount of code changes small. Also, sometimes it > improves readability by stating exactly the size of the argument, > especially for leading zeros (where zero-extending would add more > leading zeros). > > CountLeadingZeros now uses a binary search inspired implementation > as proposed in Hacker's Delight. It's more than 20% faster on x64 if > the builtins are disabled. > CountTrailingZeros falls back to CountPopulation instead of counting in > a naive loop. This is ~50% faster. > > R=mstarzinger@chromium.org > > Change-Id: I1d8bf1d7295b930724163248150444bd17fbb34e > Reviewed-on: https://chromium-review.googlesource.com/741231 > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#49106} TBR=mstarzinger@chromium.org,clemensh@chromium.org Change-Id: Iceeb35bf9c7539a1013c9bdbc47118008611bef2 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/753463Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#49123}
-
- 03 Nov, 2017 1 commit
-
-
Clemens Hammacher authored
Instead of having one method for 32 bit integers and one for 64 bit, plus a templatized version to choose from those two, just implement one version which handles unsigned integers of any size. Also, make them constexpr. The Count{Leading,Trailing}Zeros{32,64} methods are kept for now in order to keep the amount of code changes small. Also, sometimes it improves readability by stating exactly the size of the argument, especially for leading zeros (where zero-extending would add more leading zeros). CountLeadingZeros now uses a binary search inspired implementation as proposed in Hacker's Delight. It's more than 20% faster on x64 if the builtins are disabled. CountTrailingZeros falls back to CountPopulation instead of counting in a naive loop. This is ~50% faster. R=mstarzinger@chromium.org Change-Id: I1d8bf1d7295b930724163248150444bd17fbb34e Reviewed-on: https://chromium-review.googlesource.com/741231Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#49106}
-
- 25 Oct, 2017 1 commit
-
-
Jakob Kummerow authored
and use a newly-introduced "enum class Operation" in all other places that so far passed Token::Values around. Also delete some related dead code along the way. Bug: v8:6921 Change-Id: I062f396d304aa62298cfeff202e3132a4a5597c1 Reviewed-on: https://chromium-review.googlesource.com/736851 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#48944}
-
- 20 Oct, 2017 1 commit
-
-
Toon Verwaest authored
Bug: Change-Id: I67cfd5634e86472425c161b461684bd975e58a41 Reviewed-on: https://chromium-review.googlesource.com/730204 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#48783}
-
- 26 Sep, 2017 1 commit
-
-
Jakob Kummerow authored
- Move things to conversions.cc that don't need to be in headers - Turn InternalStringToInt into a subclassable helper class so we can re-use it for BigInt.parseInt - Bonus: play a round of IWYU with all the .cc files who thought that #including conversions-inl.h would give them nice Unicode things Bug: v8:6791 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I64022543a9b83002e2b78416c7e87b40a1a016e6 Reviewed-on: https://chromium-review.googlesource.com/673725 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#48174}
-
- 02 Mar, 2017 1 commit
-
-
loorongjie authored
BUG=v8:6005 Review-Url: https://codereview.chromium.org/2726853006 Cr-Commit-Position: refs/heads/master@{#43531}
-
- 05 Jan, 2017 1 commit
-
-
franzih authored
BUG= Review-Url: https://codereview.chromium.org/2613723002 Cr-Commit-Position: refs/heads/master@{#42083}
-
- 18 Oct, 2016 1 commit
-
-
bmeurer authored
R=epertoso@chromium.org BUG=v8:5049 Review-Url: https://codereview.chromium.org/2424403002 Cr-Commit-Position: refs/heads/master@{#40399}
-
- 05 Jul, 2016 3 commits
-
-
bmeurer authored
This drops the %_ValueOf intrinsic, but keeps the runtime entry %ValueOf for now, by either migrating the functionality (mostly Debug mirror or toString/valueOf methods) to C++ or TurboFan builtins, or switching to the %ValueOf runtime call when it's not performance critical anyways. The %_ValueOf intrinsic was one of the last blockers for fixing the unsound machine operator typing in TurboFan. R=yangguo@chromium.org BUG=v8:5049 Committed: https://crrev.com/293bd7882987f00e465710ce468bfb1eaa7d3fa2 Review-Url: https://codereview.chromium.org/2126453002 Cr-Original-Commit-Position: refs/heads/master@{#37512} Cr-Commit-Position: refs/heads/master@{#37519}
-
machenbach authored
Revert of [intrinsic] Drop the %_ValueOf intrinsic. (patchset #2 id:20001 of https://codereview.chromium.org/2126453002/ ) Reason for revert: [Sheriff] Breaks without i18n: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20noi18n%20-%20debug/builds/8466 Original issue's description: > [intrinsic] Drop the %_ValueOf intrinsic. > > This drops the %_ValueOf intrinsic, but keeps the runtime entry > %ValueOf for now, by either migrating the functionality (mostly > Debug mirror or toString/valueOf methods) to C++ or TurboFan > builtins, or switching to the %ValueOf runtime call when it's > not performance critical anyways. > > The %_ValueOf intrinsic was one of the last blockers for fixing > the unsound machine operator typing in TurboFan. > > R=yangguo@chromium.org > BUG=v8:5049 > > Committed: https://crrev.com/293bd7882987f00e465710ce468bfb1eaa7d3fa2 > Cr-Commit-Position: refs/heads/master@{#37512} TBR=yangguo@chromium.org,bmeurer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5049 Review-Url: https://codereview.chromium.org/2117273002 Cr-Commit-Position: refs/heads/master@{#37514}
-
bmeurer authored
This drops the %_ValueOf intrinsic, but keeps the runtime entry %ValueOf for now, by either migrating the functionality (mostly Debug mirror or toString/valueOf methods) to C++ or TurboFan builtins, or switching to the %ValueOf runtime call when it's not performance critical anyways. The %_ValueOf intrinsic was one of the last blockers for fixing the unsound machine operator typing in TurboFan. R=yangguo@chromium.org BUG=v8:5049 Review-Url: https://codereview.chromium.org/2126453002 Cr-Commit-Position: refs/heads/master@{#37512}
-
- 08 Jun, 2016 1 commit
-
-
mstarzinger authored
This removes explicit uses of the RUNTIME_ASSERT macro from some runtime methods. The implicit ones in CONVERT_FOO_ARG_CHECKED will be addressed in a separate CL for all runtime modules at once. R=verwaest@chromium.org BUG=v8:5066 Review-Url: https://codereview.chromium.org/2041353003 Cr-Commit-Position: refs/heads/master@{#36815}
-
- 27 May, 2016 1 commit
-
-
bmeurer authored
This was initially used to special case some weird date.js behavior, but has since been abused in other areas. In case of the string character access, everything that is outside the Smi range cannot be a valid string index anyways, so %NumberToSmi is perfect here in either case, and for ToPositiveInteger it's better to just use ToInteger adding +0 to turn -0 into +0. R=ishell@chromium.org BUG=v8:5049 Review-Url: https://codereview.chromium.org/2010183003 Cr-Commit-Position: refs/heads/master@{#36545}
-
- 25 Feb, 2016 1 commit
-
-
bmeurer authored
Migrate Math.imul, Math.fround, Math.acos, Math.asin and Math.atan to C++ builtins, as these ones call into C++ anyway and so there's no need to have this extra wrapper around it. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1731543004 Cr-Commit-Position: refs/heads/master@{#34274}
-
- 10 Dec, 2015 2 commits
-
-
cbruni authored
BUG= Review URL: https://codereview.chromium.org/1512903002 Cr-Commit-Position: refs/heads/master@{#32746}
-
balazs.kilvady authored
BUG= TEST=mjsunit/regress/regress-undefined-nan, mjsunit/regress/regress-undefined-nan3, mjsunit/regress/regress-2596 Review URL: https://codereview.chromium.org/1507363002 Cr-Commit-Position: refs/heads/master@{#32741}
-
- 01 Oct, 2015 1 commit
-
-
bmeurer authored
Introduce %_ToNumber intrinsic, which just calls to the existing ToNumberStub, and remove all uses of our custom JavaScript plus intrinsics based ToNumber and friends. Also replace the TO_NUMBER_INLINE macro with TO_NUMBER, which is currently a wrapper for %_ToNumber. Newly written JS code should use TO_NUMBER (similar to TO_STRING, TO_INT32, and friends). Also finally remove the DefaultString/DefaultNumber builtins, which are basically the ES5 version of ToPrimitive. Now all code uses the ES6 version, which is implemented in Object::ToPrimitive and JSReceiver::ToPrimitive in C++. CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_layout_dbg,v8_linux_nosnap_dbg R=jarin@chromium.org BUG=v8:4307 LOG=n Review URL: https://codereview.chromium.org/1384443002 Cr-Commit-Position: refs/heads/master@{#31054}
-
- 29 Sep, 2015 1 commit
-
-
bmeurer authored
This adds ES6 compliant Object::ToInteger, Object::ToInt32, Object::ToUint32 and Object::ToLength, and replaces the old Execution wrappers of those abstract operations (which were not using the correct ToPrimitive). This also introduces proper %ToInteger and %ToLength runtime entries, with a fast path %_ToInteger supported in fullcodegen and Crankshaft (for now). Internal JavaScript code should use TO_INTEGER and TO_LENGTH respectively. CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_layout_dbg,v8_linux_nosnap_dbg BUG=v8:4307 LOG=n Review URL: https://codereview.chromium.org/1378533002 Cr-Commit-Position: refs/heads/master@{#30993}
-
- 18 Sep, 2015 1 commit
-
-
bmeurer authored
This removes the weird COMPARE and COMPARE_STRONG JavaScript builtins and replaces them with a proper C++ implementation in Object::Compare and appropriate wrappers Object::LessThan, Object::GreaterThan, and friends that are intended to be used by a true/false returning CompareIC in the future, as well as the interpreter. As a short-term solution we provide %Compare and %Compare_Strong entry points for the current CompareIC that return the appropriate integer values expected by fullcodegen currently. Now the Abstract Relational Comparison is also using the correct ToPrimitive implementation, which properly supports @@toPrimitive. BUG=v8:4307 LOG=n Review URL: https://codereview.chromium.org/1350113002 Cr-Commit-Position: refs/heads/master@{#30816}
-
- 15 Sep, 2015 1 commit
-
-
bmeurer authored
Move the implementation of the Abstract Equality Comparison to the runtime and thereby remove the EQUALS dispatcher builtin. Also remove the various runtime entry points that were only used to support the EQUALS builtin. Now the Abstract Equality Comparison is also using the correct ToPrimitive implementation, which properly supports @@toPrimitive. CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_layout_dbg,v8_linux_nosnap_dbg R=mstarzinger@chromium.org BUG=v8:4307 LOG=n Review URL: https://codereview.chromium.org/1337993005 Cr-Commit-Position: refs/heads/master@{#30747}
-
- 10 Sep, 2015 1 commit
-
-
bmeurer authored
Replace the ADD, SUB, etc. builtins with proper runtime implementations, and expose them as runtime calls that can be used by the code stubs and the interpreter (for now). Also remove all the support runtime functions for ADD, SUB and friends, namely %NumberAdd, %NumberSub, and so on. R=mstarzinger@chromium.org CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_layout_dbg,v8_linux_nosnap_dbg Review URL: https://codereview.chromium.org/1333843002 Cr-Commit-Position: refs/heads/master@{#30680}
-
- 09 Sep, 2015 1 commit
-
-
bmeurer authored
This has been dead code for quite a while now. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1314353006 Cr-Commit-Position: refs/heads/master@{#30652}
-
- 04 Sep, 2015 1 commit
-
-
bmeurer authored
Similar to DELETE, the IN builtin is just a thin wrapper for %HasElement and %HasProperty anyway, and cannot be optimized, plus it had a weird special fast case (which also involved at least one LOAD_IC plus some intrinsic magic). R=yangguo@chromium.org,jarin@chromium.org CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_win_nosnap_shared_rel Committed: https://crrev.com/72d60a1e80e81e2e68ca402665e2acbc46c5e471 Cr-Commit-Position: refs/heads/master@{#30154} Review URL: https://codereview.chromium.org/1295433002 Cr-Commit-Position: refs/heads/master@{#30582}
-
- 28 Aug, 2015 1 commit
-
-
bmeurer authored
This is the first step towards a spec compliant ToPrimitive implementation (and therefore spec compliant ToNumber, ToString, ToName, and friends). It adds support for the @@toPrimitive symbol that was introduced with ES2015, and also adds the new Symbol.prototype[@@toPrimitive] and Date.prototype[@@toPrimitive] initial properties. There are now runtime functions for %ToPrimitive, %ToNumber and %ToString, which do the right thing and should be used as fallbacks instead of the hairy runtime.js implementations. I will do the same for the other conversion operations mentioned by the spec in follow up CLs. Once everything is in place we can look into optimizing things further, so that we don't always call into the runtime. Also fixed Date.prototype.toJSON to be spec compliant. R=mstarzinger@chromium.org, yangguo@chromium.org BUG=v8:4307 LOG=y Review URL: https://codereview.chromium.org/1306303003 Cr-Commit-Position: refs/heads/master@{#30434}
-
- 18 Aug, 2015 1 commit
-
-
mstarzinger authored
R=titzer@chromium.org Review URL: https://codereview.chromium.org/1293053004 Cr-Commit-Position: refs/heads/master@{#30232}
-
- 13 Aug, 2015 2 commits
-
-
bmeurer authored
Revert of [runtime] Remove useless IN builtin. (patchset #2 id:20001 of https://codereview.chromium.org/1295433002/ ) Reason for revert: Breaks win32 nosnap Original issue's description: > [runtime] Remove useless IN builtin. > > Similar to DELETE, the IN builtin is just a thin wrapper for %HasElement > and %HasProperty anyway, and cannot be optimized, plus it had a weird > special fast case (which also involved at least one LOAD_IC plus some > intrinsic magic). > > R=yangguo@chromium.org,jarin@chromium.org > > Committed: https://crrev.com/72d60a1e80e81e2e68ca402665e2acbc46c5e471 > Cr-Commit-Position: refs/heads/master@{#30154} TBR=yangguo@chromium.org,jarin@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1288923002 Cr-Commit-Position: refs/heads/master@{#30155}
-
bmeurer authored
Similar to DELETE, the IN builtin is just a thin wrapper for %HasElement and %HasProperty anyway, and cannot be optimized, plus it had a weird special fast case (which also involved at least one LOAD_IC plus some intrinsic magic). R=yangguo@chromium.org,jarin@chromium.org Review URL: https://codereview.chromium.org/1295433002 Cr-Commit-Position: refs/heads/master@{#30154}
-
- 10 Aug, 2015 1 commit
-
-
bmeurer authored
No need to provide TO_INT32/TO_UINT32 functions for every native context, as they can be implemented in terms of TO_NUMBER more easily and efficiently. Also remove the obsolete TO_BOOLEAN_FUN_INDEX from the native contexts. Review URL: https://codereview.chromium.org/1275013004 Cr-Commit-Position: refs/heads/master@{#30080}
-
- 05 Aug, 2015 1 commit
-
-
mstarzinger authored
R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1269323003 Cr-Commit-Position: refs/heads/master@{#30023}
-
- 20 May, 2015 1 commit
-
-
erikcorry authored
R=verwaest@chromium.org BUG= Review URL: https://codereview.chromium.org/1143133002 Cr-Commit-Position: refs/heads/master@{#28502}
-
- 21 Apr, 2015 1 commit
-
-
yangguo authored
R=dusan.milosavljevic@imgtec.com Review URL: https://codereview.chromium.org/1101503003 Cr-Commit-Position: refs/heads/master@{#27967}
-
- 20 Apr, 2015 1 commit
-
-
yangguo authored
R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/1096763003 Cr-Commit-Position: refs/heads/master@{#27949}
-
- 31 Mar, 2015 1 commit
-
-
arv authored
We have been shipping harmony numeric literals since M41 R=rossberg@chromium.org LOG=Y Review URL: https://codereview.chromium.org/1024603002 Cr-Commit-Position: refs/heads/master@{#27545}
-
- 05 Mar, 2015 1 commit
-
-
svenpanne authored
This way, every function in those lists has one C++ implementation called Runtime_##name. The previous distinction was confusing. Review URL: https://codereview.chromium.org/983623002 Cr-Commit-Position: refs/heads/master@{#27010}
-
- 21 Jan, 2015 1 commit
-
-
bmeurer authored
Use std::numeric_limits<double>::quiet_NaN() and std::numeric_limits<float>::quiet_NaN() instead. Review URL: https://codereview.chromium.org/864803002 Cr-Commit-Position: refs/heads/master@{#26195}
-