src/share/vm/c1/c1_LinearScan.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
hotspot Cdiff src/share/vm/c1/c1_LinearScan.cpp
src/share/vm/c1/c1_LinearScan.cpp
Print this page
*** 2612,2622 ****
scope_values->append(sv);
return 1;
#ifdef X86
} else if (opr->is_single_xmm()) {
! VMReg rname = opr->as_xmm_float_reg()->as_VMReg();
LocationValue* sv = new LocationValue(Location::new_reg_loc(Location::normal, rname));
scope_values->append(sv);
return 1;
#endif
--- 2612,2622 ----
scope_values->append(sv);
return 1;
#ifdef X86
} else if (opr->is_single_xmm()) {
! VMReg rname = opr->as_xmm_float_reg().as_VMReg();
LocationValue* sv = new LocationValue(Location::new_reg_loc(Location::normal, rname));
scope_values->append(sv);
return 1;
#endif
*** 2681,2696 ****
second = new LocationValue(loc2);
#endif // _LP64
} else if (opr->is_double_cpu()) {
#ifdef _LP64
! VMReg rname_first = opr->as_register_lo()->as_VMReg();
first = new LocationValue(Location::new_reg_loc(Location::lng, rname_first));
second = _int_0_scope_value;
#else
! VMReg rname_first = opr->as_register_lo()->as_VMReg();
! VMReg rname_second = opr->as_register_hi()->as_VMReg();
if (hi_word_offset_in_bytes < lo_word_offset_in_bytes) {
// lo/hi and swapped relative to first and second, so swap them
VMReg tmp = rname_first;
rname_first = rname_second;
--- 2681,2696 ----
second = new LocationValue(loc2);
#endif // _LP64
} else if (opr->is_double_cpu()) {
#ifdef _LP64
! VMReg rname_first = opr->as_register_lo().as_VMReg();
first = new LocationValue(Location::new_reg_loc(Location::lng, rname_first));
second = _int_0_scope_value;
#else
! VMReg rname_first = opr->as_register_lo().as_VMReg();
! VMReg rname_second = opr->as_register_hi().as_VMReg();
if (hi_word_offset_in_bytes < lo_word_offset_in_bytes) {
// lo/hi and swapped relative to first and second, so swap them
VMReg tmp = rname_first;
rname_first = rname_second;
*** 2703,2713 ****
#ifdef X86
} else if (opr->is_double_xmm()) {
assert(opr->fpu_regnrLo() == opr->fpu_regnrHi(), "assumed in calculation");
! VMReg rname_first = opr->as_xmm_double_reg()->as_VMReg();
# ifdef _LP64
first = new LocationValue(Location::new_reg_loc(Location::dbl, rname_first));
second = _int_0_scope_value;
# else
first = new LocationValue(Location::new_reg_loc(Location::normal, rname_first));
--- 2703,2713 ----
#ifdef X86
} else if (opr->is_double_xmm()) {
assert(opr->fpu_regnrLo() == opr->fpu_regnrHi(), "assumed in calculation");
! VMReg rname_first = opr->as_xmm_double_reg().as_VMReg();
# ifdef _LP64
first = new LocationValue(Location::new_reg_loc(Location::dbl, rname_first));
second = _int_0_scope_value;
# else
first = new LocationValue(Location::new_reg_loc(Location::normal, rname_first));
src/share/vm/c1/c1_LinearScan.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File