diff options
Diffstat (limited to 'testing/openjdk11/ppc64le.patch')
-rw-r--r-- | testing/openjdk11/ppc64le.patch | 24 |
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(); |