7011490: Wrong computation results in Test6880034
Incorrect handling of c2i deoptimization on little endian architectures Reviewed-by: never
This commit is contained in:
parent
3471fe3ee4
commit
594cddaa6b
@ -2703,7 +2703,7 @@ int LinearScan::append_scope_value_for_operand(LIR_Opr opr, GrowableArray<ScopeV
|
|||||||
assert(_fpu_stack_allocator != NULL, "must be present");
|
assert(_fpu_stack_allocator != NULL, "must be present");
|
||||||
opr = _fpu_stack_allocator->to_fpu_stack(opr);
|
opr = _fpu_stack_allocator->to_fpu_stack(opr);
|
||||||
|
|
||||||
assert(opr->fpu_regnrLo() == opr->fpu_regnrHi(), "assumed in calculation (only fpu_regnrHi is used)");
|
assert(opr->fpu_regnrLo() == opr->fpu_regnrHi(), "assumed in calculation (only fpu_regnrLo is used)");
|
||||||
#endif
|
#endif
|
||||||
#ifdef SPARC
|
#ifdef SPARC
|
||||||
assert(opr->fpu_regnrLo() == opr->fpu_regnrHi() + 1, "assumed in calculation (only fpu_regnrHi is used)");
|
assert(opr->fpu_regnrLo() == opr->fpu_regnrHi() + 1, "assumed in calculation (only fpu_regnrHi is used)");
|
||||||
@ -2715,7 +2715,12 @@ int LinearScan::append_scope_value_for_operand(LIR_Opr opr, GrowableArray<ScopeV
|
|||||||
assert(opr->fpu_regnrLo() == opr->fpu_regnrHi(), "assumed in calculation (only fpu_regnrHi is used)");
|
assert(opr->fpu_regnrLo() == opr->fpu_regnrHi(), "assumed in calculation (only fpu_regnrHi is used)");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef VM_LITTLE_ENDIAN
|
||||||
|
VMReg rname_first = frame_map()->fpu_regname(opr->fpu_regnrLo());
|
||||||
|
#else
|
||||||
VMReg rname_first = frame_map()->fpu_regname(opr->fpu_regnrHi());
|
VMReg rname_first = frame_map()->fpu_regname(opr->fpu_regnrHi());
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef _LP64
|
#ifdef _LP64
|
||||||
first = new LocationValue(Location::new_reg_loc(Location::dbl, rname_first));
|
first = new LocationValue(Location::new_reg_loc(Location::dbl, rname_first));
|
||||||
second = &_int_0_scope_value;
|
second = &_int_0_scope_value;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user