set_byte_on_condition.py (5166:d749d156ce52) set_byte_on_condition.py (7087:fb8d5786ff30)
1# Copyright (c) 2007 The Hewlett-Packard Development Company
2# All rights reserved.
3#
1# Copyright (c) 2007 The Hewlett-Packard Development Company
2# All rights reserved.
3#
4# Redistribution and use of this software in source and binary forms,
5# with or without modification, are permitted provided that the
6# following conditions are met:
4# The license below extends only to copyright in the software and shall
5# not be construed as granting a license to any other intellectual
6# property including but not limited to intellectual property relating
7# to a hardware implementation of the functionality of the software
8# licensed hereunder. You may use the software subject to the license
9# terms below provided that you ensure that this notice is replicated
10# unmodified and in its entirety in all distributions of the software,
11# modified or unmodified, in source code or in binary form.
7#
12#
8# The software must be used only for Non-Commercial Use which means any
9# use which is NOT directed to receiving any direct monetary
10# compensation for, or commercial advantage from such use. Illustrative
11# examples of non-commercial use are academic research, personal study,
12# teaching, education and corporate research & development.
13# Illustrative examples of commercial use are distributing products for
14# commercial advantage and providing services using the software for
15# commercial advantage.
16#
17# If you wish to use this software or functionality therein that may be
18# covered by patents for commercial use, please contact:
19# Director of Intellectual Property Licensing
20# Office of Strategy and Technology
21# Hewlett-Packard Company
22# 1501 Page Mill Road
23# Palo Alto, California 94304
24#
25# Redistributions of source code must retain the above copyright notice,
26# this list of conditions and the following disclaimer. Redistributions
27# in binary form must reproduce the above copyright notice, this list of
28# conditions and the following disclaimer in the documentation and/or
29# other materials provided with the distribution. Neither the name of
30# the COPYRIGHT HOLDER(s), HEWLETT-PACKARD COMPANY, nor the names of its
13# Redistribution and use in source and binary forms, with or without
14# modification, are permitted provided that the following conditions are
15# met: redistributions of source code must retain the above copyright
16# notice, this list of conditions and the following disclaimer;
17# redistributions in binary form must reproduce the above copyright
18# notice, this list of conditions and the following disclaimer in the
19# documentation and/or other materials provided with the distribution;
20# neither the name of the copyright holders nor the names of its
31# contributors may be used to endorse or promote products derived from
21# contributors may be used to endorse or promote products derived from
32# this software without specific prior written permission. No right of
33# sublicense is granted herewith. Derivatives of the software and
34# output created using the software may be prepared, but only for
35# Non-Commercial Uses. Derivatives of the software may be shared with
36# others provided: (i) the others agree to abide by the list of
37# conditions herein which includes the Non-Commercial Use restrictions;
38# and (ii) such Derivatives of the software include the above copyright
39# notice to acknowledge the contribution from this software where
40# applicable, this list of conditions and the disclaimer below.
22# this software without specific prior written permission.
41#
42# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
43# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
44# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
45# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
46# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
47# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
48# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
49# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
50# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
51# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
52# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
53#
54# Authors: Gabe Black
55
56microcode = '''
57def macroop SALC_R
58{
59 sbb reg, reg, reg, dataSize=1
60};
61
62def macroop SETZ_R
63{
64 movi reg, reg, 1, flags=(CZF,)
65 movi reg, reg, 0, flags=(nCZF,)
66};
67
68def macroop SETZ_M
69{
70 movi t1, t1, 1, flags=(CZF,)
71 movi t1, t1, 0, flags=(nCZF,)
72 st t1, seg, sib, disp
73};
74
75def macroop SETZ_P
76{
77 rdip t7
78 movi t1, t1, 1, flags=(CZF,)
79 movi t1, t1, 0, flags=(nCZF,)
80 st t1, seg, riprel, disp
81};
82
83def macroop SETNZ_R
84{
85 movi reg, reg, 1, flags=(nCZF,)
86 movi reg, reg, 0, flags=(CZF,)
87};
88
89def macroop SETNZ_M
90{
91 movi t1, t1, 1, flags=(nCZF,)
92 movi t1, t1, 0, flags=(CZF,)
93 st t1, seg, sib, disp
94};
95
96def macroop SETNZ_P
97{
98 rdip t7
99 movi t1, t1, 1, flags=(nCZF,)
100 movi t1, t1, 0, flags=(CZF,)
101 st t1, seg, riprel, disp
102};
103
104def macroop SETB_R
105{
106 movi reg, reg, 1, flags=(CCF,)
107 movi reg, reg, 0, flags=(nCCF,)
108};
109
110def macroop SETB_M
111{
112 movi t1, t1, 1, flags=(CCF,)
113 movi t1, t1, 0, flags=(nCCF,)
114 st t1, seg, sib, disp
115};
116
117def macroop SETB_P
118{
119 rdip t7
120 movi t1, t1, 1, flags=(CCF,)
121 movi t1, t1, 0, flags=(nCCF,)
122 st t1, seg, riprel, disp
123};
124
125def macroop SETNB_R
126{
127 movi reg, reg, 1, flags=(nCCF,)
128 movi reg, reg, 0, flags=(CCF,)
129};
130
131def macroop SETNB_M
132{
133 movi t1, t1, 1, flags=(nCCF,)
134 movi t1, t1, 0, flags=(CCF,)
135 st t1, seg, sib, disp
136};
137
138def macroop SETNB_P
139{
140 rdip t7
141 movi t1, t1, 1, flags=(nCCF,)
142 movi t1, t1, 0, flags=(CCF,)
143 st t1, seg, riprel, disp
144};
145
146def macroop SETBE_R
147{
148 movi reg, reg, 1, flags=(CCvZF,)
149 movi reg, reg, 0, flags=(nCCvZF,)
150};
151
152def macroop SETBE_M
153{
154 movi t1, t1, 1, flags=(CCvZF,)
155 movi t1, t1, 0, flags=(nCCvZF,)
156 st t1, seg, sib, disp
157};
158
159def macroop SETBE_P
160{
161 rdip t7
162 movi t1, t1, 1, flags=(CCvZF,)
163 movi t1, t1, 0, flags=(nCCvZF,)
164 st t1, seg, riprel, disp
165};
166
167def macroop SETNBE_R
168{
169 movi reg, reg, 1, flags=(nCCvZF,)
170 movi reg, reg, 0, flags=(CCvZF,)
171};
172
173def macroop SETNBE_M
174{
175 movi t1, t1, 1, flags=(nCCvZF,)
176 movi t1, t1, 0, flags=(CCvZF,)
177 st t1, seg, sib, disp
178};
179
180def macroop SETNBE_P
181{
182 rdip t7
183 movi t1, t1, 1, flags=(nCCvZF,)
184 movi t1, t1, 0, flags=(CCvZF,)
185 st t1, seg, riprel, disp
186};
187
188def macroop SETS_R
189{
190 movi reg, reg, 1, flags=(CSF,)
191 movi reg, reg, 0, flags=(nCSF,)
192};
193
194def macroop SETS_M
195{
196 movi t1, t1, 1, flags=(CSF,)
197 movi t1, t1, 0, flags=(nCSF,)
198 st t1, seg, sib, disp
199};
200
201def macroop SETS_P
202{
203 rdip t7
204 movi t1, t1, 1, flags=(CSF,)
205 movi t1, t1, 0, flags=(nCSF,)
206 st t1, seg, riprel, disp
207};
208
209def macroop SETNS_R
210{
211 movi reg, reg, 1, flags=(nCSF,)
212 movi reg, reg, 0, flags=(CSF,)
213};
214
215def macroop SETNS_M
216{
217 movi t1, t1, 1, flags=(nCSF,)
218 movi t1, t1, 0, flags=(CSF,)
219 st t1, seg, sib, disp
220};
221
222def macroop SETNS_P
223{
224 rdip t7
225 movi t1, t1, 1, flags=(nCSF,)
226 movi t1, t1, 0, flags=(CSF,)
227 st t1, seg, riprel, disp
228};
229
230def macroop SETP_R
231{
232 movi reg, reg, 1, flags=(CPF,)
233 movi reg, reg, 0, flags=(nCPF,)
234};
235
236def macroop SETP_M
237{
238 movi t1, t1, 1, flags=(CPF,)
239 movi t1, t1, 0, flags=(nCPF,)
240 st t1, seg, sib, disp
241};
242
243def macroop SETP_P
244{
245 rdip t7
246 movi t1, t1, 1, flags=(CPF,)
247 movi t1, t1, 0, flags=(nCPF,)
248 st t1, seg, riprel, disp
249};
250
251def macroop SETNP_R
252{
253 movi reg, reg, 1, flags=(nCPF,)
254 movi reg, reg, 0, flags=(CPF,)
255};
256
257def macroop SETNP_M
258{
259 movi t1, t1, 1, flags=(nCPF,)
260 movi t1, t1, 0, flags=(CPF,)
261 st t1, seg, sib, disp
262};
263
264def macroop SETNP_P
265{
266 rdip t7
267 movi t1, t1, 1, flags=(nCPF,)
268 movi t1, t1, 0, flags=(CPF,)
269 st t1, seg, riprel, disp
270};
271
272def macroop SETL_R
273{
274 movi reg, reg, 1, flags=(CSxOF,)
275 movi reg, reg, 0, flags=(nCSxOF,)
276};
277
278def macroop SETL_M
279{
280 movi t1, t1, 1, flags=(CSxOF,)
281 movi t1, t1, 0, flags=(nCSxOF,)
282 st t1, seg, sib, disp
283};
284
285def macroop SETL_P
286{
287 rdip t7
288 movi t1, t1, 1, flags=(CSxOF,)
289 movi t1, t1, 0, flags=(nCSxOF,)
290 st t1, seg, riprel, disp
291};
292
293def macroop SETNL_R
294{
295 movi reg, reg, 1, flags=(nCSxOF,)
296 movi reg, reg, 0, flags=(CSxOF,)
297};
298
299def macroop SETNL_M
300{
301 movi t1, t1, 1, flags=(nCSxOF,)
302 movi t1, t1, 0, flags=(CSxOF,)
303 st t1, seg, sib, disp
304};
305
306def macroop SETNL_P
307{
308 rdip t7
309 movi t1, t1, 1, flags=(nCSxOF,)
310 movi t1, t1, 0, flags=(CSxOF,)
311 st t1, seg, riprel, disp
312};
313
314def macroop SETLE_R
315{
316 movi reg, reg, 1, flags=(CSxOvZF,)
317 movi reg, reg, 0, flags=(nCSxOvZF,)
318};
319
320def macroop SETLE_M
321{
322 movi t1, t1, 1, flags=(CSxOvZF,)
323 movi t1, t1, 0, flags=(nCSxOvZF,)
324 st t1, seg, sib, disp
325};
326
327def macroop SETLE_P
328{
329 rdip t7
330 movi t1, t1, 1, flags=(CSxOvZF,)
331 movi t1, t1, 0, flags=(nCSxOvZF,)
332 st t1, seg, riprel, disp
333};
334
335def macroop SETNLE_R
336{
337 movi reg, reg, 1, flags=(nCSxOvZF,)
338 movi reg, reg, 0, flags=(CSxOvZF,)
339};
340
341def macroop SETNLE_M
342{
343 movi t1, t1, 1, flags=(nCSxOvZF,)
344 movi t1, t1, 0, flags=(CSxOvZF,)
345 st t1, seg, sib, disp
346};
347
348def macroop SETNLE_P
349{
350 rdip t7
351 movi t1, t1, 1, flags=(nCSxOvZF,)
352 movi t1, t1, 0, flags=(CSxOvZF,)
353 st t1, seg, riprel, disp
354};
355
356def macroop SETO_R
357{
358 movi reg, reg, 1, flags=(COF,)
359 movi reg, reg, 0, flags=(nCOF,)
360};
361
362def macroop SETO_M
363{
364 movi t1, t1, 1, flags=(COF,)
365 movi t1, t1, 0, flags=(nCOF,)
366 st t1, seg, sib, disp
367};
368
369def macroop SETO_P
370{
371 rdip t7
372 movi t1, t1, 1, flags=(COF,)
373 movi t1, t1, 0, flags=(nCOF,)
374 st t1, seg, riprel, disp
375};
376
377def macroop SETNO_R
378{
379 movi reg, reg, 1, flags=(nCOF,)
380 movi reg, reg, 0, flags=(COF,)
381};
382
383def macroop SETNO_M
384{
385 movi t1, t1, 1, flags=(nCOF,)
386 movi t1, t1, 0, flags=(COF,)
387 st t1, seg, sib, disp
388};
389
390def macroop SETNO_P
391{
392 rdip t7
393 movi t1, t1, 1, flags=(nCOF,)
394 movi t1, t1, 0, flags=(COF,)
395 st t1, seg, riprel, disp
396};
397'''
23#
24# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
27# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
28# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
29# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
30# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
31# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
32# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
33# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
34# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35#
36# Authors: Gabe Black
37
38microcode = '''
39def macroop SALC_R
40{
41 sbb reg, reg, reg, dataSize=1
42};
43
44def macroop SETZ_R
45{
46 movi reg, reg, 1, flags=(CZF,)
47 movi reg, reg, 0, flags=(nCZF,)
48};
49
50def macroop SETZ_M
51{
52 movi t1, t1, 1, flags=(CZF,)
53 movi t1, t1, 0, flags=(nCZF,)
54 st t1, seg, sib, disp
55};
56
57def macroop SETZ_P
58{
59 rdip t7
60 movi t1, t1, 1, flags=(CZF,)
61 movi t1, t1, 0, flags=(nCZF,)
62 st t1, seg, riprel, disp
63};
64
65def macroop SETNZ_R
66{
67 movi reg, reg, 1, flags=(nCZF,)
68 movi reg, reg, 0, flags=(CZF,)
69};
70
71def macroop SETNZ_M
72{
73 movi t1, t1, 1, flags=(nCZF,)
74 movi t1, t1, 0, flags=(CZF,)
75 st t1, seg, sib, disp
76};
77
78def macroop SETNZ_P
79{
80 rdip t7
81 movi t1, t1, 1, flags=(nCZF,)
82 movi t1, t1, 0, flags=(CZF,)
83 st t1, seg, riprel, disp
84};
85
86def macroop SETB_R
87{
88 movi reg, reg, 1, flags=(CCF,)
89 movi reg, reg, 0, flags=(nCCF,)
90};
91
92def macroop SETB_M
93{
94 movi t1, t1, 1, flags=(CCF,)
95 movi t1, t1, 0, flags=(nCCF,)
96 st t1, seg, sib, disp
97};
98
99def macroop SETB_P
100{
101 rdip t7
102 movi t1, t1, 1, flags=(CCF,)
103 movi t1, t1, 0, flags=(nCCF,)
104 st t1, seg, riprel, disp
105};
106
107def macroop SETNB_R
108{
109 movi reg, reg, 1, flags=(nCCF,)
110 movi reg, reg, 0, flags=(CCF,)
111};
112
113def macroop SETNB_M
114{
115 movi t1, t1, 1, flags=(nCCF,)
116 movi t1, t1, 0, flags=(CCF,)
117 st t1, seg, sib, disp
118};
119
120def macroop SETNB_P
121{
122 rdip t7
123 movi t1, t1, 1, flags=(nCCF,)
124 movi t1, t1, 0, flags=(CCF,)
125 st t1, seg, riprel, disp
126};
127
128def macroop SETBE_R
129{
130 movi reg, reg, 1, flags=(CCvZF,)
131 movi reg, reg, 0, flags=(nCCvZF,)
132};
133
134def macroop SETBE_M
135{
136 movi t1, t1, 1, flags=(CCvZF,)
137 movi t1, t1, 0, flags=(nCCvZF,)
138 st t1, seg, sib, disp
139};
140
141def macroop SETBE_P
142{
143 rdip t7
144 movi t1, t1, 1, flags=(CCvZF,)
145 movi t1, t1, 0, flags=(nCCvZF,)
146 st t1, seg, riprel, disp
147};
148
149def macroop SETNBE_R
150{
151 movi reg, reg, 1, flags=(nCCvZF,)
152 movi reg, reg, 0, flags=(CCvZF,)
153};
154
155def macroop SETNBE_M
156{
157 movi t1, t1, 1, flags=(nCCvZF,)
158 movi t1, t1, 0, flags=(CCvZF,)
159 st t1, seg, sib, disp
160};
161
162def macroop SETNBE_P
163{
164 rdip t7
165 movi t1, t1, 1, flags=(nCCvZF,)
166 movi t1, t1, 0, flags=(CCvZF,)
167 st t1, seg, riprel, disp
168};
169
170def macroop SETS_R
171{
172 movi reg, reg, 1, flags=(CSF,)
173 movi reg, reg, 0, flags=(nCSF,)
174};
175
176def macroop SETS_M
177{
178 movi t1, t1, 1, flags=(CSF,)
179 movi t1, t1, 0, flags=(nCSF,)
180 st t1, seg, sib, disp
181};
182
183def macroop SETS_P
184{
185 rdip t7
186 movi t1, t1, 1, flags=(CSF,)
187 movi t1, t1, 0, flags=(nCSF,)
188 st t1, seg, riprel, disp
189};
190
191def macroop SETNS_R
192{
193 movi reg, reg, 1, flags=(nCSF,)
194 movi reg, reg, 0, flags=(CSF,)
195};
196
197def macroop SETNS_M
198{
199 movi t1, t1, 1, flags=(nCSF,)
200 movi t1, t1, 0, flags=(CSF,)
201 st t1, seg, sib, disp
202};
203
204def macroop SETNS_P
205{
206 rdip t7
207 movi t1, t1, 1, flags=(nCSF,)
208 movi t1, t1, 0, flags=(CSF,)
209 st t1, seg, riprel, disp
210};
211
212def macroop SETP_R
213{
214 movi reg, reg, 1, flags=(CPF,)
215 movi reg, reg, 0, flags=(nCPF,)
216};
217
218def macroop SETP_M
219{
220 movi t1, t1, 1, flags=(CPF,)
221 movi t1, t1, 0, flags=(nCPF,)
222 st t1, seg, sib, disp
223};
224
225def macroop SETP_P
226{
227 rdip t7
228 movi t1, t1, 1, flags=(CPF,)
229 movi t1, t1, 0, flags=(nCPF,)
230 st t1, seg, riprel, disp
231};
232
233def macroop SETNP_R
234{
235 movi reg, reg, 1, flags=(nCPF,)
236 movi reg, reg, 0, flags=(CPF,)
237};
238
239def macroop SETNP_M
240{
241 movi t1, t1, 1, flags=(nCPF,)
242 movi t1, t1, 0, flags=(CPF,)
243 st t1, seg, sib, disp
244};
245
246def macroop SETNP_P
247{
248 rdip t7
249 movi t1, t1, 1, flags=(nCPF,)
250 movi t1, t1, 0, flags=(CPF,)
251 st t1, seg, riprel, disp
252};
253
254def macroop SETL_R
255{
256 movi reg, reg, 1, flags=(CSxOF,)
257 movi reg, reg, 0, flags=(nCSxOF,)
258};
259
260def macroop SETL_M
261{
262 movi t1, t1, 1, flags=(CSxOF,)
263 movi t1, t1, 0, flags=(nCSxOF,)
264 st t1, seg, sib, disp
265};
266
267def macroop SETL_P
268{
269 rdip t7
270 movi t1, t1, 1, flags=(CSxOF,)
271 movi t1, t1, 0, flags=(nCSxOF,)
272 st t1, seg, riprel, disp
273};
274
275def macroop SETNL_R
276{
277 movi reg, reg, 1, flags=(nCSxOF,)
278 movi reg, reg, 0, flags=(CSxOF,)
279};
280
281def macroop SETNL_M
282{
283 movi t1, t1, 1, flags=(nCSxOF,)
284 movi t1, t1, 0, flags=(CSxOF,)
285 st t1, seg, sib, disp
286};
287
288def macroop SETNL_P
289{
290 rdip t7
291 movi t1, t1, 1, flags=(nCSxOF,)
292 movi t1, t1, 0, flags=(CSxOF,)
293 st t1, seg, riprel, disp
294};
295
296def macroop SETLE_R
297{
298 movi reg, reg, 1, flags=(CSxOvZF,)
299 movi reg, reg, 0, flags=(nCSxOvZF,)
300};
301
302def macroop SETLE_M
303{
304 movi t1, t1, 1, flags=(CSxOvZF,)
305 movi t1, t1, 0, flags=(nCSxOvZF,)
306 st t1, seg, sib, disp
307};
308
309def macroop SETLE_P
310{
311 rdip t7
312 movi t1, t1, 1, flags=(CSxOvZF,)
313 movi t1, t1, 0, flags=(nCSxOvZF,)
314 st t1, seg, riprel, disp
315};
316
317def macroop SETNLE_R
318{
319 movi reg, reg, 1, flags=(nCSxOvZF,)
320 movi reg, reg, 0, flags=(CSxOvZF,)
321};
322
323def macroop SETNLE_M
324{
325 movi t1, t1, 1, flags=(nCSxOvZF,)
326 movi t1, t1, 0, flags=(CSxOvZF,)
327 st t1, seg, sib, disp
328};
329
330def macroop SETNLE_P
331{
332 rdip t7
333 movi t1, t1, 1, flags=(nCSxOvZF,)
334 movi t1, t1, 0, flags=(CSxOvZF,)
335 st t1, seg, riprel, disp
336};
337
338def macroop SETO_R
339{
340 movi reg, reg, 1, flags=(COF,)
341 movi reg, reg, 0, flags=(nCOF,)
342};
343
344def macroop SETO_M
345{
346 movi t1, t1, 1, flags=(COF,)
347 movi t1, t1, 0, flags=(nCOF,)
348 st t1, seg, sib, disp
349};
350
351def macroop SETO_P
352{
353 rdip t7
354 movi t1, t1, 1, flags=(COF,)
355 movi t1, t1, 0, flags=(nCOF,)
356 st t1, seg, riprel, disp
357};
358
359def macroop SETNO_R
360{
361 movi reg, reg, 1, flags=(nCOF,)
362 movi reg, reg, 0, flags=(COF,)
363};
364
365def macroop SETNO_M
366{
367 movi t1, t1, 1, flags=(nCOF,)
368 movi t1, t1, 0, flags=(COF,)
369 st t1, seg, sib, disp
370};
371
372def macroop SETNO_P
373{
374 rdip t7
375 movi t1, t1, 1, flags=(nCOF,)
376 movi t1, t1, 0, flags=(COF,)
377 st t1, seg, riprel, disp
378};
379'''