From eacb0de8171a4a7538ca57ca30859802e5f7b35b Mon Sep 17 00:00:00 2001 From: hablich Date: Thu, 9 Apr 2015 00:11:12 -0700 Subject: [PATCH] Revert of Revert of X87: Reimplement Maps and Sets in JS (patchset #1 id:1 of https://codereview.chromium.org/1073723002/) Reason for revert: Revert the revert as this commit cannot be the cause for the closed tree. Original issue's description: > Revert of X87: Reimplement Maps and Sets in JS (patchset #1 id:1 of https://codereview.chromium.org/1066373002/) > > Reason for revert: > Reverting as it resulted in a closed waterfall. > > Original issue's description: > > X87: Reimplement Maps and Sets in JS > > > > port 909500aa1db9789b68e101045a6359a7fcb30e83 (r27605) > > > > original commit message: > > Previously, the only optimized code path for Maps and Sets was for String keys. > > This was achieved through an implementation of various complex operations > > in Hydrogen. This approach was neither scalable nor forward-compatible. > > > > This patch adds the necessary intrinsics to implement Maps and Sets almost entirely > > in JS. The added intrinsics are: > > > > %_FixedArrayGet > > %_FixedArraySet > > %_TheHole > > %_JSCollectionGetTable > > %_StringGetRawHashField > > > > With these additions, as well as a few changes to what's exposed as runtime functions, > > most of the C++ code backing Maps and Sets is gone (including both runtime code in > > objects.cc and Crankshaft in hydrogen.cc). > > > > BUG= > > > > Committed: https://crrev.com/56600a35a49ffa5abcba66b14839089de3589ad9 > > Cr-Commit-Position: refs/heads/master@{#27681} > > TBR=weiliang.lin@intel.com,chunyang.dai@intel.com > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG= > > Committed: https://crrev.com/a0486f128109443ed07802fb463c267e53533d81 > Cr-Commit-Position: refs/heads/master@{#27682} TBR=weiliang.lin@intel.com,chunyang.dai@intel.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/1077543002 Cr-Commit-Position: refs/heads/master@{#27685} --- src/x87/code-stubs-x87.cc | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/x87/code-stubs-x87.cc b/src/x87/code-stubs-x87.cc index e0c8f3d7b5a..2cd2e7ba46f 100644 --- a/src/x87/code-stubs-x87.cc +++ b/src/x87/code-stubs-x87.cc @@ -2186,16 +2186,6 @@ void CEntryStub::Generate(MacroAssembler* masm) { __ call(ebx); // Result is in eax or edx:eax - do not destroy these registers! - // Runtime functions should not return 'the hole'. Allowing it to escape may - // lead to crashes in the IC code later. - if (FLAG_debug_code) { - Label okay; - __ cmp(eax, isolate()->factory()->the_hole_value()); - __ j(not_equal, &okay, Label::kNear); - __ int3(); - __ bind(&okay); - } - // Check result for exception sentinel. Label exception_returned; __ cmp(eax, isolate()->factory()->exception());