Prepared by: | twisti on Thu Nov 18 08:15:28 PST 2010 |
---|---|
Workspace: | /home/twisti/hotspot-comp/6961690 |
Compare against: | /home/twisti/hotspot-comp/hotspot |
Compare against version: | 1838 |
Summary of changes: | 2186 lines changed: 1350 ins; 434 del; 402 mod; 87033 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 1839 : 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 1839 : 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 1839 : 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/c2_globals_sparc.hpp
rev 1839 : 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: 3 ins; 0 del; 0 mod; 90 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/cpu/sparc/vm/sparc.ad
rev 1839 : 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:317 lines changed: 153 ins; 98 del; 66 mod; 9749 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/cpu/x86/vm/assembler_x86.cpp
rev 1839 : 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 1839 : 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/c2_globals_x86.hpp
rev 1839 : 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: 3 ins; 0 del; 0 mod; 89 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/cpu/x86/vm/x86_32.ad
rev 1839 : 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:333 lines changed: 121 ins; 105 del; 107 mod; 13853 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/cpu/x86/vm/x86_64.ad
rev 1839 : 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:338 lines changed: 87 ins; 145 del; 106 mod; 12570 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/os/linux/vm/vmError_linux.cpp
rev 1839 : 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 1839 : 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 1839 : 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 1839 : 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 1839 : 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 1839 : 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 1839 : 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 1839 : 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:26 lines changed: 6 ins; 18 del; 2 mod; 2174 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/share/vm/asm/assembler.hpp
rev 1839 : 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 1839 : 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 1839 : 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 1839 : 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: 6 ins; 0 del; 1 mod; 439 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/share/vm/opto/compile.cpp
rev 1839 : 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:245 lines changed: 238 ins; 0 del; 7 mod; 2807 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/share/vm/opto/compile.hpp
rev 1839 : 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:96 lines changed: 94 ins; 0 del; 2 mod; 777 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/share/vm/opto/gcm.cpp
rev 1839 : 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:2 lines changed: 0 ins; 0 del; 2 mod; 1985 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/share/vm/opto/machnode.cpp
rev 1839 : 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:15 lines changed: 14 ins; 0 del; 1 mod; 742 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/share/vm/opto/machnode.hpp
rev 1839 : 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:63 lines changed: 60 ins; 3 del; 0 mod; 827 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/share/vm/opto/node.hpp
rev 1839 : 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 1839 : 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:72 lines changed: 44 ins; 16 del; 12 mod; 2777 unchg
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/share/vm/opto/postaloc.cpp
rev 1839 : 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 1839 : 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).