JDK-4965987 : CTW assertion at assembler_sparc.hpp, 787
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 5.0
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • OS: solaris_8
  • CPU: sparc
  • Submitted: 2003-12-10
  • Updated: 2004-01-21
  • Resolved: 2004-01-21
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
1.4.2_12Fixed
Description
Name: fh87463			Date: 12/09/2003



Following assertion occur when running Compile The World tests on solsparc 64 bit platform.

# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc:  SuppressErrorAt=/assembler_sparc.hpp:787]
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
#  Internal Error (/net/prt-solsparc-q1-1/tmp/PrtBuildDir/workspace/src/cpu/sparc/vm/assembler_sparc.hpp, 787 [ Patched ]), pid=23460, tid=8
#
# Java VM: Java HotSpot(TM) 64-Bit Server VM (20031204062243.nips.c2_baseline_to_main_baseline-debug mixed mode)
#
# Error: assert(nbits == 32 || -(1 << nbits-1) <= x && x < ( 1 << nbits-1),"value out of range")
# An error report file with more information is saved as hs_err_pid23460.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#

Please look into rerun scripts for more detail.

#########################
# To reproduce the bug:
#########################
1. cd /net/jano.sfbay/export/disk20/GammaBase/Bugs/[bug ID]
2. edit script if needed.
3. run one of the shell scripts: 
   run.weblogicbig.jar.3405.ksh

======================================================================

Comments
CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: tiger-beta2 FIXED IN: tiger-beta2 INTEGRATED IN: tiger-b35 tiger-beta2
14-06-2004

SUGGESTED FIX ###@###.### 2004-01-13 Disable the generation of 'bpr' instructions by setting the C2 flag BranchOnRegister to false. The instruction is rare since it is used only for comparison with 0 and when several other conditions are met. Also Paul Hohensee pointed out that on u3 "bpr is a lose in every way but code space (1 instruction instead of 2). It uses the memory/special == MS pipe, so it uses up a memory access issue slot, which the cmp/bcc pair doesn't. Also, a cmp and bcc can issue in the same group, so I seriously doubt whether there's any performance impact whatsoever."
11-06-2004

EVALUATION The problem is during code generation: [6] report_assertion_failure(0xffffffff7da110dd, 0x313, 0xffffffff7da11133, 0x16ba284, 0x3, 0x40b8c), at 0xffffffff7d15b0b4 [7] Assembler::patched_branch(0xfffffffffffe0000, 0x2, 0x303fff, 0x20be0, 0x20be0, 0xac20000), at 0xffffffff7cf8f250 [8] AbstractAssembler::bind(0x20be0, 0x10035e5a8, 0xffffffff29ffd560, 0x55, 0x54, 0xffffffff7e649328), at 0xffffffff7cf8ec54 [9] Compile::Fill_buffer(0xffffffff29ffd560, 0xffffffff29ffe7d0, 0x10226a480, 0x20be0, 0x149c, 0xffffffff7e6f7bb8), at 0xffffffff7d719cfc ###@###.### 2003-12-09 We are using 'bpr' instruction on sparc which has only 16 bits for displacement. The compiled method jdbcTest.dbmetadata.Keys::run has more the 50000 nodes. And the size of generated code exceeds 2^16 instructions. We have to use an other branch instruction when we have large offset. ###@###.### 2003-12-12
12-12-2003