aboutsummaryrefslogtreecommitdiffstats
path: root/testing/openjdk11/ppc64le.patch
diff options
context:
space:
mode:
Diffstat (limited to 'testing/openjdk11/ppc64le.patch')
-rw-r--r--testing/openjdk11/ppc64le.patch24
1 files changed, 18 insertions, 6 deletions
diff --git a/testing/openjdk11/ppc64le.patch b/testing/openjdk11/ppc64le.patch
index aebdb580da..88ee55ae05 100644
--- a/testing/openjdk11/ppc64le.patch
+++ b/testing/openjdk11/ppc64le.patch
@@ -60,7 +60,7 @@
}
--- old/src/hotspot/cpu/ppc/vm_version_ppc.cpp
+++ new/src/hotspot/cpu/ppc/vm_version_ppc.cpp
-@@ -743,7 +743,7 @@
+@@ -768,7 +768,7 @@
unsigned long auxv = getauxval(AT_HWCAP2);
if (auxv & PPC_FEATURE2_HTM_NOSC) {
@@ -71,7 +71,7 @@
// POWER9 DD2.1 NV has a few issues that need a couple of firmware
--- old/src/hotspot/os_cpu/linux_ppc/os_linux_ppc.cpp
+++ new/src/hotspot/os_cpu/linux_ppc/os_linux_ppc.cpp
-@@ -110,24 +110,42 @@
+@@ -108,24 +108,42 @@
// - if uc was filled by getcontext(), it is undefined - getcontext() does not fill
// it because the volatile registers are not needed to make setcontext() work.
// Hopefully it was zero'd out beforehand.
@@ -114,7 +114,19 @@
}
intptr_t* os::Linux::ucontext_get_fp(const ucontext_t * uc) {
-@@ -257,7 +275,13 @@
+@@ -133,7 +151,11 @@
+ }
+
+ static unsigned long ucontext_get_trap(const ucontext_t * uc) {
++#if defined(__GLIBC__) || defined(__UCLIBC__)
+ return uc->uc_mcontext.regs->trap;
++#else // Musl
++ return uc->uc_mcontext.gp_regs[40];
++#endif
+ }
+
+ ExtendedPC os::fetch_frame_from_context(const void* ucVoid,
+@@ -259,7 +281,13 @@
// 3.2.1 "Machine State Register"), however note that ISA notation for bit
// numbering is MSB 0, so for normal bit numbering (LSB 0) they come to be
// bits 33 and 34. It's not related to endianness, just a notation matter.
@@ -128,7 +140,7 @@
if (TraceTraps) {
tty->print_cr("caught signal in transaction, "
"ignoring to jump to abort handler");
-@@ -570,6 +594,7 @@
+@@ -586,6 +614,7 @@
const ucontext_t* uc = (const ucontext_t*)context;
st->print_cr("Registers:");
@@ -136,7 +148,7 @@
st->print("pc =" INTPTR_FORMAT " ", uc->uc_mcontext.regs->nip);
st->print("lr =" INTPTR_FORMAT " ", uc->uc_mcontext.regs->link);
st->print("ctr=" INTPTR_FORMAT " ", uc->uc_mcontext.regs->ctr);
-@@ -578,8 +603,18 @@
+@@ -594,8 +623,18 @@
st->print("r%-2d=" INTPTR_FORMAT " ", i, uc->uc_mcontext.regs->gpr[i]);
if (i % 3 == 2) st->cr();
}
@@ -155,7 +167,7 @@
intptr_t *sp = (intptr_t *)os::Linux::ucontext_get_sp(uc);
st->print_cr("Top of Stack: (sp=" PTR_FORMAT ")", p2i(sp));
-@@ -603,12 +638,22 @@
+@@ -618,12 +657,22 @@
st->print_cr("Register to memory mapping:");
st->cr();