--- old/src/cpu/zero/vm/stack_zero.inline.hpp 2014-11-14 13:50:23.162677984 +0100 +++ new/src/cpu/zero/vm/stack_zero.inline.hpp 2014-11-14 13:50:23.059676930 +0100 @@ -47,10 +47,11 @@ // This method returns the amount of ABI stack available for us // to use under normal circumstances. Note that the returned // value can be negative. -inline int ZeroStack::abi_stack_available(Thread *thread) const { - int stack_used = thread->stack_base() - (address) &stack_used; - int stack_free = thread->stack_size() - stack_used; - return stack_free - shadow_pages_size(); +inline ssize_t ZeroStack::abi_stack_available(Thread *thread) const { + ssize_t stack_used = thread->stack_base() - (address) &stack_used + + (StackYellowPages+StackRedPages+StackShadowPages) * os::vm_page_size(); + ssize_t stack_free = thread->stack_size() - stack_used; + return stack_free; } #endif // CPU_ZERO_VM_STACK_ZERO_INLINE_HPP