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).