1.1 --- a/src/cpu/sparc/vm/c1_FrameMap_sparc.hpp Thu Sep 02 11:40:02 2010 -0700 1.2 +++ b/src/cpu/sparc/vm/c1_FrameMap_sparc.hpp Fri Sep 03 17:51:07 2010 -0700 1.3 @@ -103,6 +103,7 @@ 1.4 1.5 static LIR_Opr in_long_opr; 1.6 static LIR_Opr out_long_opr; 1.7 + static LIR_Opr g1_long_single_opr; 1.8 1.9 static LIR_Opr F0_opr; 1.10 static LIR_Opr F0_double_opr; 1.11 @@ -113,18 +114,25 @@ 1.12 private: 1.13 static FloatRegister _fpu_regs [nof_fpu_regs]; 1.14 1.15 + static LIR_Opr as_long_single_opr(Register r) { 1.16 + return LIR_OprFact::double_cpu(cpu_reg2rnr(r), cpu_reg2rnr(r)); 1.17 + } 1.18 + static LIR_Opr as_long_pair_opr(Register r) { 1.19 + return LIR_OprFact::double_cpu(cpu_reg2rnr(r->successor()), cpu_reg2rnr(r)); 1.20 + } 1.21 + 1.22 public: 1.23 1.24 #ifdef _LP64 1.25 static LIR_Opr as_long_opr(Register r) { 1.26 - return LIR_OprFact::double_cpu(cpu_reg2rnr(r), cpu_reg2rnr(r)); 1.27 + return as_long_single_opr(r); 1.28 } 1.29 static LIR_Opr as_pointer_opr(Register r) { 1.30 - return LIR_OprFact::double_cpu(cpu_reg2rnr(r), cpu_reg2rnr(r)); 1.31 + return as_long_single_opr(r); 1.32 } 1.33 #else 1.34 static LIR_Opr as_long_opr(Register r) { 1.35 - return LIR_OprFact::double_cpu(cpu_reg2rnr(r->successor()), cpu_reg2rnr(r)); 1.36 + return as_long_pair_opr(r); 1.37 } 1.38 static LIR_Opr as_pointer_opr(Register r) { 1.39 return as_opr(r);