-
Bug
-
Resolution: Fixed
-
P4
-
8, 9
-
b89
-
x86
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8142701 | emb-9 | Zoltan Majo | P4 | Resolved | Fixed | team |
JDK-8149214 | 8u101 | Zoltan Majo | P4 | Resolved | Fixed | b01 |
JDK-8139549 | 8u92 | Zoltan Majo | P4 | Resolved | Fixed | b01 |
JDK-8155310 | emb-8u101 | Zoltan Majo | P4 | Resolved | Fixed | b01 |
MacroAssembler::verified_entry() genereates, in some cases, code that uses frame pointers incorrectly. For example, in the _new_array_Java stub (see excerpt below), RBP is not set to point to the stack location where the caller's frame is stored. As a result, perf (and other tools as well) is not be able to walk the stack in this case.
java -XX:+PrintStubCode -XX:+PreserveFramePointer -version > out
Decoding RuntimeStub - _new_array_Java 0x00007f09dd17ab10
;; N1: # B1 <- B3 B2 Freq: 1
;; B1: # B3 B2 <- BLOCK HEAD IS JUNK Freq: 1
0x00007f09dd17ab60: sub $0x8,%rsp
0x00007f09dd17ab67: mov %rbp,(%rsp)
0x00007f09dd17ab6b: mov %rsp,%rbp # RBP points to the beginning of the stack at this point (correct).
0x00007f09dd17ab6e: add $0x8,%rbp # This instruction changes the value in RBP (incorrect).
java -XX:+PrintStubCode -XX:+PreserveFramePointer -version > out
Decoding RuntimeStub - _new_array_Java 0x00007f09dd17ab10
;; N1: # B1 <- B3 B2 Freq: 1
;; B1: # B3 B2 <- BLOCK HEAD IS JUNK Freq: 1
0x00007f09dd17ab60: sub $0x8,%rsp
0x00007f09dd17ab67: mov %rbp,(%rsp)
0x00007f09dd17ab6b: mov %rsp,%rbp # RBP points to the beginning of the stack at this point (correct).
0x00007f09dd17ab6e: add $0x8,%rbp # This instruction changes the value in RBP (incorrect).
- backported by
-
JDK-8139549 Enable stubs to use frame pointers correctly
-
- Resolved
-
-
JDK-8142701 Enable stubs to use frame pointers correctly
-
- Resolved
-
-
JDK-8149214 Enable stubs to use frame pointers correctly
-
- Resolved
-
-
JDK-8155310 Enable stubs to use frame pointers correctly
-
- Resolved
-
- relates to
-
JDK-8068945 Use RBP register as proper frame pointer in JIT compiled code on x86
-
- Resolved
-