< prev index next >

src/hotspot/share/runtime/deoptimization.cpp

Print this page
rev 59103 : imported patch hotspot

*** 1080,1106 **** *((jshort *) check_alignment_get_addr(obj, index, 2)) = (jshort) *((jint *) &val); break; case 4: *((jint *) check_alignment_get_addr(obj, index, 4)) = (jint) *((jint *) &val); break; ! case 8: { ! #ifdef _LP64 ! jlong res = (jlong) *((jlong *) &val); ! #else ! #ifdef SPARC ! // For SPARC we have to swap high and low words. ! jlong v = (jlong) *((jlong *) &val); ! jlong res = 0; ! res |= ((v & (jlong) 0xffffffff) << 32); ! res |= ((v >> 32) & (jlong) 0xffffffff); ! #else ! jlong res = (jlong) *((jlong *) &val); ! #endif // SPARC ! #endif ! *((jlong *) check_alignment_get_addr(obj, index, 8)) = res; break; - } default: ShouldNotReachHere(); } } #endif // INCLUDE_JVMCI --- 1080,1092 ---- *((jshort *) check_alignment_get_addr(obj, index, 2)) = (jshort) *((jint *) &val); break; case 4: *((jint *) check_alignment_get_addr(obj, index, 4)) = (jint) *((jint *) &val); break; ! case 8: ! *((jlong *) check_alignment_get_addr(obj, index, 8)) = (jlong) *((jlong *) &val); break; default: ShouldNotReachHere(); } } #endif // INCLUDE_JVMCI
*** 1119,1134 **** StackValue* low = StackValue::create_stack_value(fr, reg_map, sv->field_at(++i)); #ifdef _LP64 jlong res = (jlong)low->get_int(); #else - #ifdef SPARC - // For SPARC we have to swap high and low words. - jlong res = jlong_from((jint)low->get_int(), (jint)value->get_int()); - #else jlong res = jlong_from((jint)value->get_int(), (jint)low->get_int()); - #endif //SPARC #endif obj->long_at_put(index, res); break; } --- 1105,1115 ----
*** 1153,1168 **** if (big_value) { StackValue* low = StackValue::create_stack_value(fr, reg_map, sv->field_at(++i)); #ifdef _LP64 jlong res = (jlong)low->get_int(); #else - #ifdef SPARC - // For SPARC we have to swap high and low words. - jlong res = jlong_from((jint)low->get_int(), (jint)value->get_int()); - #else jlong res = jlong_from((jint)value->get_int(), (jint)low->get_int()); - #endif //SPARC #endif obj->int_at_put(index, (jint)*((jint*)&res)); obj->int_at_put(++index, (jint)*(((jint*)&res) + 1)); } else { val = value->get_int(); --- 1134,1144 ----
*** 1303,1318 **** assert(value->type() == T_INT, "Agreement."); StackValue* low = StackValue::create_stack_value(fr, reg_map, sv->field_at(++svIndex)); #ifdef _LP64 jlong res = (jlong)low->get_int(); #else - #ifdef SPARC - // For SPARC we have to swap high and low words. - jlong res = jlong_from((jint)low->get_int(), (jint)value->get_int()); - #else jlong res = jlong_from((jint)value->get_int(), (jint)low->get_int()); - #endif //SPARC #endif obj->long_field_put(offset, res); break; } --- 1279,1289 ----
< prev index next >