1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
|
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
|