< prev index next >

src/hotspot/cpu/aarch64/frame_aarch64.cpp

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2014, Red Hat Inc. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as --- 1,7 ---- /* ! * Copyright (c) 1997, 2020, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2014, Red Hat Inc. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as
*** 57,76 **** address sp = (address)_sp; address fp = (address)_fp; address unextended_sp = (address)_unextended_sp; // consider stack guards when trying to determine "safe" stack pointers - static size_t stack_guard_size = os::uses_stack_guard_pages() ? - (JavaThread::stack_red_zone_size() + JavaThread::stack_yellow_zone_size()) : 0; - size_t usable_stack_size = thread->stack_size() - stack_guard_size; - // sp must be within the usable part of the stack (not in guards) ! bool sp_safe = (sp < thread->stack_base()) && ! (sp >= thread->stack_base() - usable_stack_size); ! ! ! if (!sp_safe) { return false; } // When we are running interpreted code the machine stack pointer, SP, is // set low enough so that the Java expression stack can grow and shrink --- 57,68 ---- address sp = (address)_sp; address fp = (address)_fp; address unextended_sp = (address)_unextended_sp; // consider stack guards when trying to determine "safe" stack pointers // sp must be within the usable part of the stack (not in guards) ! if (!thread->is_in_usable_stack(sp)) { return false; } // When we are running interpreted code the machine stack pointer, SP, is // set low enough so that the Java expression stack can grow and shrink
*** 564,574 **** // validate locals address locals = (address) *interpreter_frame_locals_addr(); ! if (locals > thread->stack_base() || locals < (address) fp()) return false; // We'd have to be pretty unlucky to be mislead at this point return true; } --- 556,566 ---- // validate locals address locals = (address) *interpreter_frame_locals_addr(); ! if (locals >= thread->stack_base() || locals < (address) fp()) return false; // We'd have to be pretty unlucky to be mislead at this point return true; }
< prev index next >