X87: Reimplement Maps and Sets in JS
authorchunyang.dai <chunyang.dai@intel.com>
Thu, 9 Apr 2015 02:24:04 +0000 (19:24 -0700)
committerCommit bot <commit-bot@chromium.org>
Thu, 9 Apr 2015 02:24:13 +0000 (02:24 +0000)
commit56600a35a49ffa5abcba66b14839089de3589ad9
tree20a5fe621982947a9edc476e3095bb397dfcdbce
parente965a1f84a7a4024d40680ef63e82abeaef867fd
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=

Review URL: https://codereview.chromium.org/1066373002

Cr-Commit-Position: refs/heads/master@{#27681}
src/x87/code-stubs-x87.cc