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