|
Reland 7917:
Better support for 'polymorphic' JS and external arrays
Allow keyed store/load stubs to switch between external array and fast JS arrays without forcing a state transition to the generic stub.
There CL consists of two pieces of functionality. First, code stubs for fast element arrays don't immediately transition to the MEGAMORPHIC state when there's a map mismatch. Second, two ICs are cached per map for fast elements, the MONOMORPHIC version, and a new MEGAMORPHIC version that handles two or more different maps and dispatches to shared stubs to perform the array operation.
Committed: http://code.google.com/p/v8/source/detail?r=7935
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+2003 lines, -849 lines) |
Patch |
|
M |
src/arm/code-stubs-arm.h
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
src/arm/ic-arm.cc
|
View
|
|
5 chunks |
+31 lines, -10 lines |
0 comments
|
Download
|
|
M |
src/arm/macro-assembler-arm.h
|
View
|
|
2 chunks |
+11 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/arm/macro-assembler-arm.cc
|
View
|
|
1 chunk |
+17 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/arm/stub-cache-arm.cc
|
View
|
|
13 chunks |
+281 lines, -134 lines |
0 comments
|
Download
|
|
M |
src/builtins.h
|
View
|
|
2 chunks |
+117 lines, -110 lines |
0 comments
|
Download
|
|
M |
src/builtins.cc
|
View
|
|
3 chunks |
+23 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/code-stubs.h
|
View
|
|
2 chunks |
+84 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/code-stubs.cc
|
View
|
|
3 chunks |
+22 lines, -1 line |
0 comments
|
Download
|
|
M |
src/flag-definitions.h
|
View
|
|
1 chunk |
+3 lines, -4 lines |
0 comments
|
Download
|
|
M |
src/heap.h
|
View
|
|
3 chunks |
+10 lines, -29 lines |
0 comments
|
Download
|
|
M |
src/ia32/ic-ia32.cc
|
View
|
1
|
6 chunks |
+32 lines, -8 lines |
0 comments
|
Download
|
|
M |
src/ia32/macro-assembler-ia32.h
|
View
|
|
2 chunks |
+12 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/ia32/macro-assembler-ia32.cc
|
View
|
|
1 chunk |
+15 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/ia32/stub-cache-ia32.cc
|
View
|
|
8 chunks |
+264 lines, -114 lines |
0 comments
|
Download
|
|
M |
src/ic.h
|
View
|
|
7 chunks |
+116 lines, -26 lines |
0 comments
|
Download
|
|
M |
src/ic.cc
|
View
|
|
9 chunks |
+392 lines, -44 lines |
0 comments
|
Download
|
|
M |
src/list.h
|
View
|
|
1 chunk |
+5 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/log.h
|
View
|
|
2 chunks |
+46 lines, -44 lines |
0 comments
|
Download
|
|
M |
src/log.cc
|
View
|
|
3 chunks |
+1 line, -9 lines |
0 comments
|
Download
|
|
M |
src/mark-compact.cc
|
View
|
|
2 chunks |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/mips/code-stubs-mips.cc
|
View
|
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
|
M |
src/objects.h
|
View
|
|
3 chunks |
+1 line, -8 lines |
0 comments
|
Download
|
|
M |
src/objects.cc
|
View
|
|
2 chunks |
+0 lines, -4 lines |
0 comments
|
Download
|
|
M |
src/objects-inl.h
|
View
|
|
3 chunks |
+3 lines, -5 lines |
0 comments
|
Download
|
|
M |
src/spaces.cc
|
View
|
|
2 chunks |
+1 line, -3 lines |
0 comments
|
Download
|
|
M |
src/stub-cache.h
|
View
|
1
|
8 chunks |
+59 lines, -20 lines |
0 comments
|
Download
|
|
M |
src/stub-cache.cc
|
View
|
1
|
8 chunks |
+113 lines, -142 lines |
0 comments
|
Download
|
|
M |
src/type-info.cc
|
View
|
|
4 chunks |
+9 lines, -6 lines |
0 comments
|
Download
|
|
M |
src/v8-counters.h
|
View
|
|
3 chunks |
+4 lines, -1 line |
0 comments
|
Download
|
|
M |
src/x64/ic-x64.cc
|
View
|
1
|
6 chunks |
+32 lines, -8 lines |
0 comments
|
Download
|
|
M |
src/x64/macro-assembler-x64.h
|
View
|
|
2 chunks |
+9 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/x64/macro-assembler-x64.cc
|
View
|
|
1 chunk |
+15 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/x64/stub-cache-x64.cc
|
View
|
|
8 chunks |
+272 lines, -109 lines |
0 comments
|
Download
|
Total messages: 2 (0 generated)
|