Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(459)

Issue 1316543002: MIPS: Correctify instanceof and make it optimizable. (Closed)

Created:
5 years, 4 months ago by paul.l...
Modified:
5 years, 4 months ago
CC:
v8-dev
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

MIPS: Correctify instanceof and make it optimizable. The previous hack with HInstanceOfKnownGlobal was not only slower, but also very brittle and required a lot of weird hacks to support it. And what's even more important it wasn't even correct (because a map check on the lhs is never enough for instanceof). The new implementation provides a sane runtime implementation for InstanceOf plus a fast case in the InstanceOfStub, combined with a proper specialization in the case of a known global in CrankShaft, which does only the prototype chain walk (coupled with a code dependency on the known global). As a drive-by-fix: Also fix the incorrect Object.prototype.isPrototypeOf implementation. BUG=v8:4376 LOG=y

Patch Set 1 #

Total comments: 1

Patch Set 2 : Fix big-endian typo, and remove now-unused functions. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+354 lines, -1021 lines) Patch
M src/full-codegen/mips/full-codegen-mips.cc View 1 chunk +7 lines, -5 lines 0 comments Download
M src/full-codegen/mips64/full-codegen-mips64.cc View 1 chunk +7 lines, -5 lines 0 comments Download
M src/mips/code-stubs-mips.cc View 1 chunk +93 lines, -190 lines 0 comments Download
M src/mips/interface-descriptors-mips.cc View 1 chunk +2 lines, -2 lines 0 comments Download
M src/mips/lithium-codegen-mips.h View 2 chunks +5 lines, -7 lines 0 comments Download
M src/mips/lithium-codegen-mips.cc View 2 chunks +38 lines, -136 lines 0 comments Download
M src/mips/lithium-mips.h View 3 chunks +13 lines, -29 lines 0 comments Download
M src/mips/lithium-mips.cc View 2 chunks +10 lines, -19 lines 0 comments Download
M src/mips/macro-assembler-mips.h View 1 2 chunks +2 lines, -14 lines 0 comments Download
M src/mips/macro-assembler-mips.cc View 1 3 chunks +2 lines, -96 lines 0 comments Download
M src/mips64/code-stubs-mips64.cc View 1 chunk +93 lines, -190 lines 0 comments Download
M src/mips64/interface-descriptors-mips64.cc View 1 chunk +2 lines, -2 lines 0 comments Download
M src/mips64/lithium-codegen-mips64.h View 2 chunks +5 lines, -6 lines 0 comments Download
M src/mips64/lithium-codegen-mips64.cc View 2 chunks +39 lines, -133 lines 0 comments Download
M src/mips64/lithium-mips64.h View 3 chunks +13 lines, -29 lines 0 comments Download
M src/mips64/lithium-mips64.cc View 2 chunks +10 lines, -19 lines 0 comments Download
M src/mips64/macro-assembler-mips64.h View 1 2 chunks +2 lines, -14 lines 0 comments Download
M src/mips64/macro-assembler-mips64.cc View 1 3 chunks +2 lines, -125 lines 0 comments Download
M src/objects.h View 1 3 chunks +9 lines, -0 lines 0 comments Download

Messages

Total messages: 5 (2 generated)
paul.l...
l-g-t-m except for one typo. I will also delete a couple (now) unused functions from ...
5 years, 4 months ago (2015-08-25 01:10:08 UTC) #2
paul.l...
The ports were done by Balázs & Ákos, I've re-uploaded this to fix a tiny ...
5 years, 4 months ago (2015-08-25 01:29:38 UTC) #4
Benedikt Meurer
5 years, 4 months ago (2015-08-25 04:22:07 UTC) #5
Thanks a lot, Balázs & Ákos & Paul, I've included the patch.

Powered by Google App Engine
This is Rietveld 408576698