6773838: There is no calling stack for Compiler thread in hs_err file on x86

Mon, 08 Dec 2008 15:50:55 -0500

author
coleenp
date
Mon, 08 Dec 2008 15:50:55 -0500
changeset 907
7b920868b475
parent 904
3c4d36b4a7ac
child 908
3ad2b8576c4a

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 file | annotate | diff | comparison | revisions
src/os_cpu/solaris_x86/vm/solaris_x86_32.il file | annotate | diff | comparison | revisions
src/os_cpu/solaris_x86/vm/solaris_x86_64.il file | annotate | diff | comparison | revisions
     1.1 --- a/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp	Fri Dec 05 15:45:24 2008 -0800
     1.2 +++ b/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp	Mon Dec 08 15:50:55 2008 -0500
     1.3 @@ -203,10 +203,10 @@
     1.4    return frame(fr->sender_sp(), fr->link(), fr->sender_pc());
     1.5  }
     1.6  
     1.7 -extern "C" intptr_t *_get_previous_fp();  // in .il file.
     1.8 +extern "C" intptr_t *_get_current_fp();  // in .il file
     1.9  
    1.10  frame os::current_frame() {
    1.11 -  intptr_t* fp = _get_previous_fp();
    1.12 +  intptr_t* fp = _get_current_fp();  // it's inlined so want current fp
    1.13    frame myframe((intptr_t*)os::current_stack_pointer(),
    1.14                  (intptr_t*)fp,
    1.15                  CAST_FROM_FN_PTR(address, os::current_frame));
     2.1 --- a/src/os_cpu/solaris_x86/vm/solaris_x86_32.il	Fri Dec 05 15:45:24 2008 -0800
     2.2 +++ b/src/os_cpu/solaris_x86/vm/solaris_x86_32.il	Mon Dec 08 15:50:55 2008 -0500
     2.3 @@ -37,10 +37,10 @@
     2.4        movl     %gs:0, %eax 
     2.5        .end
     2.6  
     2.7 -  // Get callers fp
     2.8 -      .inline _get_previous_fp,0
     2.9 +  // Get current fp
    2.10 +      .inline _get_current_fp,0
    2.11 +      .volatile
    2.12        movl     %ebp, %eax 
    2.13 -      movl     %eax, %eax
    2.14        .end
    2.15  
    2.16    // Support for jint Atomic::add(jint inc, volatile jint* dest)
     3.1 --- a/src/os_cpu/solaris_x86/vm/solaris_x86_64.il	Fri Dec 05 15:45:24 2008 -0800
     3.2 +++ b/src/os_cpu/solaris_x86/vm/solaris_x86_64.il	Mon Dec 08 15:50:55 2008 -0500
     3.3 @@ -30,10 +30,10 @@
     3.4        movq     %fs:0, %rax 
     3.5        .end
     3.6  
     3.7 -  // Get the frame pointer from previous frame.
     3.8 -      .inline _get_previous_fp,0
     3.9 +  // Get the frame pointer from current frame.
    3.10 +      .inline _get_current_fp,0
    3.11 +      .volatile
    3.12        movq     %rbp, %rax 
    3.13 -      movq     %rax, %rax 
    3.14        .end
    3.15  
    3.16    // Support for jint Atomic::add(jint add_value, volatile jint* dest)

mercurial