mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-19 10:34:38 +02:00
7009849: C1: Incorrect frame size computation
Fix frame size computation Reviewed-by: phh, kvn
This commit is contained in:
parent
f02562388c
commit
34b0ff28e8
1 changed files with 2 additions and 2 deletions
|
@ -92,7 +92,7 @@ CallingConvention* FrameMap::java_calling_convention(const BasicTypeArray* signa
|
||||||
if (opr->is_address()) {
|
if (opr->is_address()) {
|
||||||
LIR_Address* addr = opr->as_address_ptr();
|
LIR_Address* addr = opr->as_address_ptr();
|
||||||
assert(addr->disp() == (int)addr->disp(), "out of range value");
|
assert(addr->disp() == (int)addr->disp(), "out of range value");
|
||||||
out_preserve = MAX2(out_preserve, (intptr_t)addr->disp() / 4);
|
out_preserve = MAX2(out_preserve, (intptr_t)(addr->disp() - STACK_BIAS) / 4);
|
||||||
}
|
}
|
||||||
i += type2size[t];
|
i += type2size[t];
|
||||||
}
|
}
|
||||||
|
@ -143,7 +143,7 @@ CallingConvention* FrameMap::c_calling_convention(const BasicTypeArray* signatur
|
||||||
args->append(opr);
|
args->append(opr);
|
||||||
if (opr->is_address()) {
|
if (opr->is_address()) {
|
||||||
LIR_Address* addr = opr->as_address_ptr();
|
LIR_Address* addr = opr->as_address_ptr();
|
||||||
out_preserve = MAX2(out_preserve, (intptr_t)addr->disp() / 4);
|
out_preserve = MAX2(out_preserve, (intptr_t)(addr->disp() - STACK_BIAS) / 4);
|
||||||
}
|
}
|
||||||
i += type2size[t];
|
i += type2size[t];
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue