src/cpu/x86/vm/macroAssembler_x86.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8026775 Cdiff src/cpu/x86/vm/macroAssembler_x86.cpp

src/cpu/x86/vm/macroAssembler_x86.cpp

Print this page

        

*** 1379,1390 **** subptr(tmp, os::vm_page_size()); subl(size, os::vm_page_size()); jcc(Assembler::greater, loop); // Bang down shadow pages too. ! // The -1 because we already subtracted 1 page. ! for (int i = 0; i< StackShadowPages-1; i++) { // this could be any sized move but this is can be a debugging crumb // so the bigger the better. movptr(Address(tmp, (-i*os::vm_page_size())), size ); } } --- 1379,1393 ---- subptr(tmp, os::vm_page_size()); subl(size, os::vm_page_size()); jcc(Assembler::greater, loop); // Bang down shadow pages too. ! // At this point, (tmp-0) is the last address touched, so don't touch it again. ! // (It was touched as (tmp-pagesize) but then tmp was post-decremented.) ! // Skip this address by starting at i=1, and touch a few more pages below. ! // N.B. It is important to touch all the down to and including i=StackShadowPages. ! for (int i = 1; i <= StackShadowPages; i++) { // this could be any sized move but this is can be a debugging crumb // so the bigger the better. movptr(Address(tmp, (-i*os::vm_page_size())), size ); } }
src/cpu/x86/vm/macroAssembler_x86.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File