~ubuntu-branches/debian/squeeze/ffcall/squeeze

« back to all changes in this revision

Viewing changes to vacall/vacall-m68k.mit.S

  • Committer: Bazaar Package Importer
  • Author(s): Christoph Egger
  • Date: 2010-06-26 15:29:30 UTC
  • mfrom: (5.1.1 experimental)
  • Revision ID: james.westby@ubuntu.com-20100626152930-c09y01gk3szcnykn
Tags: 1.10+cvs20100619-2
Ship to unstable

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include "asmm68k.h"
 
2
.text
 
3
        .even
 
4
.globl C(__vacall)
 
5
        DECLARE_FUNCTION(__vacall)
 
6
C(__vacall:)
 
7
        link $a6,#-32
 
8
        moveml #0x3020,$sp@-
 
9
        clrl $a6@(-32)
 
10
        lea $a6@(8),$a2
 
11
        movel $a2,$a6@(-28)
 
12
        clrl $a6@(-24)
 
13
        clrl $a6@(-20)
 
14
        movel $a1,$a6@(-4)
 
15
        pea $a6@(-32)
 
16
        movel C(vacall_function),$a2
 
17
        jbsr $a2@
 
18
        addql #4,$sp
 
19
        movel $a6@(-20),$d2
 
20
        jeq L4
 
21
        moveq #1,$d3
 
22
        cmpl $d2,$d3
 
23
        jeq L49
 
24
        moveq #2,$d3
 
25
        cmpl $d2,$d3
 
26
        jne L7
 
27
L49:
 
28
        moveb $a6@(-12),$d0
 
29
        extbl $d0
 
30
        jra L4
 
31
        .even
 
32
L7:
 
33
        moveq #3,$d3
 
34
        cmpl $d2,$d3
 
35
        jne L9
 
36
        clrl $d0
 
37
        moveb $a6@(-12),$d0
 
38
        jra L4
 
39
        .even
 
40
L9:
 
41
        moveq #4,$d3
 
42
        cmpl $d2,$d3
 
43
        jne L11
 
44
        movew $a6@(-12),$d0
 
45
        extl $d0
 
46
        jra L4
 
47
        .even
 
48
L11:
 
49
        moveq #5,$d3
 
50
        cmpl $d2,$d3
 
51
        jne L13
 
52
        clrl $d0
 
53
        movew $a6@(-12),$d0
 
54
        jra L4
 
55
        .even
 
56
L13:
 
57
        moveq #6,$d3
 
58
        cmpl $d2,$d3
 
59
        jeq L50
 
60
        moveq #7,$d3
 
61
        cmpl $d2,$d3
 
62
        jeq L50
 
63
        moveq #8,$d3
 
64
        cmpl $d2,$d3
 
65
        jeq L50
 
66
        moveq #9,$d3
 
67
        cmpl $d2,$d3
 
68
        jne L21
 
69
L50:
 
70
        movel $a6@(-12),$d0
 
71
        jra L4
 
72
        .even
 
73
L21:
 
74
        moveq #-10,$d3
 
75
        addl $d3,$d2
 
76
        moveq #1,$d3
 
77
        cmpl $d2,$d3
 
78
        jcs L23
 
79
        movel $a6@(-12),$d0
 
80
        movel $a6@(-8),$d1
 
81
        jra L4
 
82
        .even
 
83
L23:
 
84
        movel $a6@(-20),$d2
 
85
        moveq #12,$d3
 
86
        cmpl $d2,$d3
 
87
        jne L25
 
88
        movel $a6@(-32),$d2
 
89
        btst #6,$d2
 
90
        jeq L26
 
91
        fmoves $a6@(-12),$fp0
 
92
        jra L4
 
93
        .even
 
94
L26:
 
95
        btst #5,$d2
 
96
        jeq L28
 
97
        fmoves $a6@(-12),$fp1
 
98
        fmoved $fp1,$sp@-
 
99
        movel $sp@+,$d0
 
100
        movel $sp@+,$d1
 
101
        jra L4
 
102
        .even
 
103
L28:
 
104
        movel $a6@(-12),$d0
 
105
        jra L4
 
106
        .even
 
107
L25:
 
108
        moveq #13,$d3
 
109
        cmpl $d2,$d3
 
110
        jne L31
 
111
        btst #6,$a6@(-29)
 
112
        jeq L32
 
113
        fmoved $a6@(-12),$fp0
 
114
        jra L4
 
115
        .even
 
116
L32:
 
117
        movel $a6@(-12),$d0
 
118
        movel $a6@(-8),$d1
 
119
        jra L4
 
120
        .even
 
121
L31:
 
122
        moveq #14,$d3
 
123
        cmpl $d2,$d3
 
124
        jne L35
 
125
        movel $a6@(-12),$d0
 
126
        jra L51
 
127
        .even
 
128
L35:
 
129
        moveq #15,$d3
 
130
        cmpl $d2,$d3
 
131
        jne L4
 
132
        movel $a6@(-32),$d2
 
133
        btst #10,$d2
 
134
        jeq L38
 
135
        movel $a6@(-16),$a2
 
136
        moveq #1,$d3
 
137
        cmpl $a2,$d3
 
138
        jne L39
 
139
        movel $a6@(-24),$a2
 
140
        clrl $d0
 
141
        moveb $a2@,$d0
 
142
        jra L4
 
143
        .even
 
144
L39:
 
145
        moveq #2,$d3
 
146
        cmpl $a2,$d3
 
147
        jne L42
 
148
        movel $a6@(-24),$a2
 
149
        clrl $d0
 
150
        movew $a2@,$d0
 
151
        jra L4
 
152
        .even
 
153
L42:
 
154
        moveq #4,$d3
 
155
        cmpl $a2,$d3
 
156
        jne L44
 
157
        movel $a6@(-24),$a2
 
158
        movel $a2@,$d0
 
159
        jra L4
 
160
        .even
 
161
L44:
 
162
        moveq #8,$d3
 
163
        cmpl $a2,$d3
 
164
        jne L38
 
165
        movel $a6@(-24),$a2
 
166
        movel $a2@,$d0
 
167
        movel $a2@(4),$d1
 
168
        jra L4
 
169
        .even
 
170
L38:
 
171
        btst #0,$d2
 
172
        jeq L4
 
173
        movel $a6@(-24),$d0
 
174
L51:
 
175
        movel $d0,$a0
 
176
L4:
 
177
        moveml $a6@(-44),#0x40c
 
178
        unlk $a6
 
179
        rts