United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6991211 assert failure on sparc: "can not have caller-save register operands at calls"
JDK-6991211 : assert failure on sparc: "can not have caller-save register operands at calls"

Details
Type:
Bug
Submit Date:
2010-10-12
Status:
Closed
Updated Date:
2011-04-23
Project Name:
JDK
Resolved Date:
2011-04-23
Component:
hotspot
OS:
solaris_10
Sub-Component:
compiler
CPU:
sparc
Priority:
P4
Resolution:
Fixed
Affected Versions:
hs20
Fixed Versions:
hs20 (b02)

Related Reports
Backport:
Backport:
Relates:

Sub Tasks

Description
When running ctw on sparc with c1:
assert(!has_call(op_id) || opr->is_stack() || !is_caller_save(reg_num(opr))) failed: can not have caller-save register operands at calls

                                    

Comments
EVALUATION

fix in 6972540 is missing:

diff --git a/src/cpu/sparc/vm/c1_LinearScan_sparc.hpp b/src/cpu/sparc/vm/c1_LinearScan_sparc.hpp
--- a/src/cpu/sparc/vm/c1_LinearScan_sparc.hpp
+++ b/src/cpu/sparc/vm/c1_LinearScan_sparc.hpp
@@ -64,7 +64,7 @@
     _first_reg = pd_first_callee_saved_reg;
     _last_reg = pd_last_callee_saved_reg;
     return true;
-  } else if (cur->type() == T_INT || cur->type() == T_LONG || cur->type() == T_OBJECT) {
+  } else if (cur->type() == T_INT || cur->type() == T_LONG || cur->type() == T_OBJECT || cur->type() == T_ADDRESS) {
     _first_reg = pd_first_cpu_reg;
     _last_reg = pd_last_allocatable_cpu_reg;
     return true;
                                     
2010-10-12
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/357451a9ae6a
                                     
2010-10-14



Hardware and Software, Engineered to Work Together