|
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
Total comments: 1
|
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
|
Total messages: 5 (2 generated)
|