< prev index next >

src/hotspot/share/runtime/deoptimization.cpp

Print this page
rev 59383 : [mq]: final

*** 1081,1107 **** *((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 --- 1081,1093 ---- *((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
*** 1120,1135 **** 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; } --- 1106,1116 ----
*** 1154,1169 **** 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(); --- 1135,1145 ----
*** 1304,1319 **** 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; } --- 1280,1290 ----
< prev index next >