https://bugzilla.mozilla.org/show_bug.cgi?id=1612181 https://bug1612181.bmoattachments.org/attachment.cgi?id=9123550 --- xpcom/reflect/xptcall/md/unix/xptcinvoke_asm_ppc64_linux.S.orig 2020-01-29 19:25:30.967574000 +0100 +++ xpcom/reflect/xptcall/md/unix/xptcinvoke_asm_ppc64_linux.S 2020-01-29 19:26:50.465737000 +0100 @@ -62,11 +62,11 @@ NS_InvokeByIndex: .NS_InvokeByIndex: #endif mflr 0 - std 0,16(r1) + std 0,16(%r1) - std r29,-24(r1) - std r30,-16(r1) - std r31,-8(r1) + std r29,-24(%r1) + std r30,-16(%r1) + std r31,-8(%r1) mr r29,r3 # Save 'that' in r29 mr r30,r4 # Save 'methodIndex' in r30 @@ -79,7 +79,7 @@ NS_InvokeByIndex: # # | (fixed area + | | 7 GP | 13 FP | 3 NV | # | param. save) |(params)........| regs | regs | regs | - # (r1)......(+STACK_PARAMS)... (-23*8).(-16*8).(-3*8)..(r31) + # (%r1)......(+STACK_PARAMS)... (-23*8).(-16*8).(-3*8)..(%r31) # +stack frame, -unused stack params, +regs storage, +1 for alignment addi r7,r5,((STACK_PARAMS/8)-7+7+13+3+1) @@ -105,56 +105,56 @@ NS_InvokeByIndex: # Set up to invoke function - ld r9,0(r29) # vtable (r29 is 'that') + ld r9,0(%r29) # vtable (%r29 is 'that') mr r3,r29 # self is first arg, obviously sldi r30,r30,3 # Find function descriptor add r9,r9,r30 - ld r12,0(r9) + ld r12,0(%r9) - std r2,STACK_TOC(r1) # Save r2 (TOC pointer) + std r2,STACK_TOC(%r1) # Save r2 (TOC pointer) #if _CALL_ELF == 2 mtctr r12 #else - ld r0,0(r12) # Actual address from fd. + ld r0,0(%r12) # Actual address from fd. mtctr 0 - ld r11,16(r12) # Environment pointer from fd. - ld r2,8(r12) # TOC pointer from fd. + ld r11,16(%r12) # Environment pointer from fd. + ld r2,8(%r12) # TOC pointer from fd. #endif # Load FP and GP registers as required - ld r4, -(23*8)(r31) - ld r5, -(22*8)(r31) - ld r6, -(21*8)(r31) - ld r7, -(20*8)(r31) - ld r8, -(19*8)(r31) - ld r9, -(18*8)(r31) - ld r10, -(17*8)(r31) + ld r4, -(23*8)(%r31) + ld r5, -(22*8)(%r31) + ld r6, -(21*8)(%r31) + ld r7, -(20*8)(%r31) + ld r8, -(19*8)(%r31) + ld r9, -(18*8)(%r31) + ld r10, -(17*8)(%r31) - lfd f1, -(16*8)(r31) - lfd f2, -(15*8)(r31) - lfd f3, -(14*8)(r31) - lfd f4, -(13*8)(r31) - lfd f5, -(12*8)(r31) - lfd f6, -(11*8)(r31) - lfd f7, -(10*8)(r31) - lfd f8, -(9*8)(r31) - lfd f9, -(8*8)(r31) - lfd f10, -(7*8)(r31) - lfd f11, -(6*8)(r31) - lfd f12, -(5*8)(r31) - lfd f13, -(4*8)(r31) + lfd f1, -(16*8)(%r31) + lfd f2, -(15*8)(%r31) + lfd f3, -(14*8)(%r31) + lfd f4, -(13*8)(%r31) + lfd f5, -(12*8)(%r31) + lfd f6, -(11*8)(%r31) + lfd f7, -(10*8)(%r31) + lfd f8, -(9*8)(%r31) + lfd f9, -(8*8)(%r31) + lfd f10, -(7*8)(%r31) + lfd f11, -(6*8)(%r31) + lfd f12, -(5*8)(%r31) + lfd f13, -(4*8)(%r31) bctrl # Do it - ld r2,STACK_TOC(r1) # Load our own TOC pointer - ld r1,0(r1) # Revert stack frame - ld 0,16(r1) # Reload lr + ld r2,STACK_TOC(%r1) # Load our own TOC pointer + ld r1,0(%r1) # Revert stack frame + ld 0,16(%r1) # Reload lr mtlr 0 - ld 29,-24(r1) # Restore NVGPRS - ld 30,-16(r1) - ld 31,-8(r1) + ld 29,-24(%r1) # Restore NVGPRS + ld 30,-16(%r1) + ld 31,-8(%r1) blr #if _CALL_ELF == 2 --- xpcom/reflect/xptcall/md/unix/xptcstubs_asm_ppc64_linux.S.orig 2020-01-29 19:25:51.465953000 +0100 +++ xpcom/reflect/xptcall/md/unix/xptcstubs_asm_ppc64_linux.S 2020-01-29 19:28:53.055137000 +0100 @@ -58,35 +58,35 @@ SharedStub: #endif mflr r0 - std r4, -56(r1) # Save all GPRS - std r5, -48(r1) - std r6, -40(r1) - std r7, -32(r1) - std r8, -24(r1) - std r9, -16(r1) - std r10, -8(r1) + std r4, -56(%r1) # Save all GPRS + std r5, -48(%r1) + std r6, -40(%r1) + std r7, -32(%r1) + std r8, -24(%r1) + std r9, -16(%r1) + std r10, -8(%r1) - stfd f13, -64(r1) # ... and FPRS - stfd f12, -72(r1) - stfd f11, -80(r1) - stfd f10, -88(r1) - stfd f9, -96(r1) - stfd f8, -104(r1) - stfd f7, -112(r1) - stfd f6, -120(r1) - stfd f5, -128(r1) - stfd f4, -136(r1) - stfd f3, -144(r1) - stfd f2, -152(r1) - stfd f1, -160(r1) + stfd f13, -64(%r1) # ... and FPRS + stfd f12, -72(%r1) + stfd f11, -80(%r1) + stfd f10, -88(%r1) + stfd f9, -96(%r1) + stfd f8, -104(%r1) + stfd f7, -112(%r1) + stfd f6, -120(%r1) + stfd f5, -128(%r1) + stfd f4, -136(%r1) + stfd f3, -144(%r1) + stfd f2, -152(%r1) + stfd f1, -160(%r1) subi r6,r1,56 # r6 --> gprData subi r7,r1,160 # r7 --> fprData addi r5,r1,STACK_PARAMS # r5 --> extra stack args - std r0, 16(r1) + std r0, 16(%r1) - stdu r1,-288(r1) + stdu r1,-288(%r1) # r3 has the 'self' pointer # already @@ -97,8 +97,8 @@ SharedStub: bl PrepareAndDispatch nop - ld 1,0(r1) # restore stack - ld r0,16(r1) # restore LR + ld 1,0(%r1) # restore stack + ld r0,16(%r1) # restore LR mtlr r0 blr