From 7b372ab6fccc2233a513709ba1d6134105873adf Mon Sep 17 00:00:00 2001 From: coleenp Date: Mon, 8 Dec 2008 15:50:55 -0500 Subject: [PATCH] 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 --- src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp | 4 ++-- src/os_cpu/solaris_x86/vm/solaris_x86_32.il | 6 +++--- src/os_cpu/solaris_x86/vm/solaris_x86_64.il | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp b/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp index b21206dd2..011b671e8 100644 --- a/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp +++ b/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp @@ -203,10 +203,10 @@ frame os::get_sender_for_C_frame(frame* fr) { 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)); diff --git a/src/os_cpu/solaris_x86/vm/solaris_x86_32.il b/src/os_cpu/solaris_x86/vm/solaris_x86_32.il index 49ae97729..9e1d6ce8e 100644 --- a/src/os_cpu/solaris_x86/vm/solaris_x86_32.il +++ b/src/os_cpu/solaris_x86/vm/solaris_x86_32.il @@ -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) diff --git a/src/os_cpu/solaris_x86/vm/solaris_x86_64.il b/src/os_cpu/solaris_x86/vm/solaris_x86_64.il index 89ed2c87b..169bebc99 100644 --- a/src/os_cpu/solaris_x86/vm/solaris_x86_64.il +++ b/src/os_cpu/solaris_x86/vm/solaris_x86_64.il @@ -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) -- GitLab