United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-7063628 Use cbcond on T4
JDK-7063628 : Use cbcond on T4

Details
Type:
Enhancement
Submit Date:
2011-07-07
Status:
Closed
Updated Date:
2011-11-25
Project Name:
JDK
Resolved Date:
2011-09-30
Component:
hotspot
OS:
generic
Sub-Component:
compiler
CPU:
sparc
Priority:
P4
Resolution:
Fixed
Affected Versions:
hs22
Fixed Versions:
hs22 (b02)

Related Reports
Backport:
Backport:
Relates:

Sub Tasks

Description
T4 has new short branch instruction without delay slot. Add it to hotspot sparc assembler. I will file separate rfe to use cbcond in C2 generated code.

                                    

Comments
EVALUATION

http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/3d42f82cd811
                                     
2011-07-21
PUBLIC COMMENTS

Added new MacroAssembler instructions cmp_and_br() and old branch instructions are modified to use cbcond on T4 if distance is small (2K bytes). Most of the rest changes are usage of these new branch instructions in Interpreter and C1.

The prototype was done by Tom and I took some of his additional fixes. The formssel.cpp change is a bug fix where the MatchNode equality test wasn't recursing so it would mistakenly return true for complex matches. Added a fake label for branches generated in temp buffer by MachNode::emit_size(), added assert into .ad files to check label.

There was problem in is_in_wdisp16_range() (and in initial implementation of use_cbc()) which calls target(L) before emitting branch. Non-bound (forward branch) labels record current pc() as a branch address and later try to patch instruction (which could be 'cmp') at that address.

Removed unused code in check_klass_subtype_fast_path().

Modified vm_version string: has_ prefix is removed and only v8 or v9 will be printed as well only niagara_plus or niagara.
                                     
2011-07-22
EVALUATION

http://hg.openjdk.java.net/hsx/hotspot-rt/hotspot/rev/3d42f82cd811
                                     
2011-08-23
EVALUATION

See main CR
                                     
2011-09-12



Hardware and Software, Engineered to Work Together