Code Review for 6961690

Prepared by:twisti on Fri Nov 12 05:57:17 PST 2010
Workspace:/home/twisti/hotspot-comp/6961690
Compare against: /home/twisti/hotspot-comp/hotspot
Compare against version:1837
Summary of changes: 2159 lines changed: 1325 ins; 434 del; 400 mod; 86856 unchg
Patch of changes: 6961690.patch
Printable review: 6961690.pdf
Author comments:
6961690: load oops from constant table on SPARC
Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.
Reviewed-by:

oops should be loaded from the constant table of an nmethod instead of
materializing them with a long code sequence.

This fix introduces two new ideal nodes MachConstantBaseNode and
MachConstantNode. MachConstantBaseNode represents the base address of
the constant table, MachConstantNode a constant that should be read
from the constant table.

ADLC was changed to support three new keywords: constantaddress,
constanttablebase, and constantoffset. constantaddress represents the
absolute address of a constant and is used on x86. constanttablebase
represents the register that holds the constant table base address and
constantoffset is the relative offset to constanttablebase. The
latter two are used on SPARC.

For SPARC a new command line option was added:
UseRDPCForConstantTableBase. If that option is true the RDPC
instruction is used to get the constant table base address instead of
materializing the address. This option is currently off by default
and may be switched on for future SPARC implementations.

The patch also includes a change from Tom that fixes a bug that was
uncovered by this work:

http://cr.openjdk.java.net/~twisti/6961690/webrev.01/src/share/vm/opto/postaloc.cpp.udiff.html
Bug id: 6961690 load oops from constant table on SPARC
Legend: Modified file
Deleted file
New file

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/cpu/sparc/vm/assembler_sparc.cpp

rev 1838 : 6961690: load oops from constant table on SPARC
Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.
Reviewed-by:
39 lines changed: 39 ins; 0 del; 0 mod; 4832 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/cpu/sparc/vm/assembler_sparc.hpp

rev 1838 : 6961690: load oops from constant table on SPARC
Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.
Reviewed-by:
7 lines changed: 7 ins; 0 del; 0 mod; 2502 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/cpu/sparc/vm/assembler_sparc.inline.hpp

rev 1838 : 6961690: load oops from constant table on SPARC
Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.
Reviewed-by:
5 lines changed: 5 ins; 0 del; 0 mod; 824 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/cpu/sparc/vm/sparc.ad

rev 1838 : 6961690: load oops from constant table on SPARC
Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.
Reviewed-by:
321 lines changed: 157 ins; 98 del; 66 mod; 9749 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/cpu/x86/vm/assembler_x86.cpp

rev 1838 : 6961690: load oops from constant table on SPARC
Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.
Reviewed-by:
45 lines changed: 31 ins; 14 del; 0 mod; 8994 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/cpu/x86/vm/assembler_x86.hpp

rev 1838 : 6961690: load oops from constant table on SPARC
Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.
Reviewed-by:
54 lines changed: 50 ins; 0 del; 4 mod; 2271 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/cpu/x86/vm/x86_32.ad

rev 1838 : 6961690: load oops from constant table on SPARC
Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.
Reviewed-by:
339 lines changed: 127 ins; 105 del; 107 mod; 13853 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/cpu/x86/vm/x86_64.ad

rev 1838 : 6961690: load oops from constant table on SPARC
Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.
Reviewed-by:
344 lines changed: 93 ins; 145 del; 106 mod; 12570 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/os/linux/vm/vmError_linux.cpp

rev 1838 : 6961690: load oops from constant table on SPARC
Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.
Reviewed-by:
3 lines changed: 0 ins; 0 del; 3 mod; 109 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/adlc/adlparse.cpp

rev 1838 : 6961690: load oops from constant table on SPARC
Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.
Reviewed-by:
226 lines changed: 184 ins; 3 del; 39 mod; 4826 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/adlc/adlparse.hpp

rev 1838 : 6961690: load oops from constant table on SPARC
Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.
Reviewed-by:
8 lines changed: 5 ins; 0 del; 3 mod; 276 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/adlc/archDesc.hpp

rev 1838 : 6961690: load oops from constant table on SPARC
Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.
Reviewed-by:
11 lines changed: 5 ins; 1 del; 5 mod; 383 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/adlc/formssel.cpp

rev 1838 : 6961690: load oops from constant table on SPARC
Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.
Reviewed-by:
27 lines changed: 25 ins; 0 del; 2 mod; 4062 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/adlc/formssel.hpp

rev 1838 : 6961690: load oops from constant table on SPARC
Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.
Reviewed-by:
9 lines changed: 5 ins; 0 del; 4 mod; 1060 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/adlc/output_c.cpp

rev 1838 : 6961690: load oops from constant table on SPARC
Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.
Reviewed-by:
136 lines changed: 109 ins; 1 del; 26 mod; 4124 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/adlc/output_h.cpp

rev 1838 : 6961690: load oops from constant table on SPARC
Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.
Reviewed-by:
25 lines changed: 6 ins; 18 del; 1 mod; 2175 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/asm/assembler.hpp

rev 1838 : 6961690: load oops from constant table on SPARC
Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.
Reviewed-by:
22 lines changed: 18 ins; 2 del; 2 mod; 347 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/asm/assembler.inline.hpp

rev 1838 : 6961690: load oops from constant table on SPARC
Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.
Reviewed-by:
29 lines changed: 0 ins; 28 del; 1 mod; 106 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/compiler/disassembler.cpp

rev 1838 : 6961690: load oops from constant table on SPARC
Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.
Reviewed-by:
13 lines changed: 13 ins; 0 del; 0 mod; 450 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/opto/c2_globals.hpp

rev 1838 : 6961690: load oops from constant table on SPARC
Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.
Reviewed-by:
4 lines changed: 3 ins; 0 del; 1 mod; 439 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/opto/compile.cpp

rev 1838 : 6961690: load oops from constant table on SPARC
Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.
Reviewed-by:
41 lines changed: 34 ins; 0 del; 7 mod; 2807 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/opto/compile.hpp

rev 1838 : 6961690: load oops from constant table on SPARC
Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.
Reviewed-by:
14 lines changed: 12 ins; 0 del; 2 mod; 777 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/opto/gcm.cpp

rev 1838 : 6961690: load oops from constant table on SPARC
Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.
Reviewed-by:
1 line changed: 0 ins; 0 del; 1 mod; 1986 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/opto/machnode.cpp

rev 1838 : 6961690: load oops from constant table on SPARC
Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.
Reviewed-by:
200 lines changed: 199 ins; 0 del; 1 mod; 742 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/opto/machnode.hpp

rev 1838 : 6961690: load oops from constant table on SPARC
Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.
Reviewed-by:
134 lines changed: 131 ins; 3 del; 0 mod; 827 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/opto/node.hpp

rev 1838 : 6961690: load oops from constant table on SPARC
Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.
Reviewed-by:
11 lines changed: 6 ins; 0 del; 5 mod; 1551 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/opto/output.cpp

rev 1838 : 6961690: load oops from constant table on SPARC
Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.
Reviewed-by:
70 lines changed: 42 ins; 16 del; 12 mod; 2777 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/opto/postaloc.cpp

rev 1838 : 6961690: load oops from constant table on SPARC
Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.
Reviewed-by:
13 lines changed: 13 ins; 0 del; 0 mod; 606 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/utilities/debug.cpp

rev 1838 : 6961690: load oops from constant table on SPARC
Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.
Reviewed-by:
8 lines changed: 6 ins; 0 del; 2 mod; 831 unchg

This code review page was prepared using /home/twisti/bin/webrev (vers 23.18-hg-never).