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

« back to all changes in this revision

Viewing changes to ffcall/vacall/asmi386.h

  • 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
 
 
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
 
#ifdef _MSC_VER
121
 
#define C(entrypoint) entrypoint
122
 
#define L(label) L##label
123
 
#else
124
 
#ifdef ASM_UNDERSCORE
125
 
#define C(entrypoint) _##entrypoint
126
 
#define L(label) L##label
127
 
#else
128
 
#define C(entrypoint) entrypoint
129
 
#define L(label) .L##label
130
 
#endif
131
 
#endif
132
 
 
133
 
 
134
 
 
135
 
 
136
 
 
137
 
#ifdef _MSC_VER
138
 
#define INTEL_SYNTAX
139
 
#else
140
 
 
141
 
 
142
 
 
143
 
#ifdef ASM_UNDERSCORE
144
 
#define BSD_SYNTAX
145
 
#else
146
 
#define ELF_SYNTAX
147
 
#endif
148
 
#endif
149
 
 
150
 
#if defined (BSD_SYNTAX) || defined (ELF_SYNTAX)
151
 
#define R(r) %r
152
 
#define NUM(n) $##n
153
 
#define ADDR(a) $##a
154
 
#define X1
155
 
#define X2
156
 
#define X4
157
 
#define X8
158
 
#define MEM(base)(R(base))
159
 
#define MEM_DISP(base,displacement)displacement(R(base))
160
 
#define MEM_INDEX(base,index)(R(base),R(index))
161
 
#define MEM_SHINDEX(base,index,size)(R(base),R(index),size)
162
 
#define MEM_DISP_SHINDEX0(displacement,index,size)displacement(,R(index),size)
163
 
#define MEM_DISP_SHINDEX(base,displacement,index,size)displacement(R(base),R(index),size)
164
 
#define INDIR(value)*value
165
 
#define INSNCONC(mnemonic,size_suffix)mnemonic##size_suffix
166
 
#define INSN1(mnemonic,size_suffix,dst)INSNCONC(mnemonic,size_suffix) dst
167
 
#define INSN2(mnemonic,size_suffix,src,dst)INSNCONC(mnemonic,size_suffix) src,dst
168
 
#define INSN2MOVX(mnemonic,size_suffix,src,dst)INSNCONC(mnemonic,size_suffix##l) src,dst
169
 
#if defined(BSD_SYNTAX) || defined(COHERENT)
170
 
#define INSN2SHCL(mnemonic,size_suffix,src,dst)INSNCONC(mnemonic,size_suffix) R(cl),src,dst
171
 
#define REPZ repe ;
172
 
#else
173
 
#define INSN2SHCL(mnemonic,size_suffix,src,dst)INSNCONC(mnemonic,size_suffix) src,dst
174
 
#define REPZ repz ;
175
 
#endif
176
 
#define REP rep ;
177
 
#if defined(BSD_SYNTAX) && !(defined(__CYGWIN32__) || defined(__MINGW32__))
178
 
#define ALIGN(log) .align log,0x90
179
 
#endif
180
 
#if defined(ELF_SYNTAX) || defined(__CYGWIN32__) || defined(__MINGW32__)
181
 
#define ALIGN(log) .align 1<<log
182
 
#endif
183
 
#endif
184
 
#ifdef INTEL_SYNTAX
185
 
#define R(r) r
186
 
#define NUM(n) n
187
 
#define ADDR(a) OFFSET a
188
 
#define X1 BYTE PTR
189
 
#define X2 WORD PTR
190
 
#define X4 DWORD PTR
191
 
#define X8 QWORD PTR
192
 
#define MEM(base) [base]
193
 
#define MEM_DISP(base,displacement) [base+(displacement)]
194
 
#define MEM_INDEX(base,index) [base+index]
195
 
#define MEM_SHINDEX(base,index,size) [base+index*size]
196
 
#define MEM_DISP_SHINDEX0(displacement,index,size) [(displacement)+index*size]
197
 
#define MEM_DISP_SHINDEX(base,displacement,index,size) [base+(displacement)+index*size]
198
 
#define INDIR(value)value
199
 
#define INSNCONC(mnemonic,suffix)mnemonic##suffix
200
 
#define INSN1(mnemonic,size_suffix,dst)mnemonic dst
201
 
#define INSN2(mnemonic,size_suffix,src,dst)mnemonic dst,src
202
 
#define INSN2MOVX(mnemonic,size_suffix,src,dst)INSNCONC(mnemonic,x) dst,src
203
 
#define INSN2SHCL(mnemonic,size_suffix,src,dst)mnemonic dst,src,R(cl)
204
 
#define REPZ repz
205
 
#define REP rep
206
 
#define movsl  movs R(eax)
207
 
#define stosl  stos R(eax)
208
 
#define scasl  scas R(eax)
209
 
#define cmpsl  cmpsd
210
 
#ifdef _MSC_VER
211
 
 
212
 
#define ALIGN(log)
213
 
#else
214
 
#define ALIGN(log) .align log
215
 
#endif
216
 
#endif
217
 
 
218
 
#ifdef _MSC_VER
219
 
 
220
 
#define TEXT()
221
 
#else
222
 
#define TEXT() .text
223
 
#endif
224
 
 
225
 
#ifdef _MSC_VER
226
 
#define GLOBL(name)
227
 
#else
228
 
#define GLOBL(name) .globl name
229
 
#endif
230
 
 
231
 
 
232
 
#ifdef _MSC_VER
233
 
#define DECLARE_FUNCTION(name)
234
 
#elif defined(__svr4__) || defined(__ELF__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__DragonFly) || defined(__ROSE__) || defined(_SEQUENT_) || defined(DGUX) || defined(_SCO_COFF) || defined(_SCO_ELF)
235
 
#define DECLARE_FUNCTION(name) .type C(name),@function
236
 
#else
237
 
#define DECLARE_FUNCTION(name)
238
 
#endif
239
 
 
240
 
 
241
 
#ifdef _MSC_VER
242
 
 
243
 
 
244
 
 
245
 
 
246
 
#define FUNBEGIN(name) __declspec(naked) void name () { __asm {
247
 
#define FUNEND()                                      }       }
248
 
#else
249
 
#define FUNBEGIN(name) C(name##:)
250
 
#define FUNEND()
251
 
#endif
252
 
 
253
 
#define _
254
 
 
255
 
 
256
 
 
257
 
TEXT()
258
 
 
259
 
 
260
 
 
261
 
 
262
 
 
263