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);