aboutsummaryrefslogtreecommitdiffstats
path: root/community/openjdk11/ppc64le.patch
diff options
context:
space:
mode:
Diffstat (limited to 'community/openjdk11/ppc64le.patch')
-rw-r--r--community/openjdk11/ppc64le.patch18
1 files changed, 9 insertions, 9 deletions
diff --git a/community/openjdk11/ppc64le.patch b/community/openjdk11/ppc64le.patch
index 88ee55ae05..c3f7165bd8 100644
--- a/community/openjdk11/ppc64le.patch
+++ b/community/openjdk11/ppc64le.patch
@@ -206,15 +206,15 @@
if (ret_frame.pc() == NULL) {
// ucontext wasn't useful
-@@ -69,7 +74,11 @@
- if (!((Method*)(istate->method))->is_metaspace_object()) {
- return false;
- }
+@@ -70,7 +75,11 @@
+ if (m == NULL || !m->is_valid_method()) return false;
+ if (!Metaspace::contains((const void*)m->constMethod())) return false;
+
+#if defined(__GLIBC__) || defined(__UCLIBC__)
- uint64_t reg_bcp = uc->uc_mcontext.regs->gpr[14/*R14_bcp*/];
+ uint64_t reg_bcp = uc->uc_mcontext.regs->gpr[14/*R14_bcp*/];
+#else // Musl
-+ uint64_t reg_bcp = uc->uc_mcontext.gp_regs[14/*R14_bcp*/];
++ uint64_t reg_bcp = uc->uc_mcontext.gp_regs[14/*R14_bcp*/];
+#endif
- uint64_t istate_bcp = istate->bcp;
- uint64_t code_start = (uint64_t)(((Method*)(istate->method))->code_base());
- uint64_t code_end = (uint64_t)(((Method*)istate->method)->code_base() + ((Method*)istate->method)->code_size());
+ uint64_t istate_bcp = istate->bcp;
+ uint64_t code_start = (uint64_t)(m->code_base());
+ uint64_t code_end = (uint64_t)(m->code_base() + m->code_size());