src/cpu/x86/vm/c1_FrameMap_x86.hpp

changeset 739
dc7f315e41f7
parent 435
a61af66fc99e
child 772
9ee9cf798b59
     1.1 --- a/src/cpu/x86/vm/c1_FrameMap_x86.hpp	Tue Aug 26 15:49:40 2008 -0700
     1.2 +++ b/src/cpu/x86/vm/c1_FrameMap_x86.hpp	Wed Aug 27 00:21:55 2008 -0700
     1.3 @@ -38,8 +38,13 @@
     1.4      nof_xmm_regs = pd_nof_xmm_regs_frame_map,
     1.5      nof_caller_save_xmm_regs = pd_nof_caller_save_xmm_regs_frame_map,
     1.6      first_available_sp_in_frame = 0,
     1.7 +#ifndef _LP64
     1.8      frame_pad_in_bytes = 8,
     1.9      nof_reg_args = 2
    1.10 +#else
    1.11 +    frame_pad_in_bytes = 16,
    1.12 +    nof_reg_args = 6
    1.13 +#endif // _LP64
    1.14    };
    1.15  
    1.16   private:
    1.17 @@ -65,17 +70,49 @@
    1.18    static LIR_Opr rax_oop_opr;
    1.19    static LIR_Opr rdx_oop_opr;
    1.20    static LIR_Opr rcx_oop_opr;
    1.21 +#ifdef _LP64
    1.22  
    1.23 -  static LIR_Opr rax_rdx_long_opr;
    1.24 -  static LIR_Opr rbx_rcx_long_opr;
    1.25 +  static LIR_Opr  r8_opr;
    1.26 +  static LIR_Opr  r9_opr;
    1.27 +  static LIR_Opr r10_opr;
    1.28 +  static LIR_Opr r11_opr;
    1.29 +  static LIR_Opr r12_opr;
    1.30 +  static LIR_Opr r13_opr;
    1.31 +  static LIR_Opr r14_opr;
    1.32 +  static LIR_Opr r15_opr;
    1.33 +
    1.34 +  static LIR_Opr  r8_oop_opr;
    1.35 +  static LIR_Opr  r9_oop_opr;
    1.36 +
    1.37 +  static LIR_Opr r11_oop_opr;
    1.38 +  static LIR_Opr r12_oop_opr;
    1.39 +  static LIR_Opr r13_oop_opr;
    1.40 +  static LIR_Opr r14_oop_opr;
    1.41 +
    1.42 +#endif // _LP64
    1.43 +
    1.44 +  static LIR_Opr long0_opr;
    1.45 +  static LIR_Opr long1_opr;
    1.46    static LIR_Opr fpu0_float_opr;
    1.47    static LIR_Opr fpu0_double_opr;
    1.48    static LIR_Opr xmm0_float_opr;
    1.49    static LIR_Opr xmm0_double_opr;
    1.50  
    1.51 +#ifdef _LP64
    1.52 +  static LIR_Opr as_long_opr(Register r) {
    1.53 +    return LIR_OprFact::double_cpu(cpu_reg2rnr(r), cpu_reg2rnr(r));
    1.54 +  }
    1.55 +  static LIR_Opr as_pointer_opr(Register r) {
    1.56 +    return LIR_OprFact::double_cpu(cpu_reg2rnr(r), cpu_reg2rnr(r));
    1.57 +  }
    1.58 +#else
    1.59    static LIR_Opr as_long_opr(Register r, Register r2) {
    1.60      return LIR_OprFact::double_cpu(cpu_reg2rnr(r), cpu_reg2rnr(r2));
    1.61    }
    1.62 +  static LIR_Opr as_pointer_opr(Register r) {
    1.63 +    return LIR_OprFact::single_cpu(cpu_reg2rnr(r));
    1.64 +  }
    1.65 +#endif // _LP64
    1.66  
    1.67    // VMReg name for spilled physical FPU stack slot n
    1.68    static VMReg fpu_regname (int n);

mercurial