United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
JDK-4965987 : CTW assertion at assembler_sparc.hpp, 787

Details
Type:
Bug
Submit Date:
2003-12-10
Status:
Resolved
Updated Date:
2004-01-21
Project Name:
JDK
Resolved Date:
2004-01-21
Component:
hotspot
OS:
solaris_8
Sub-Component:
compiler
CPU:
sparc
Priority:
P2
Resolution:
Fixed
Affected Versions:
5.0
Fixed Versions:
5.0 (b35)

Related Reports
Backport:

Sub Tasks

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


                                     
2004-06-14
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."
                                     
2004-06-11
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
                                     
2003-12-12



Hardware and Software, Engineered to Work Together