|
Added infrastructure for optimizing new CanvasArray types in WebGL
specification under development. The optimizations are patterned after
those previously done for CanvasPixelArray. This CL adds all of the
necessary framework but continues to use the generic KeyedLoadIC and
KeyedStoreIC code, to create a baseline for benchmarking purposes. The
next CL will add the optimized ICs to ic-ia32.cc and ic-x64.cc.
These new CanvasArray types have different semantics than
CanvasPixelArray; out-of-range values are clamped via C cast
semantics, which is cheaper than the clamping behavior specified by
CanvasPixelArray. Out-of-range indices raise exceptions instead of
being silently ignored.
As part of this work, pulled FloatingPointHelper::AllocateHeapNumber
up to MacroAssembler on ia32 and x64 platforms. Slightly refactored
KeyedLoadIC and KeyedStoreIC. Fixed encoding for fistp_d on x64 and
added a few more instructions that are needed for the new ICs. The
test cases in test-api.cc have been verified by hand to exercise all
of the generated code paths in the forthcoming specialized ICs.
Committed: http://code.google.com/p/v8/source/detail?r=3096
Total comments: 57
Total comments: 5
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+1971 lines, -161 lines) |
Patch |
|
M |
include/v8.h
|
View
|
1
2
3
4
5
|
2 chunks |
+21 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/api.cc
|
View
|
1
2
3
4
5
|
1 chunk |
+24 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/arm/ic-arm.cc
|
View
|
1
2
3
4
5
|
2 chunks |
+14 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/builtins.h
|
View
|
1
2
3
4
5
|
1 chunk |
+52 lines, -38 lines |
0 comments
|
Download
|
|
M |
src/builtins.cc
|
View
|
1
2
3
4
5
|
2 chunks |
+76 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/factory.h
|
View
|
1
2
3
4
5
|
2 chunks |
+10 lines, -1 line |
0 comments
|
Download
|
|
M |
src/factory.cc
|
View
|
1
2
3
4
5
|
2 chunks |
+20 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/handles.cc
|
View
|
1
2
3
4
5
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
src/heap.h
|
View
|
1
2
3
4
5
|
3 chunks |
+20 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/heap.cc
|
View
|
1
2
3
4
5
|
3 chunks |
+89 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/ia32/codegen-ia32.cc
|
View
|
1
2
3
4
5
|
7 chunks |
+8 lines, -44 lines |
0 comments
|
Download
|
|
M |
src/ia32/ic-ia32.cc
|
View
|
1
2
3
4
5
|
4 chunks |
+15 lines, -9 lines |
0 comments
|
Download
|
|
M |
src/ia32/macro-assembler-ia32.h
|
View
|
1
2
3
4
5
|
1 chunk |
+9 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/ia32/macro-assembler-ia32.cc
|
View
|
1
2
3
4
5
|
1 chunk |
+18 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/ic.h
|
View
|
1
2
3
4
5
|
4 chunks |
+16 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/ic.cc
|
View
|
1
2
3
4
5
|
3 chunks |
+67 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/messages.js
|
View
|
1
2
3
4
5
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/objects.h
|
View
|
1
2
3
4
5
|
7 chunks |
+243 lines, -1 line |
0 comments
|
Download
|
|
M |
src/objects.cc
|
View
|
1
2
3
4
5
|
22 chunks |
+345 lines, -16 lines |
0 comments
|
Download
|
|
M |
src/objects-debug.cc
|
View
|
1
2
3
4
5
|
4 chunks |
+132 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/objects-inl.h
|
View
|
1
2
3
4
5
|
6 chunks |
+246 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/runtime.cc
|
View
|
1
2
3
4
5
|
5 chunks |
+108 lines, -1 line |
0 comments
|
Download
|
|
M |
src/v8-counters.h
|
View
|
1
2
3
4
5
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/x64/assembler-x64.h
|
View
|
1
2
3
4
5
|
2 chunks |
+7 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/x64/assembler-x64.cc
|
View
|
1
2
3
4
5
|
4 chunks |
+40 lines, -1 line |
0 comments
|
Download
|
|
M |
src/x64/codegen-x64.cc
|
View
|
1
2
3
4
5
|
6 chunks |
+6 lines, -36 lines |
0 comments
|
Download
|
|
M |
src/x64/ic-x64.cc
|
View
|
1
2
3
4
5
|
4 chunks |
+15 lines, -9 lines |
0 comments
|
Download
|
|
M |
src/x64/macro-assembler-x64.h
|
View
|
1
2
3
4
5
|
2 chunks |
+14 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/x64/macro-assembler-x64.cc
|
View
|
1
2
3
4
5
|
3 chunks |
+32 lines, -0 lines |
0 comments
|
Download
|
|
M |
test/cctest/test-api.cc
|
View
|
1
2
3
4
5
|
3 chunks |
+321 lines, -0 lines |
0 comments
|
Download
|
Total messages: 13 (0 generated)
|