README

Sun, 08 May 2016 22:17:54 -0400

author
Jin
date
Sun, 08 May 2016 22:17:54 -0400
changeset 7
e26ad49b7194
parent 0
f90c822e73f8
permissions
-rw-r--r--

[C2] disjoint_byte_copy: fix unaligned LW/SW

/mnt/j2sdk-image/bin/java \
-XX:+PrintCompilation \
-XX:CompileCommand="compileonly,java/util/jar/Manifest\$FastInputStream.*" \
-jar SPECjvm2008.jar -ikv -coe -ict -bt 1 \
compress

It triggers 35000 unaligned instructions.

280 CALL_LEAF_NOFP,runtime jbyte_arraycopy

a0: (-122610748, .) fc127a6b pc: ffe9809004 <-- src是个奇地址
a1: (-122610748, .) fc128100 pc: ffe980910c <-- dest是个偶地址
a2: (-122610748, .) 2b pc: ffe9809210
t3: (-122610748, .) fc127a6c pc: ffe98093a4 <-- 试图把src对齐4字节,
t0: (-122610748, .) fc128101 pc: ffe98094a8 <-- 则dest就不对齐了,使用sw就出了unalign
t3: (-122610747, *) fc127a70 pc: ffe98093a4
t0: (-122610747, .) fc128105 pc: ffe98094a8 <-- 后面所有对dest的访问都会unalign
t3: (-122610746, *) fc127a74 pc: ffe98093a4
t0: (-122610746, .) fc128109 pc: ffe98094a8

Effect:
* 0 unaligned instructions.

aoqi@0 1 README:
aoqi@0 2 This file should be located at the top of the hotspot Mercurial repository.
aoqi@0 3
aoqi@0 4 See http://openjdk.java.net/ for more information about the OpenJDK.
aoqi@0 5
aoqi@0 6 See ../README-builds.html for complete details on build machine requirements.
aoqi@0 7
aoqi@0 8 Simple Build Instructions:
aoqi@0 9
aoqi@0 10 cd make && gnumake
aoqi@0 11
aoqi@0 12 The files that will be imported into the jdk build will be in the "build"
aoqi@0 13 directory.
aoqi@0 14

mercurial