#7243 Fix an incorrect stack alignment assert in the interpreter

Tue, 10 Jul 2018 14:18:39 +0800

author
fujie
date
Tue, 10 Jul 2018 14:18:39 +0800
changeset 9160
b6ac0b9d8b02
parent 9159
3b138a121964
child 9161
97a8ece254bc

#7243 Fix an incorrect stack alignment assert in the interpreter

# Internal Error (/home/loongson/aoqi/jdk8-mips/hotspot/src/os_cpu/linux_mips/vm/os_linux_mips.cpp:1006), pid=15645, tid=0x000000fff3f071f0
# assert(((intptr_t)os::current_stack_pointer() & (StackAlignmentInBytes-1)) == 0) failed: incorrect stack alignment

src/cpu/mips/vm/templateInterpreter_mips_64.cpp file | annotate | diff | comparison | revisions
     1.1 --- a/src/cpu/mips/vm/templateInterpreter_mips_64.cpp	Tue Jul 10 10:06:03 2018 +0800
     1.2 +++ b/src/cpu/mips/vm/templateInterpreter_mips_64.cpp	Tue Jul 10 14:18:39 2018 +0800
     1.3 @@ -1336,8 +1336,12 @@
     1.4      __ bne(t, AT, no_reguard);
     1.5      __ delayed()->nop();
     1.6      __ pushad();
     1.7 +    __ move(S5_heapbase, SP);
     1.8 +    __ move(AT, -StackAlignmentInBytes);
     1.9 +    __ andr(SP, SP, AT);
    1.10      __ call(CAST_FROM_FN_PTR(address, SharedRuntime::reguard_yellow_pages), relocInfo::runtime_call_type);
    1.11      __ delayed()->nop();
    1.12 +    __ move(SP, S5_heapbase);
    1.13      __ popad();
    1.14      //add for compressedoops
    1.15      __ reinit_heapbase();

mercurial