Mercurial > hg > graal-jvmci-8
diff src/cpu/x86/vm/sharedRuntime_x86_32.cpp @ 524:c9004fe53695
6792301: StackAlignmentInBytes not honored for compiled native methods
Summary: Fixed the stack misalignment when generate_native_wrapper is called.
Reviewed-by: never, kamg, kvn, phh
author | xlu |
---|---|
date | Tue, 13 Jan 2009 17:39:03 -0800 |
parents | db4caa99ef11 |
children | 0fbdb4381b99 afa80fa86d22 |
line wrap: on
line diff
--- a/src/cpu/x86/vm/sharedRuntime_x86_32.cpp Tue Jan 13 14:49:07 2009 -0800 +++ b/src/cpu/x86/vm/sharedRuntime_x86_32.cpp Tue Jan 13 17:39:03 2009 -0800 @@ -39,6 +39,8 @@ RuntimeStub* SharedRuntime::_resolve_virtual_call_blob; RuntimeStub* SharedRuntime::_resolve_static_call_blob; +const int StackAlignmentInSlots = StackAlignmentInBytes / VMRegImpl::stack_slot_size; + class RegisterSaver { enum { FPU_regs_live = 8 /*for the FPU stack*/+8/*eight more for XMM registers*/ }; // Capture info about frame layout @@ -1299,7 +1301,7 @@ // Now compute actual number of stack words we need rounding to make // stack properly aligned. - stack_slots = round_to(stack_slots, 2 * VMRegImpl::slots_per_word); + stack_slots = round_to(stack_slots, StackAlignmentInSlots); int stack_size = stack_slots * VMRegImpl::stack_slot_size;