Code Review for 6946040

Prepared by:never on Thu Apr 22 14:03:21 PDT 2010
Workspace:/net/smite.sfbay/export/ws/reverse
Compare against: ssh://hg.openjdk.java.net/jdk7/hotspot-comp-gate/hotspot
Summary of changes: 544 lines changed: 464 ins; 45 del; 35 mod; 50795 unchg
Patch of changes: 6946040.patch
Author comments:
6946040: add intrinsic for short and char reverseBytes
Reviewed-by: never, twisti
Contributed-by: Hiroshi Yamauchi <yamauchi@google.com>

This is Hiroshi's patch for reverseShort and reverseChar intrinsics.
I've redone the sparc implementation and fixed bugs in the original
implementation as well. The existing versions were broken with
implicit null checking since implicit null checks assume that the
faulting load is the first instruction in the node but because of the
way the memory was being handled it wasn't. The first instruction was
actually an add so if an implicit null happened the JVM would die.
The new code restricts these forms to use reg+reg addressing only so
any address math is handled automatically. Tested with new test case
and the original test case for the other intrinsics which I've moved
from the closed repo to the open one.

I also turned on the debug options in the adlc by default to make
debugging adlc problems easier.

Legend: Modified file
Deleted file
New file

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

3 lines changed: 0 ins; 3 del; 0 mod; 2490 unchg

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

163 lines changed: 100 ins; 42 del; 21 mod; 9765 unchg

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

25 lines changed: 24 ins; 0 del; 1 mod; 13845 unchg

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

25 lines changed: 24 ins; 0 del; 1 mod; 12871 unchg

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

3 lines changed: 2 ins; 0 del; 1 mod; 4059 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/classfile/vmSymbols.hpp

7 lines changed: 6 ins; 0 del; 1 mod; 1090 unchg

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

3 lines changed: 2 ins; 0 del; 1 mod; 330 unchg

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

18 lines changed: 14 ins; 0 del; 4 mod; 5258 unchg

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

21 lines changed: 20 ins; 0 del; 1 mod; 510 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw make/solaris/makefiles/adlc.make

4 lines changed: 3 ins; 0 del; 1 mod; 239 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw make/linux/makefiles/adlc.make

4 lines changed: 3 ins; 0 del; 1 mod; 219 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw make/windows/makefiles/adlc.make

4 lines changed: 2 ins; 0 del; 2 mod; 119 unchg

------ ------ ------ ------ --- New Patch Raw test/compiler/6431242/Test.java

176 lines changed: 176 ins; 0 del; 0 mod; 0 unchg

------ ------ ------ ------ --- New Patch Raw test/compiler/6946040/TestCharShortByteSwap.java

88 lines changed: 88 ins; 0 del; 0 mod; 0 unchg

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