Mercurial > hg > graal-compiler
changeset 472:7b920868b475
6773838: There is no calling stack for Compiler thread in hs_err file on x86
Summary: On solaris, the inline assembly wasn't being processed. Added volatile to il file fixed it.
Reviewed-by: phh, kvn
author | coleenp |
---|---|
date | Mon, 08 Dec 2008 15:50:55 -0500 |
parents | 3c4d36b4a7ac |
children | 3ad2b8576c4a |
files | src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp src/os_cpu/solaris_x86/vm/solaris_x86_32.il src/os_cpu/solaris_x86/vm/solaris_x86_64.il |
diffstat | 3 files changed, 8 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp Fri Dec 05 15:45:24 2008 -0800 +++ b/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp Mon Dec 08 15:50:55 2008 -0500 @@ -203,10 +203,10 @@ return frame(fr->sender_sp(), fr->link(), fr->sender_pc()); } -extern "C" intptr_t *_get_previous_fp(); // in .il file. +extern "C" intptr_t *_get_current_fp(); // in .il file frame os::current_frame() { - intptr_t* fp = _get_previous_fp(); + intptr_t* fp = _get_current_fp(); // it's inlined so want current fp frame myframe((intptr_t*)os::current_stack_pointer(), (intptr_t*)fp, CAST_FROM_FN_PTR(address, os::current_frame));
--- a/src/os_cpu/solaris_x86/vm/solaris_x86_32.il Fri Dec 05 15:45:24 2008 -0800 +++ b/src/os_cpu/solaris_x86/vm/solaris_x86_32.il Mon Dec 08 15:50:55 2008 -0500 @@ -37,10 +37,10 @@ movl %gs:0, %eax .end - // Get callers fp - .inline _get_previous_fp,0 + // Get current fp + .inline _get_current_fp,0 + .volatile movl %ebp, %eax - movl %eax, %eax .end // Support for jint Atomic::add(jint inc, volatile jint* dest)
--- a/src/os_cpu/solaris_x86/vm/solaris_x86_64.il Fri Dec 05 15:45:24 2008 -0800 +++ b/src/os_cpu/solaris_x86/vm/solaris_x86_64.il Mon Dec 08 15:50:55 2008 -0500 @@ -30,10 +30,10 @@ movq %fs:0, %rax .end - // Get the frame pointer from previous frame. - .inline _get_previous_fp,0 + // Get the frame pointer from current frame. + .inline _get_current_fp,0 + .volatile movq %rbp, %rax - movq %rax, %rax .end // Support for jint Atomic::add(jint add_value, volatile jint* dest)