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 909500aa1d
(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=
Review URL: https://codereview.chromium.org/1073723002
Cr-Commit-Position: refs/heads/master@{#27682}
This commit is contained in:
parent
56600a35a4
commit
a0486f1281
@ -2186,6 +2186,16 @@ 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());
|
||||
|
Loading…
Reference in New Issue
Block a user