diff options
Diffstat (limited to 'src/cpu/sparc/vm/c1_FrameMap_sparc.hpp')
-rw-r--r-- | src/cpu/sparc/vm/c1_FrameMap_sparc.hpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/cpu/sparc/vm/c1_FrameMap_sparc.hpp b/src/cpu/sparc/vm/c1_FrameMap_sparc.hpp index 592d30b41..10dfbcead 100644 --- a/src/cpu/sparc/vm/c1_FrameMap_sparc.hpp +++ b/src/cpu/sparc/vm/c1_FrameMap_sparc.hpp @@ -103,6 +103,7 @@ static LIR_Opr in_long_opr; static LIR_Opr out_long_opr; + static LIR_Opr g1_long_single_opr; static LIR_Opr F0_opr; static LIR_Opr F0_double_opr; @@ -113,18 +114,25 @@ private: static FloatRegister _fpu_regs [nof_fpu_regs]; + static LIR_Opr as_long_single_opr(Register r) { + return LIR_OprFact::double_cpu(cpu_reg2rnr(r), cpu_reg2rnr(r)); + } + static LIR_Opr as_long_pair_opr(Register r) { + return LIR_OprFact::double_cpu(cpu_reg2rnr(r->successor()), cpu_reg2rnr(r)); + } + public: #ifdef _LP64 static LIR_Opr as_long_opr(Register r) { - return LIR_OprFact::double_cpu(cpu_reg2rnr(r), cpu_reg2rnr(r)); + return as_long_single_opr(r); } static LIR_Opr as_pointer_opr(Register r) { - return LIR_OprFact::double_cpu(cpu_reg2rnr(r), cpu_reg2rnr(r)); + return as_long_single_opr(r); } #else static LIR_Opr as_long_opr(Register r) { - return LIR_OprFact::double_cpu(cpu_reg2rnr(r->successor()), cpu_reg2rnr(r)); + return as_long_pair_opr(r); } static LIR_Opr as_pointer_opr(Register r) { return as_opr(r); |