# HG changeset patch # User iveresov # Date 1293781485 28800 # Node ID 7514897db2380a50ed33d55b091eb998881cb16d # Parent 68c5a4e8881d8403c3fe36ea24754b74a4995f49 7009849: C1: Incorrect frame size computation Summary: Fix frame size computation Reviewed-by: phh, kvn diff -r 68c5a4e8881d -r 7514897db238 src/share/vm/c1/c1_FrameMap.cpp --- a/src/share/vm/c1/c1_FrameMap.cpp Thu Dec 30 09:36:03 2010 -0800 +++ b/src/share/vm/c1/c1_FrameMap.cpp Thu Dec 30 23:44:45 2010 -0800 @@ -92,7 +92,7 @@ if (opr->is_address()) { LIR_Address* addr = opr->as_address_ptr(); 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]; } @@ -143,7 +143,7 @@ args->append(opr); if (opr->is_address()) { 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]; }