6773838: There is no calling stack for Compiler thread in hs_err file on x86
On solaris, the inline assembly wasn't being processed. Added volatile to il file fixed it. Reviewed-by: phh, kvn
This commit is contained in:
parent
ec343fa4bc
commit
c07de94ae3
@ -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));
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user