Lines 6-11
Link Here
|
6 |
framesz: |
6 |
framesz: |
7 |
.equ 128 |
7 |
.equ 128 |
8 |
|
8 |
|
|
|
9 |
; XPTC_InvokeByIndex(nsISuppots* that, PRUint32 methodIndex, |
10 |
; PRUint32 paramCount, nsXPTCVariant* params); |
11 |
|
9 |
.globl XPTC_InvokeByIndex |
12 |
.globl XPTC_InvokeByIndex |
10 |
.type XPTC_InvokeByIndex, @function |
13 |
.type XPTC_InvokeByIndex, @function |
11 |
|
14 |
|
Lines 31-36
Link Here
|
31 |
STW %r24,-44-framesz(%r30) ; |
34 |
STW %r24,-44-framesz(%r30) ; |
32 |
STW %r23,-48-framesz(%r30) ; |
35 |
STW %r23,-48-framesz(%r30) ; |
33 |
|
36 |
|
|
|
37 |
; B,L .+8,%r2 |
38 |
; ADDIL L'invoke_count_bytes-$PIC_pcrel$1+4,%r2,%r1 |
39 |
; ; LDO R'invoke_count_bytes-$PIC_pcrel$2+8(%r1),%r1 |
40 |
;$PIC_pcrel$1 |
41 |
; LDSID (%r1),%r31 |
42 |
;$PIC_pcrel$2 |
43 |
; MTSP %r31,%sr0 |
44 |
|
34 |
.CALL ARGW0=GR,ARGW1=GR,ARGW2=GR ;in=24,25,26;out=28 |
45 |
.CALL ARGW0=GR,ARGW1=GR,ARGW2=GR ;in=24,25,26;out=28 |
35 |
BL invoke_count_bytes,%r31 |
46 |
BL invoke_count_bytes,%r31 |
36 |
COPY %r31,%r2 |
47 |
COPY %r31,%r2 |
Lines 60-65
Link Here
|
60 |
LDW -48-framesz(%r3),%r24 ; |
71 |
LDW -48-framesz(%r3),%r24 ; |
61 |
|
72 |
|
62 |
LDW -32(%r30),%r19 ; shared lib call destroys r19; reload |
73 |
LDW -32(%r30),%r19 ; shared lib call destroys r19; reload |
|
|
74 |
; B,L .+8,%r2 |
75 |
; ADDIL L'invoke_copy_to_stack-$PIC_pcrel$3+4,%r2,%r1 |
76 |
; LDO R'invoke_copy_to_stack-$PIC_pcrel$4+8(%r1),%r1 |
77 |
;$PIC_pcrel$3 |
78 |
; LDSID (%r1),%r31 |
79 |
;$PIC_pcrel$4 |
80 |
; MTSP %r31,%sr0 |
63 |
.CALL ARGW0=GR,ARGW1=GR,ARGW2=GR ;in=24,25,26 |
81 |
.CALL ARGW0=GR,ARGW1=GR,ARGW2=GR ;in=24,25,26 |
64 |
BL invoke_copy_to_stack,%r31 |
82 |
BL invoke_copy_to_stack,%r31 |
65 |
COPY %r31,%r2 |
83 |
COPY %r31,%r2 |
Lines 82-90
Link Here
|
82 |
LDW -36-framesz(%r3),%r20 ; load vtable addr |
100 |
LDW -36-framesz(%r3),%r20 ; load vtable addr |
83 |
LDW -40-framesz(%r3),%r28 ; load index |
101 |
LDW -40-framesz(%r3),%r28 ; load index |
84 |
LDW 0(%r20),%r20 ; follow vtable |
102 |
LDW 0(%r20),%r20 ; follow vtable |
|
|
103 |
; LDO 0(%r20),%r20 ; offset vtable by 16 bytes (g++: 8, aCC: 16) |
85 |
SH2ADDL %r28,%r20,%r28 ; add 4*index to vtable entry |
104 |
SH2ADDL %r28,%r20,%r28 ; add 4*index to vtable entry |
86 |
LDW 0(%r28),%r22 ; load vtable entry |
105 |
LDW 0(%r28),%r22 ; load vtable entry |
87 |
|
106 |
|
|
|
107 |
; B,L .+8,%r2 |
108 |
; ADDIL L'$$dyncall_external-$PIC_pcrel$5+4,%r2,%r1 |
109 |
; LDO R'$$dyncall_external-$PIC_pcrel$6+8(%r1),%r1 |
110 |
;$PIC_pcrel$5 |
111 |
; LDSID (%r1),%r31 |
112 |
;$PIC_pcrel$6 |
113 |
; MTSP %r31,%sr0 |
88 |
.CALL ARGW0=GR,ARGW1=GR,ARGW2=GR,ARGW3=GR,RTNVAL=GR ;in=22-26;out=28; |
114 |
.CALL ARGW0=GR,ARGW1=GR,ARGW2=GR,ARGW3=GR,RTNVAL=GR ;in=22-26;out=28; |
89 |
BL $$dyncall,%r31 |
115 |
BL $$dyncall,%r31 |
90 |
COPY %r31,%r2 |
116 |
COPY %r31,%r2 |