196
|
1 /* Micro-C Code Generator Checker */
|
|
2 /* $Id$ */
|
|
3
|
|
4 #define FLOAT_CODE 1
|
237
|
5 #define LONGLONG_CODE 1
|
196
|
6
|
|
7 // code_lvar(int e2,int creg)
|
197
|
8
|
201
|
9 extern int printf(const char *fmt,...);
|
|
10
|
197
|
11 void
|
|
12 code_lvar()
|
|
13 {
|
|
14 char c1,c2;
|
|
15 unsigned char uc1,uc2;
|
|
16 int i1,i2;
|
|
17 short s1,s2;
|
201
|
18 unsigned short us1,us2;
|
197
|
19
|
|
20 i1 = 1; i2 = -2;
|
|
21 s1 = -1; s2 = -3; us1 = 65535; us2 = 65535;
|
|
22 printf("code_lvar %d %d %d %d %u %u\n",i1,i2,s1,s2,us1,us2);
|
201
|
23 c1 = -1; c2 = -3; uc1 = 200; uc2 = 202;
|
197
|
24 printf("code_lvar %d %d %u %u\n",c1,c2,uc1,uc2);
|
|
25 }
|
|
26
|
196
|
27 // code_label(int labelno)
|
197
|
28 void
|
|
29 code_label()
|
|
30 {
|
|
31 goto hoge;
|
|
32 hage:
|
|
33 goto hage;
|
|
34 hoge:
|
|
35 printf("code_label done\n");
|
|
36 }
|
|
37
|
322
|
38 // code_label(int labelno)
|
|
39 void
|
|
40 code_label1()
|
|
41 {
|
|
42 goto hoge;
|
|
43 hage:
|
|
44 goto hage;
|
|
45 hoge:
|
|
46 printf("code_label1 done\n");
|
|
47 }
|
|
48
|
196
|
49 // code_gvar(int e1,int creg)
|
|
50 // code_rgvar(int e1,int creg)
|
|
51 // code_crgvar(int e1,int creg,int sign,int sz)
|
197
|
52
|
|
53 char c1,c2;
|
|
54 unsigned char uc1,uc2;
|
|
55 static char s_c1,s_c2;
|
|
56 static unsigned char s_uc1,s_uc2;
|
|
57 int i1,i2;
|
201
|
58 unsigned int ui1,ui2;
|
197
|
59 short s1,s2;
|
201
|
60 unsigned short us1,us2;
|
197
|
61 static int s_i1,s_i2;
|
|
62 static short s_s1,s_s2;
|
201
|
63 static unsigned short s_us1,s_us2;
|
197
|
64 #if FLOAT_CODE
|
|
65 float f0,f1;
|
|
66 double d0,d1;
|
|
67 static float s_f0,s_f1;
|
|
68 static double s_d0,s_d1;
|
|
69 #endif
|
|
70 #if LONGLONG_CODE
|
|
71 long long l0,l1;
|
|
72 unsigned long long ul0,ul1;
|
|
73 static long long s_l0,s_l1;
|
|
74 static unsigned long long s_ul0,s_ul1;
|
|
75 #endif
|
|
76
|
|
77 void
|
|
78 code_gvar()
|
|
79 {
|
|
80 i1 = 1; i2 = -2;
|
|
81 s1 = -1; s2 = -3; us1 = 65535; us2 = 65535;
|
235
|
82 printf("code_gvar a %d %d %u %u %u %u\n",i1,i2,s1,s2,us1,us2);
|
201
|
83 c1 = -1; c2 = -3; uc1 = 200; uc2 = 202;
|
235
|
84 printf("code_gvar b %d %d %u %u\n",c1,c2,uc1,uc2);
|
200
|
85
|
197
|
86 s_i1 = 1; s_i2 = 2;
|
|
87 s_s1 = -1; s_s2 = -3; s_us1 = 65535; s_us2 = 65535;
|
235
|
88 printf("code_gvar c %d %d %u %u %u %u\n",s_i1,s_i2,s1,s_s2,s_us1,s_us2);
|
201
|
89 s_c1 = -1; s_c2 = -3; s_uc1 = 200; s_uc2 = 202;
|
235
|
90 printf("code_gvar d %d %d %u %u\n",s_c1,s_c2,s_uc1,s_uc2);
|
197
|
91 }
|
|
92
|
196
|
93 // code_register(int e2,int creg)
|
197
|
94
|
201
|
95 void
|
197
|
96 code_register()
|
|
97 {
|
|
98 register char c1,c2;
|
|
99 register unsigned char uc1,uc2;
|
|
100 register int i1,i2;
|
|
101 register short s1,s2;
|
201
|
102 register unsigned short us1,us2;
|
197
|
103
|
|
104 i1 = 1; i2 = -2;
|
|
105 s1 = -1; s2 = -3; us1 = 65535; us2 = 65535;
|
235
|
106 printf("code_lvar r %d %d %u %u %u %u\n",i1,i2,s1,s2,us1,us2);
|
201
|
107 c1 = -1; c2 = -3; uc1 = 200; uc2 = 202;
|
235
|
108 printf("code_gvar r %d %d %u %u\n",c1,c2,uc1,uc2);
|
197
|
109 }
|
|
110
|
196
|
111 // code_fname(NMTBL *n,int creg)
|
197
|
112
|
201
|
113 void
|
197
|
114 code_fname()
|
|
115 {
|
|
116 int i,j;
|
|
117 i = (int)code_fname;
|
|
118 j = (int)code_register;
|
|
119 printf("code_fname %d\n",i==j);
|
|
120 }
|
|
121
|
|
122
|
196
|
123 // code_neg(int creg)
|
197
|
124 void
|
|
125 code_neg()
|
|
126 {
|
|
127 int i,j;
|
|
128 i = 123123123;j = -32423;
|
|
129 printf("code_neg %d %d\n",-i,-j);
|
|
130 }
|
|
131
|
196
|
132 // code_not(int creg)
|
197
|
133 void
|
|
134 code_not()
|
|
135 {
|
|
136 int i,j;
|
|
137 i = 123123123;j = 0;
|
|
138 printf("code_neg %d %d\n",~i,~j);
|
|
139 }
|
|
140
|
196
|
141 // code_lnot(int creg)
|
197
|
142 void
|
|
143 code_lnot()
|
|
144 {
|
|
145 int i,j;
|
|
146 i = 123123123;j = 0;
|
|
147 printf("code_neg %d %d\n",!i,!j);
|
|
148 }
|
|
149
|
196
|
150 // code_preinc(int e1,int e2,int dir,int sign,int sz,int reg)
|
197
|
151 void
|
|
152 code_preinc()
|
|
153 {
|
|
154 int i,j;
|
|
155 i = 123123123;j = 0;
|
273
|
156 printf("code_preinc i %d %d",++i,--j);
|
|
157 printf(" %d %d\n",i,j);
|
197
|
158 }
|
|
159
|
196
|
160 // code_postinc(int e1,int e2,int dir,int sign,int sz,int reg)
|
197
|
161 void
|
200
|
162 code_upostinc()
|
|
163 {
|
201
|
164 unsigned int i,j;
|
200
|
165 i = 123123123;j = 0;
|
273
|
166 printf("code_upreinc u %d %d",i++,j--);
|
|
167 printf(" %d %d\n",i,j);
|
200
|
168 }
|
|
169
|
|
170 // code_postinc(int e1,int e2,int dir,int sign,int sz,int reg)
|
|
171 void
|
197
|
172 code_postinc()
|
|
173 {
|
|
174 int i,j;
|
|
175 i = 123123123;j = 0;
|
273
|
176 printf("code_postinc i %d %d",i++,j--);
|
|
177 printf(" %d %d\n",i,j);
|
197
|
178 }
|
|
179
|
200
|
180 // code_preinc(int e1,int e2,int dir,int sign,int sz,int reg)
|
|
181 void
|
|
182 code_upreinc()
|
|
183 {
|
|
184 unsigned int i,j;
|
|
185 i = 123123123;j = 0;
|
273
|
186 printf("code_upreinc u %d %d",++i,--j);
|
|
187 printf(" %d %d\n",i,j);
|
|
188 }
|
|
189
|
|
190 // code_preinc(int e1,int e2,int dir,int sign,int sz,int reg)
|
|
191 void
|
|
192 code_register_preinc()
|
|
193 {
|
|
194 register int i,j;
|
|
195 i = 123123123;j = 0;
|
|
196 printf("code_preinc i r %d %d",++i,--j);
|
|
197 printf(" %d %d\n",i,j);
|
|
198 }
|
|
199
|
|
200 // code_postinc(int e1,int e2,int dir,int sign,int sz,int reg)
|
|
201 void
|
|
202 code_register_upostinc()
|
|
203 {
|
|
204 register unsigned int i,j;
|
|
205 i = 123123123;j = 0;
|
|
206 printf("code_upreinc u r %d %d",i++,j--);
|
|
207 printf(" %d %d\n",i,j);
|
|
208 }
|
|
209
|
|
210 // code_postinc(int e1,int e2,int dir,int sign,int sz,int reg)
|
|
211 void
|
|
212 code_register_postinc()
|
|
213 {
|
|
214 register int i,j;
|
|
215 i = 123123123;j = 0;
|
|
216 printf("code_postinc i r %d %d",i++,j--);
|
|
217 printf(" %d %d\n",i,j);
|
|
218 }
|
|
219
|
|
220 // code_register_preinc(int e1,int e2,int dir,int sign,int sz,int reg)
|
|
221 void
|
|
222 code_register_upreinc()
|
|
223 {
|
|
224 register unsigned int i,j;
|
|
225 i = 123123123;j = 0;
|
|
226 printf("code_upreinc u r %d %d",++i,--j);
|
|
227 printf(" %d %d\n",i,j);
|
200
|
228 }
|
|
229
|
196
|
230 // code_return(int creg)
|
197
|
231
|
201
|
232
|
197
|
233 int
|
201
|
234 code_return_int0()
|
|
235 {
|
|
236 return 1;
|
|
237 }
|
|
238 void
|
197
|
239 code_return_int()
|
|
240 {
|
201
|
241 printf("code_return_int %d\n",code_return_int0());
|
197
|
242 }
|
|
243
|
200
|
244 #if FLOAT_CODE
|
197
|
245 float
|
201
|
246 code_return_float0()
|
197
|
247 {
|
|
248 return 1.0;
|
|
249 }
|
201
|
250 void
|
|
251 code_return_float()
|
|
252 {
|
|
253 printf("code_return_float %g\n",code_return_float0());
|
|
254 }
|
197
|
255
|
|
256 double
|
201
|
257 code_return_double0()
|
197
|
258 {
|
|
259 return 1.0;
|
|
260 }
|
201
|
261 void
|
|
262 code_return_double()
|
|
263 {
|
|
264 printf("code_return_double %g\n",code_return_double0());
|
|
265 }
|
|
266
|
200
|
267 #endif
|
197
|
268
|
200
|
269 #if LONGLONG_CODE
|
197
|
270 long long
|
201
|
271 code_return_longlong0()
|
197
|
272 {
|
|
273 return 10LL;
|
|
274 }
|
201
|
275 void
|
|
276 code_return_longlong()
|
|
277 {
|
|
278 printf("code_return_longlong %lld\n",code_return_longlong0());
|
|
279 }
|
|
280
|
200
|
281 #endif
|
197
|
282
|
|
283 struct aa { char a[100]; } a0;
|
|
284 struct aa
|
223
|
285 code_return_struct0(/*int j*/)
|
197
|
286 {
|
|
287 a0.a[55]=3;
|
|
288 return a0;
|
|
289 }
|
|
290
|
201
|
291 void
|
203
|
292 code_return_struct1()
|
|
293 {
|
223
|
294 int i = code_return_struct0(/*1*/).a[55];
|
|
295 // int i;
|
|
296 // i = code_return_struct0(i).a[55];
|
203
|
297 printf("code_return_struct %d\n", i);
|
|
298 }
|
|
299
|
|
300 void
|
201
|
301 code_return_struct()
|
|
302 {
|
|
303 printf("code_return_struct %d\n", code_return_struct0().a[55]);
|
|
304 }
|
|
305
|
196
|
306 // code_gt(int cond)
|
197
|
307
|
227
|
308 void
|
|
309 code_gt()
|
197
|
310 {
|
280
|
311 int reg;
|
197
|
312 if (i1>i2)
|
|
313 printf("code_gt 1\n");
|
|
314 else
|
|
315 printf("code_gt 0\n");
|
280
|
316 for (reg=-3;reg<7;reg++) {
|
|
317 if (0<reg && reg<3)
|
|
318 printf("reg=%d code_gt 0<reg && reg <3\n",reg);
|
|
319 }
|
|
320 for (reg=-3;reg<7;reg++) {
|
|
321 if (-2<reg && reg<0)
|
|
322 printf("reg=%d code_gt -2<reg && reg <0\n",reg);
|
|
323 }
|
|
324
|
197
|
325 }
|
|
326
|
196
|
327 // code_ugt(int cond)
|
227
|
328 void
|
|
329 code_ugt()
|
197
|
330 {
|
280
|
331 int reg;
|
197
|
332 if (ui1>ui2)
|
|
333 printf("code_ugt 1\n");
|
|
334 else
|
|
335 printf("code_ugt 0\n");
|
280
|
336 for (reg=0;reg<7;reg++) {
|
|
337 if (0<reg && reg<3)
|
|
338 printf("reg=%d code_ugt 0<reg && reg <3\n",reg);
|
|
339 }
|
|
340 for (reg=0;reg<7;reg++) {
|
|
341 if (1<reg && reg<5)
|
|
342 printf("reg=%d code_ugt 1<reg && reg <5\n",reg);
|
|
343 }
|
197
|
344 }
|
|
345
|
196
|
346 // code_ge(int cond)
|
227
|
347 void
|
|
348 code_ge()
|
197
|
349 {
|
280
|
350 int reg;
|
197
|
351 if (i1>=i2)
|
|
352 printf("code_ge 1\n");
|
|
353 else
|
|
354 printf("code_ge 0\n");
|
280
|
355 for (reg=-3;reg<7;reg++) {
|
|
356 if (0<=reg && reg<=3)
|
|
357 printf("reg=%d code_ge 0<=reg && reg <=3\n",reg);
|
|
358 }
|
|
359 for (reg=-3;reg<7;reg++) {
|
|
360 if (-2<=reg && reg<=0)
|
|
361 printf("reg=%d code_ge -2<=reg && reg <=0\n",reg);
|
|
362 }
|
197
|
363 }
|
|
364
|
196
|
365 // code_uge(int cond)
|
227
|
366 void
|
|
367 code_uge()
|
197
|
368 {
|
280
|
369 unsigned reg;
|
197
|
370 if (ui1>=ui2)
|
|
371 printf("code_uge 1\n");
|
|
372 else
|
|
373 printf("code_uge 0\n");
|
280
|
374 for (reg=0;reg<7;reg++) {
|
|
375 if (0<=reg && reg<=3)
|
|
376 printf("reg=%d code_uge 0<=reg && reg <=3\n",reg);
|
|
377 }
|
|
378 for (reg=0;reg<7;reg++) {
|
|
379 if (1<=reg && reg<=5)
|
|
380 printf("reg=%d code_uge 1<=reg && reg <=5\n",reg);
|
|
381 }
|
197
|
382 }
|
|
383
|
196
|
384 // code_eq(int cond)
|
227
|
385 void
|
|
386 code_eq()
|
197
|
387 {
|
|
388 if (ui1==ui2)
|
|
389 printf("code_eq 1\n");
|
|
390 else
|
|
391 printf("code_eq 0\n");
|
|
392 if (i1!=i2)
|
|
393 printf("code_neq 1\n");
|
|
394 else
|
|
395 printf("code_neq 0\n");
|
|
396 }
|
|
397
|
|
398 // code_bool(int e1)
|
|
399
|
|
400 void
|
|
401 code_bool()
|
|
402 {
|
276
|
403 int i1l,i2l;
|
|
404 unsigned int ui1l,ui2l;
|
|
405
|
288
|
406 ui2 = ui1-3;
|
|
407 for(i2=i1-3;i2<i1+3;i2++) {
|
|
408 printf("code_bool %d>%d gvar %d\n",i1,i2,i1>i2);
|
|
409 printf("code_bool %u>%u gvar %d u\n",ui1,ui2,ui1>ui2);
|
|
410 printf("code_bool %d>=%d gvar %d\n",i1,i2,i1>=i2);
|
|
411 printf("code_bool %u>=%u gvar %d u\n",ui1,ui2,ui1>=ui2);
|
|
412 printf("code_bool %d<%d gvar %d\n",i1,i2,i1<i2);
|
|
413 printf("code_bool %u<%u gvar %d u\n",ui1,ui2,ui1<ui2);
|
|
414 printf("code_bool %d<=%d gvar %d\n",i1,i2,i1<=i2);
|
|
415 printf("code_bool %u<=%u gvar %d u\n",ui1,ui2,ui1<=ui2);
|
|
416 printf("code_bool %u==%u gvar %d u\n",ui1,ui2,ui1==ui2);
|
|
417 printf("code_bool %u!=%u gvar %d\n",i1,i2,i1!=i2);
|
|
418 ui2++;
|
|
419 }
|
|
420 ui1l = ui1;
|
|
421 i1l = i1;
|
|
422 ui2l = ui1-3;
|
|
423 for(i2l=i1-3;i2l<i1l+3;i2l++) {
|
|
424 printf("code_bool %d>%d lvar %d\n",i1l,i2l,i1l>i2l);
|
|
425 printf("code_bool %u>%u lvar %d u\n",ui1l,ui2l,ui1l>ui2l);
|
|
426 printf("code_bool %d>=%d lvar %d\n",i1l,i2l,i1l>=i2l);
|
|
427 printf("code_bool %u>=%u lvar %d u\n",ui1l,ui2l,ui1l>=ui2l);
|
|
428 printf("code_bool %d<%d lvar %d\n",i1l,i2l,i1l<i2l);
|
|
429 printf("code_bool %u<%u lvar %d u\n",ui1l,ui2l,ui1l<ui2l);
|
|
430 printf("code_bool %d<=%d lvar %d\n",i1l,i2l,i1l<=i2l);
|
|
431 printf("code_bool %u<=%u lvar %d u\n",ui1l,ui2l,ui1l<=ui2l);
|
|
432 printf("code_bool %u==%u lvar %d u\n",ui1l,ui2l,ui1l==ui2l);
|
|
433 printf("code_bool %u!=%u lvar %d\n",i1l,i2l,i1l!=i2l);
|
|
434 ui2l++;
|
|
435 }
|
197
|
436 }
|
|
437
|
|
438 void
|
|
439 code_cmp()
|
|
440 {
|
|
441 char c1,c2;
|
|
442 unsigned char uc1,uc2;
|
|
443 int i1,i2;
|
|
444 short s1,s2;
|
201
|
445 unsigned short us1,us2;
|
200
|
446
|
197
|
447 i1 = 1; i2 = -2;
|
|
448 s1 = -1; s2 = -3; us1 = 65535; us2 = 65535;
|
201
|
449 c1 = -1; c2 = -3; uc1 = 200; uc2 = 202;
|
197
|
450 i1 && printf("code_bool local 1\n");
|
|
451 s1 && printf("code_bool local 2\n");
|
|
452 us1 && printf("code_bool local 3\n");
|
|
453 c1 && printf("code_bool local 4\n");
|
|
454 uc1 && printf("code_bool local 5\n");
|
|
455
|
|
456 }
|
|
457 void
|
|
458 code_cmp_global()
|
|
459 {
|
|
460 i1 = 1; i2 = -2;
|
|
461 s1 = -1; s2 = -3; us1 = 65535; us2 = 65535;
|
201
|
462 c1 = -1; c2 = -3; uc1 = 200; uc2 = 202;
|
197
|
463 i1 && printf("code_bool global 1\n");
|
|
464 s1 && printf("code_bool global 2\n");
|
|
465 us1 && printf("code_bool global 3\n");
|
|
466 c1 && printf("code_bool global 4\n");
|
|
467 uc1 && printf("code_bool global 5\n");
|
|
468 }
|
|
469
|
|
470 void
|
|
471 code_cmp_register()
|
|
472 {
|
|
473 register char c1,c2;
|
|
474 register unsigned char uc1,uc2;
|
|
475 register int i1,i2;
|
|
476 register short s1,s2;
|
201
|
477 register unsigned short us1,us2;
|
200
|
478
|
197
|
479 i1 = 1; i2 = -2;
|
|
480 s1 = -1; s2 = -3; us1 = 65535; us2 = 65535;
|
201
|
481 c1 = -1; c2 = -3; uc1 = 200; uc2 = 202;
|
197
|
482 i1 && printf("code_bool register 1\n");
|
|
483 s1 && printf("code_bool register 2\n");
|
|
484 us1 && printf("code_bool register 3\n");
|
|
485 c1 && printf("code_bool register 4\n");
|
|
486 uc1 && printf("code_bool register 5\n");
|
|
487
|
|
488 }
|
|
489
|
|
490
|
196
|
491 // code_string(int e1,int creg)
|
197
|
492
|
|
493 void
|
201
|
494 code_string()
|
197
|
495 {
|
|
496 printf("code_string test\n");
|
|
497 }
|
|
498
|
196
|
499 // struct_push(int e4,int t,int arg)
|
197
|
500
|
|
501 struct aa
|
201
|
502 struct_push0(int i,struct aa a)
|
197
|
503 {
|
|
504 a.a[55]++;
|
|
505 if (i==0) {
|
201
|
506 return struct_push0(1,a0);
|
197
|
507 }
|
|
508 return a0;
|
|
509 }
|
|
510
|
|
511 void
|
|
512 struct_push()
|
|
513 {
|
|
514 a0.a[55]=3;
|
|
515 a0 = struct_push0(0,a0);
|
|
516 printf("struct_push %d\n",a0.a[55]);
|
|
517 }
|
|
518
|
196
|
519 // code_jmp(char *s)
|
|
520 // code_indirect_jmp(int e2)
|
197
|
521
|
196
|
522 // code_rindirect(int e1, int offset, int us);
|
197
|
523 void
|
|
524 code_rindirect()
|
|
525 {
|
|
526 int i1,i2;
|
|
527 unsigned int ui1,ui2;
|
|
528 int *pi1,*pi2;
|
|
529 unsigned int *pui1,*pui2;
|
|
530
|
|
531 i1 = -555; i2= 555;
|
|
532 ui1 = 632423423; ui2= 32394234;
|
|
533 pi1 = &i1;
|
|
534 pi2 = &i2;
|
|
535 pui1 = &ui1;
|
|
536 pui2 = &ui2;
|
|
537 printf("code_rindirect %d %d %u %u\n",*pi1,*pi2,*pui1,*pui2);
|
|
538 }
|
|
539
|
196
|
540 // code_crindirect(int e1, int offset, int us);
|
197
|
541 void
|
|
542 code_crindirect()
|
|
543 {
|
|
544 char i1,i2;
|
|
545 unsigned char ui1,ui2;
|
|
546 char *pi1,*pi2;
|
|
547 unsigned char *pui1,*pui2;
|
|
548
|
|
549 i1 = -55; i2= 55;
|
|
550 ui1 = 200; ui2= 128;
|
|
551 pi1 = &i1;
|
|
552 pi2 = &i2;
|
|
553 pui1 = &ui1;
|
|
554 pui2 = &ui2;
|
|
555 printf("code_cindirect %d %d %u %u\n",*pi1,*pi2,*pui1,*pui2);
|
|
556 }
|
|
557
|
196
|
558 // code_srindirect(int e1, int offset, int us);
|
197
|
559 void
|
|
560 code_srindirect()
|
|
561 {
|
|
562 short i1,i2;
|
|
563 unsigned short ui1,ui2;
|
|
564 short *pi1,*pi2;
|
|
565 unsigned short *pui1,*pui2;
|
|
566
|
|
567 i1 = -55; i2= 55;
|
|
568 ui1 = 200; ui2= 128;
|
|
569 pi1 = &i1;
|
|
570 pi2 = &i2;
|
|
571 pui1 = &ui1;
|
|
572 pui2 = &ui2;
|
|
573 printf("code_sindirect %d %d %u %u\n",*pi1,*pi2,*pui1,*pui2);
|
|
574 }
|
|
575
|
196
|
576 #if FLOAT_CODE
|
|
577 // code_drindirect(int e1, int offset, int d);
|
197
|
578 void
|
|
579 code_drindirect()
|
|
580 {
|
|
581 float i1,i2;
|
|
582 double ui1,ui2;
|
|
583 float *pi1,*pi2;
|
|
584 double *pui1,*pui2;
|
|
585
|
|
586 i1 = -55; i2= 55;
|
|
587 ui1 = 200; ui2= 128;
|
|
588 pi1 = &i1;
|
|
589 pi2 = &i2;
|
|
590 pui1 = &ui1;
|
|
591 pui2 = &ui2;
|
|
592 printf("code_dindirect %g %g %g %g\n",*pi1,*pi2,*pui1,*pui2);
|
|
593 }
|
|
594
|
196
|
595 #endif
|
197
|
596
|
196
|
597 #if LONGLONG_CODE
|
|
598 // code_lrindirect(int e1, int offset, int us);
|
197
|
599 void
|
|
600 code_lrindirect()
|
|
601 {
|
|
602 long long i1,i2;
|
|
603 unsigned long long ui1,ui2;
|
|
604 long long *pi1,*pi2;
|
|
605 unsigned long long *pui1,*pui2;
|
|
606
|
|
607 i1 = -55; i2= 55;
|
|
608 ui1 = 200; ui2= 128;
|
|
609 pi1 = &i1;
|
|
610 pi2 = &i2;
|
|
611 pui1 = &ui1;
|
|
612 pui2 = &ui2;
|
227
|
613 printf("code_lrindirect %llx %llx %llx %llx\n",*pi1,*pi2,*pui1,*pui2);
|
197
|
614 printf("code_lrindirect %lld %lld %llu %llu\n",*pi1,*pi2,*pui1,*pui2);
|
|
615 }
|
|
616
|
196
|
617 #endif
|
|
618
|
|
619 // code_assign_gvar(int e2,int creg,int byte)
|
|
620 // code_assign_lvar(int e2,int creg,int byte)
|
|
621 // code_assign_register(int e2,int byte,int creg)
|
|
622 // code_assign(int e2,int byte,int creg)
|
198
|
623
|
|
624 void
|
|
625 code_assign()
|
|
626 {
|
|
627 int i1,i2;
|
|
628 unsigned int ui1,ui2;
|
|
629 int *pi1,*pi2;
|
|
630 unsigned int *pui1,*pui2;
|
|
631
|
|
632 i1 = -555; i2= 555;
|
|
633 ui1 = 632423423; ui2= 32394234;
|
|
634 pi1 = &i1;
|
|
635 pi2 = &i2;
|
|
636 pui1 = &ui1;
|
|
637 pui2 = &ui2;
|
|
638
|
|
639 *(pi2+i1+i2) = 3;
|
|
640 *(pui2+i1+i2) = 3;
|
|
641 printf("code_rindirect %d %d %u %u\n",*pi1,*pi2,*pui1,*pui2);
|
|
642 }
|
|
643
|
274
|
644 void
|
|
645 code_assign_register()
|
|
646 {
|
|
647 int i1,i2;
|
|
648 unsigned int ui1,ui2;
|
|
649 register int *pi1,*pi2;
|
|
650 register unsigned int *pui1,*pui2;
|
|
651
|
|
652 i1 = -555; i2= 555;
|
|
653 ui1 = 632423423; ui2= 32394234;
|
|
654 pi1 = &i1;
|
|
655 pi2 = &i2;
|
|
656 pui1 = &ui1;
|
|
657 pui2 = &ui2;
|
|
658
|
|
659 *(pi2+i1+i2) = 3;
|
|
660 *(pui2+i1+i2) = 3;
|
|
661 printf("code_rindirect %d %d %u %u\n",*pi1,*pi2,*pui1,*pui2);
|
|
662 }
|
|
663
|
196
|
664 // code_register_assop(int e2,int op,int byte)
|
201
|
665 void
|
198
|
666 code_register_assop()
|
|
667 {
|
|
668 register int i1;
|
|
669 register unsigned int ui1;
|
255
|
670 int a = 3;
|
198
|
671 i1 = -555;
|
|
672 ui1 = 632423423;
|
|
673
|
255
|
674 i1 += a;
|
198
|
675 printf("code_assop 1 %d\n",i1);
|
255
|
676 i1 -= a;
|
198
|
677 printf("code_assop 2 %d\n",i1);
|
255
|
678 i1 /= a;
|
198
|
679 printf("code_assop 3 %d\n",i1);
|
255
|
680 i1 *= a;
|
198
|
681 printf("code_assop 4 %d\n",i1);
|
255
|
682 i1 |= a;
|
198
|
683 printf("code_assop 5 %d\n",i1);
|
255
|
684 i1 &= a;
|
198
|
685 printf("code_assop 6 %d\n",i1);
|
255
|
686 i1 ^= a;
|
198
|
687 printf("code_assop 7 %d\n",i1);
|
255
|
688 i1 <<= a;
|
198
|
689 printf("code_assop 8 %d\n",i1);
|
255
|
690 i1 >>= a;
|
198
|
691 printf("code_assop 9 %d\n",i1);
|
|
692
|
255
|
693 ui1 += a;
|
201
|
694 printf("code_assop 1 %u\n",ui1);
|
255
|
695 ui1 -= a;
|
201
|
696 printf("code_assop 2 %u\n",ui1);
|
255
|
697 ui1 /= a;
|
201
|
698 printf("code_assop 3 %u\n",ui1);
|
255
|
699 ui1 *= a;
|
201
|
700 printf("code_assop 4 %u\n",ui1);
|
255
|
701 ui1 |= a;
|
201
|
702 printf("code_assop 5 %u\n",ui1);
|
255
|
703 ui1 &= a;
|
201
|
704 printf("code_assop 6 %u\n",ui1);
|
255
|
705 ui1 ^= a;
|
201
|
706 printf("code_assop 7 %u\n",ui1);
|
255
|
707 ui1 <<= a;
|
201
|
708 printf("code_assop 8 %u\n",ui1);
|
255
|
709 ui1 >>= a;
|
201
|
710 printf("code_assop 9 %u\n",ui1);
|
198
|
711 }
|
|
712
|
196
|
713 // code_assop(int op,int byte,int sign)
|
201
|
714 void
|
198
|
715 code_assop()
|
|
716 {
|
|
717 int i1,i2;
|
|
718 unsigned int ui1,ui2;
|
255
|
719 int a = 3;
|
|
720 i1 = -555; i2= 555;
|
|
721 ui1 = 632423423; ui2= 32394234;
|
|
722
|
|
723 i1 += a;
|
|
724 printf("code_assop 1 %d\n",i1);
|
|
725 i1 -= a;
|
|
726 printf("code_assop 2 %d\n",i1);
|
|
727 i1 /= a;
|
|
728 printf("code_assop 3 %d\n",i1);
|
|
729 i1 *= a;
|
|
730 printf("code_assop 4 %d\n",i1);
|
|
731 i1 |= a;
|
|
732 printf("code_assop 5 %d\n",i1);
|
|
733 i1 &= a;
|
|
734 printf("code_assop 6 %d\n",i1);
|
|
735 i1 ^= a;
|
|
736 printf("code_assop 7 %d\n",i1);
|
|
737 i1 <<= a;
|
|
738 printf("code_assop 8 %d\n",i1);
|
|
739 i1 >>= a;
|
|
740 printf("code_assop 9 %d\n",i1);
|
|
741
|
|
742 ui1 += a;
|
|
743 printf("code_assop 1 %u\n",ui1);
|
|
744 ui1 -= a;
|
|
745 printf("code_assop 2 %u\n",ui1);
|
|
746 ui1 /= a;
|
|
747 printf("code_assop 3 %u\n",ui1);
|
|
748 ui1 *= a;
|
|
749 printf("code_assop 4 %u\n",ui1);
|
|
750 ui1 |= a;
|
|
751 printf("code_assop 5 %u\n",ui1);
|
|
752 ui1 &= a;
|
|
753 printf("code_assop 6 %u\n",ui1);
|
|
754 ui1 ^= a;
|
|
755 printf("code_assop 7 %u\n",ui1);
|
|
756 ui1 <<= a;
|
|
757 printf("code_assop 8 %u\n",ui1);
|
|
758 ui1 >>= a;
|
|
759 printf("code_assop 9 %u\n",ui1);
|
|
760 }
|
|
761
|
|
762
|
|
763 // code_register_assop(int e2,int op,int byte)
|
|
764 void
|
|
765 code_register_assop_const()
|
|
766 {
|
|
767 register int i1;
|
|
768 register unsigned int ui1;
|
|
769 i1 = -555;
|
|
770 ui1 = 632423423;
|
|
771
|
|
772 i1 += 3;
|
|
773 printf("code_assop c 1 %d\n",i1);
|
|
774 i1 -= 3;
|
|
775 printf("code_assop c 2 %d\n",i1);
|
|
776 i1 /= 3;
|
|
777 printf("code_assop c 3 %d\n",i1);
|
|
778 i1 *= 3;
|
|
779 printf("code_assop c 4 %d\n",i1);
|
|
780 i1 |= 234;
|
|
781 printf("code_assop c 5 %d\n",i1);
|
|
782 i1 &= 23244234;
|
|
783 printf("code_assop c 6 %d\n",i1);
|
|
784 i1 ^= 55244234;
|
|
785 printf("code_assop c 7 %d\n",i1);
|
|
786 i1 <<= 3;
|
|
787 printf("code_assop c 8 %d\n",i1);
|
|
788 i1 >>= 3;
|
|
789 printf("code_assop c 9 %d\n",i1);
|
|
790
|
|
791 ui1 += 3;
|
|
792 printf("code_assop c 1 %u\n",ui1);
|
|
793 ui1 -= 3;
|
|
794 printf("code_assop c 2 %u\n",ui1);
|
|
795 ui1 /= 3;
|
|
796 printf("code_assop c 3 %u\n",ui1);
|
|
797 ui1 *= 3;
|
|
798 printf("code_assop c 4 %u\n",ui1);
|
|
799 ui1 |= 234;
|
|
800 printf("code_assop c 5 %u\n",ui1);
|
|
801 ui1 &= 23234234;
|
|
802 printf("code_assop c 6 %u\n",ui1);
|
|
803 ui1 ^= 55234234;
|
|
804 printf("code_assop c 7 %u\n",ui1);
|
|
805 ui1 <<= 3;
|
|
806 printf("code_assop c 8 %u\n",ui1);
|
|
807 ui1 >>= 3;
|
|
808 printf("code_assop c 9 %u\n",ui1);
|
|
809 }
|
|
810
|
|
811 // code_assop(int op,int byte,int sign)
|
|
812 void
|
|
813 code_assop_const()
|
|
814 {
|
|
815 int i1,i2;
|
|
816 unsigned int ui1,ui2;
|
198
|
817 i1 = -555; i2= 555;
|
|
818 ui1 = 632423423; ui2= 32394234;
|
|
819
|
|
820 i1 += 3;
|
255
|
821 printf("code_assop c 1 %d\n",i1);
|
198
|
822 i1 -= 3;
|
255
|
823 printf("code_assop c 2 %d\n",i1);
|
198
|
824 i1 /= 3;
|
255
|
825 printf("code_assop c 3 %d\n",i1);
|
198
|
826 i1 *= 3;
|
255
|
827 printf("code_assop c 4 %d\n",i1);
|
198
|
828 i1 |= 234;
|
255
|
829 printf("code_assop c 5 %d\n",i1);
|
201
|
830 i1 &= 23234234;
|
255
|
831 printf("code_assop c 6 %d\n",i1);
|
201
|
832 i1 ^= 55444234;
|
255
|
833 printf("code_assop c 7 %d\n",i1);
|
198
|
834 i1 <<= 3;
|
255
|
835 printf("code_assop c 8 %d\n",i1);
|
198
|
836 i1 >>= 3;
|
255
|
837 printf("code_assop c 9 %d\n",i1);
|
198
|
838
|
|
839 ui1 += 3;
|
255
|
840 printf("code_assop c 1 %u\n",ui1);
|
198
|
841 ui1 -= 3;
|
255
|
842 printf("code_assop c 2 %u\n",ui1);
|
198
|
843 ui1 /= 3;
|
255
|
844 printf("code_assop c 3 %u\n",ui1);
|
198
|
845 ui1 *= 3;
|
255
|
846 printf("code_assop c 4 %u\n",ui1);
|
198
|
847 ui1 |= 234;
|
255
|
848 printf("code_assop c 5 %u\n",ui1);
|
201
|
849 ui1 &= 23234234;
|
255
|
850 printf("code_assop c 6 %u\n",ui1);
|
201
|
851 ui1 ^= 54234234;
|
255
|
852 printf("code_assop c 7 %u\n",ui1);
|
198
|
853 ui1 <<= 3;
|
255
|
854 printf("code_assop c 8 %u\n",ui1);
|
198
|
855 ui1 >>= 3;
|
255
|
856 printf("code_assop c 9 %u\n",ui1);
|
198
|
857 }
|
|
858
|
|
859
|
196
|
860 // tosop(int op,int oreg)
|
198
|
861 void
|
|
862 tosop()
|
|
863 {
|
|
864 int i1,i2,i;
|
201
|
865 unsigned int u1,u2,u;
|
198
|
866 i1 = -555; i2= 555;
|
201
|
867 u1 = 632423423; u2= 32394234;
|
198
|
868
|
|
869 i = i1 + i2;
|
201
|
870 printf("tosop 1 %d\n",i);
|
198
|
871 i = i1 - i2;
|
201
|
872 printf("tosop 2 %d\n",i);
|
198
|
873 i = i1 / i2;
|
201
|
874 printf("tosop 3 %d\n",i);
|
198
|
875 i = i1 * i2;
|
201
|
876 printf("tosop 4 %d\n",i);
|
198
|
877 i = i1 | i2;
|
201
|
878 printf("tosop 5 %d\n",i);
|
198
|
879 i = i1 & i2;
|
201
|
880 printf("tosop 6 %d\n",i);
|
198
|
881 i = i1 ^ i2;
|
201
|
882 printf("tosop 7 %d\n",i);
|
198
|
883 i = i1 << i2;
|
201
|
884 printf("tosop 8 %d\n",i);
|
198
|
885 i = i1 >> i2;
|
201
|
886 printf("tosop 9 %d\n",i);
|
214
|
887 i = i1 % i2;
|
|
888 printf("tosop 10 %d\n",i);
|
198
|
889
|
|
890 u = u1 + u2;
|
201
|
891 printf("tosop 1 %u\n",u);
|
198
|
892 u = u1 - u2;
|
201
|
893 printf("tosop 2 %u\n",u);
|
198
|
894 u = u1 / u2;
|
201
|
895 printf("tosop 3 %u\n",u);
|
198
|
896 u = u1 * u2;
|
201
|
897 printf("tosop 4 %u\n",u);
|
198
|
898 u = u1 | u2;
|
201
|
899 printf("tosop 5 %u\n",u);
|
198
|
900 u = u1 & u2;
|
201
|
901 printf("tosop 6 %u\n",u);
|
198
|
902 u = u1 ^ u2;
|
201
|
903 printf("tosop 7 %u\n",u);
|
198
|
904 u = u1 << u2;
|
201
|
905 printf("tosop 8 %u\n",u);
|
198
|
906 u = u1 >> u2;
|
201
|
907 printf("tosop 9 %u\n",u);
|
214
|
908 u = u1 % u2;
|
|
909 printf("tosop 10 %u\n",u);
|
198
|
910 }
|
196
|
911
|
|
912 // oprtc(int op,int v)
|
198
|
913 void
|
|
914 oprtc()
|
|
915 {
|
|
916 int i1,i;
|
201
|
917 unsigned int u1,u;
|
198
|
918 i1 = -555;
|
201
|
919 u1 = 632423423;
|
196
|
920
|
198
|
921 i = i1 + 3;
|
201
|
922 printf("oprtc 1 %d\n",i);
|
198
|
923 i = i1 - 3;
|
201
|
924 printf("oprtc 2 %d\n",i);
|
198
|
925 i = i1 / 3;
|
201
|
926 printf("oprtc 3 %d\n",i);
|
198
|
927 i = i1 * 3;
|
201
|
928 printf("oprtc 4 %d\n",i);
|
198
|
929 i = i1 | 234234234;
|
201
|
930 printf("oprtc 5 %d\n",i);
|
|
931 i = i1 & 23234234;
|
|
932 printf("oprtc 6 %d\n",i);
|
|
933 i = i1 ^ 23234234;
|
|
934 printf("oprtc 7 %d\n",i);
|
198
|
935 i = i1 << 5;
|
201
|
936 printf("oprtc 8 %d\n",i);
|
198
|
937 i = i1 >> 5;
|
201
|
938 printf("oprtc 9 %d\n",i);
|
214
|
939 i = i1 % 5;
|
|
940 printf("oprtc 10 %d\n",i);
|
196
|
941
|
198
|
942 u = u1 + 3;
|
201
|
943 printf("oprtc 1 %u\n",u);
|
198
|
944 u = u1 - 3;
|
201
|
945 printf("oprtc 2 %u\n",u);
|
198
|
946 u = u1 / 3;
|
201
|
947 printf("oprtc 3 %u\n",u);
|
198
|
948 u = u1 * 3;
|
201
|
949 printf("oprtc 4 %u\n",u);
|
198
|
950 u = u1 | 234234234;
|
201
|
951 printf("oprtc 5 %u\n",u);
|
198
|
952 u = u1 & 234234234;
|
201
|
953 printf("oprtc 6 %u\n",u);
|
|
954 u = u1 ^ 234234234;
|
|
955 printf("oprtc 7 %u\n",u);
|
198
|
956 u = u1 << 5;
|
201
|
957 printf("oprtc 8 %u\n",u);
|
198
|
958 u = u1 >> 5;
|
201
|
959 printf("oprtc 9 %u\n",u);
|
214
|
960 u = u1 % 5;
|
|
961 printf("oprtc 10 %u\n",u);
|
198
|
962 }
|
|
963
|
196
|
964
|
274
|
965 // tosop(int op,int oreg)
|
|
966 void
|
|
967 register_tosop()
|
|
968 {
|
|
969 register int i1,i2,i;
|
|
970 register unsigned int u1,u2,u;
|
|
971 i1 = -555; i2= 555;
|
|
972 u1 = 632423423; u2= 32394234;
|
|
973
|
|
974 i = i1 + i2;
|
|
975 printf("tosop r 1 %d\n",i);
|
|
976 i = i1 - i2;
|
|
977 printf("tosop r 2 %d\n",i);
|
|
978 i = i1 / i2;
|
|
979 printf("tosop r 3 %d\n",i);
|
|
980 i = i1 * i2;
|
|
981 printf("tosop r 4 %d\n",i);
|
|
982 i = i1 | i2;
|
|
983 printf("tosop r 5 %d\n",i);
|
|
984 i = i1 & i2;
|
|
985 printf("tosop r 6 %d\n",i);
|
|
986 i = i1 ^ i2;
|
|
987 printf("tosop r 7 %d\n",i);
|
|
988 i = i1 << i2;
|
|
989 printf("tosop r 8 %d\n",i);
|
|
990 i = i1 >> i2;
|
|
991 printf("tosop r 9 %d\n",i);
|
|
992 i = i1 % i2;
|
|
993 printf("tosop r 10 %d\n",i);
|
|
994
|
|
995 u = u1 + u2;
|
|
996 printf("tosop r 1 %u\n",u);
|
|
997 u = u1 - u2;
|
|
998 printf("tosop r 2 %u\n",u);
|
|
999 u = u1 / u2;
|
|
1000 printf("tosop r 3 %u\n",u);
|
|
1001 u = u1 * u2;
|
|
1002 printf("tosop r 4 %u\n",u);
|
|
1003 u = u1 | u2;
|
|
1004 printf("tosop r 5 %u\n",u);
|
|
1005 u = u1 & u2;
|
|
1006 printf("tosop r 6 %u\n",u);
|
|
1007 u = u1 ^ u2;
|
|
1008 printf("tosop r 7 %u\n",u);
|
|
1009 u = u1 << u2;
|
|
1010 printf("tosop r 8 %u\n",u);
|
|
1011 u = u1 >> u2;
|
|
1012 printf("tosop r 9 %u\n",u);
|
|
1013 u = u1 % u2;
|
|
1014 printf("tosop r 10 %u\n",u);
|
|
1015 }
|
|
1016
|
|
1017 // oprtc(int op,int v)
|
|
1018 void
|
|
1019 register_oprtc()
|
|
1020 {
|
|
1021 register int i1,i;
|
|
1022 register unsigned int u1,u;
|
|
1023 i1 = -555;
|
|
1024 u1 = 632423423;
|
|
1025
|
|
1026 i = i1 + 3;
|
|
1027 printf("oprtc r 1 %d\n",i);
|
|
1028 i = i1 - 3;
|
|
1029 printf("oprtc r 2 %d\n",i);
|
|
1030 i = i1 / 3;
|
|
1031 printf("oprtc r 3 %d\n",i);
|
|
1032 i = i1 * 3;
|
|
1033 printf("oprtc r 4 %d\n",i);
|
|
1034 i = i1 | 234234234;
|
|
1035 printf("oprtc r 5 %d\n",i);
|
|
1036 i = i1 & 23234234;
|
|
1037 printf("oprtc r 6 %d\n",i);
|
|
1038 i = i1 ^ 23234234;
|
|
1039 printf("oprtc r 7 %d\n",i);
|
|
1040 i = i1 << 5;
|
|
1041 printf("oprtc r 8 %d\n",i);
|
|
1042 i = i1 >> 5;
|
|
1043 printf("oprtc r 9 %d\n",i);
|
|
1044 i = i1 % 5;
|
|
1045 printf("oprtc r 10 %d\n",i);
|
|
1046
|
|
1047 u = u1 + 3;
|
|
1048 printf("oprtc r 1 %u\n",u);
|
|
1049 u = u1 - 3;
|
|
1050 printf("oprtc r 2 %u\n",u);
|
|
1051 u = u1 / 3;
|
|
1052 printf("oprtc r 3 %u\n",u);
|
|
1053 u = u1 * 3;
|
|
1054 printf("oprtc r 4 %u\n",u);
|
|
1055 u = u1 | 234234234;
|
|
1056 printf("oprtc r 5 %u\n",u);
|
|
1057 u = u1 & 234234234;
|
|
1058 printf("oprtc r 6 %u\n",u);
|
|
1059 u = u1 ^ 234234234;
|
|
1060 printf("oprtc r 7 %u\n",u);
|
|
1061 u = u1 << 5;
|
|
1062 printf("oprtc r 8 %u\n",u);
|
|
1063 u = u1 >> 5;
|
|
1064 printf("oprtc r 9 %u\n",u);
|
|
1065 u = u1 % 5;
|
|
1066 printf("oprtc r 10 %u\n",u);
|
|
1067 }
|
|
1068
|
|
1069
|
196
|
1070 #if FLOAT_CODE
|
|
1071 // code_cmp_dregister(int e2,int d)
|
198
|
1072 void
|
|
1073 code_cmp_dregister()
|
|
1074 {
|
|
1075 register float f0,f1;
|
|
1076 register double d0,d1;
|
|
1077 f0 = 0.0; f1 = 0.2;
|
|
1078 d0 = 10; d1 = 10e10;
|
|
1079 f0 && printf("code_bool register 6\n");
|
|
1080 d0 && printf("code_bool register 7\n");
|
|
1081
|
|
1082 }
|
|
1083
|
196
|
1084 // code_dregister(int e2,int freg,int d)
|
201
|
1085 void
|
198
|
1086 code_dregister()
|
|
1087 {
|
|
1088 register float f0,f1;
|
|
1089 register double d0,d1;
|
|
1090 f0 = 0.0; f1 = 0.2;
|
|
1091 d0 = 10; d1 = 10e10;
|
273
|
1092 printf("code_lvar float r %f %f %g %g\n",f0,f1,d0,d1);
|
198
|
1093 }
|
|
1094
|
196
|
1095 // code_dassign_gvar(int e2,int freg,int d)
|
|
1096 // code_dassign_lvar(int e2,int freg,int d)
|
198
|
1097 // code_dassign_dregister(int e2,int d,int freg)
|
|
1098
|
196
|
1099 // code_dassign(int e2,int freg,int d)
|
198
|
1100 void
|
|
1101 code_dassign()
|
|
1102 {
|
201
|
1103 int i1,i2;
|
|
1104 float f1,f2;
|
198
|
1105 double ui1,ui2;
|
|
1106 float *pi1,*pi2;
|
|
1107 double *pui1,*pui2;
|
|
1108
|
|
1109 i1 = -555; i2= 555;
|
201
|
1110 f1 = -555; f2= 555;
|
198
|
1111 ui1 = 632423423; ui2= 32394234;
|
201
|
1112 pi1 = &f1;
|
|
1113 pi2 = &f2;
|
198
|
1114 pui1 = &ui1;
|
|
1115 pui2 = &ui2;
|
|
1116
|
|
1117 *(pi2+i1+i2) = 3;
|
|
1118 *(pui2+i1+i2) = 3;
|
|
1119 printf("code_dassign %g %g %g %g\n",*pi1,*pi2,*pui1,*pui2);
|
|
1120 }
|
|
1121
|
274
|
1122 void
|
|
1123 code_register_dassign()
|
|
1124 {
|
|
1125 int i1,i2;
|
|
1126 float f1,f2;
|
|
1127 double ui1,ui2;
|
|
1128 register float *pi1,*pi2;
|
|
1129 register double *pui1,*pui2;
|
|
1130
|
|
1131 i1 = -555; i2= 555;
|
|
1132 f1 = -555; f2= 555;
|
|
1133 ui1 = 632423423; ui2= 32394234;
|
|
1134 pi1 = &f1;
|
|
1135 pi2 = &f2;
|
|
1136 pui1 = &ui1;
|
|
1137 pui2 = &ui2;
|
|
1138
|
|
1139 *(pi2+i1+i2) = 3;
|
|
1140 *(pui2+i1+i2) = 3;
|
|
1141 printf("code_dassign %g %g %g %g\n",*pi1,*pi2,*pui1,*pui2);
|
|
1142 }
|
|
1143
|
196
|
1144 // code_dconst(int e2,int freg,int d)
|
|
1145 // code_dneg(int freg,int d)
|
198
|
1146 // code_dneg(int creg)
|
|
1147 void
|
|
1148 code_dneg()
|
|
1149 {
|
|
1150 float i,j;
|
|
1151 double di,dj;
|
|
1152 i = 123123123;j = -32423;
|
|
1153 di = 123123123;dj = -32423;
|
|
1154 printf("code_dneg %g %g\n",-i,-j);
|
|
1155 printf("code_dneg %g %g\n",-di,-dj);
|
|
1156 }
|
|
1157
|
196
|
1158 // code_d2i(int freg0)
|
227
|
1159 void
|
|
1160 code_d2i()
|
198
|
1161 {
|
276
|
1162 double d,z;
|
198
|
1163 int i;
|
|
1164 d = 0.1;
|
276
|
1165 z = 555;
|
198
|
1166 i = d;
|
|
1167 printf("code_d2i %d\n",i);
|
|
1168 }
|
196
|
1169 // code_i2d(int creg0)
|
227
|
1170 void
|
|
1171 code_i2d()
|
198
|
1172 {
|
|
1173 double d;
|
276
|
1174 int i,z;
|
201
|
1175 i = 242342342;
|
276
|
1176 z = -1;
|
198
|
1177 d = i;
|
|
1178 printf("code_i2d %g\n",d);
|
|
1179 }
|
196
|
1180 // code_d2u(int freg0)
|
227
|
1181 void
|
|
1182 code_d2u()
|
198
|
1183 {
|
276
|
1184 double d,z;
|
198
|
1185 unsigned int i;
|
|
1186 d = 0.1;
|
276
|
1187 z = 555;
|
198
|
1188 i = d;
|
|
1189 printf("code_d2u %ud\n",i);
|
|
1190 }
|
196
|
1191 // code_u2d(int creg0)
|
227
|
1192 void
|
|
1193 code_u2d()
|
198
|
1194 {
|
|
1195 double d;
|
276
|
1196 unsigned int i,z;
|
201
|
1197 i = 242342342;
|
276
|
1198 z = 3;
|
198
|
1199 d = i;
|
|
1200 printf("code_u2d %g\n",d);
|
|
1201 }
|
|
1202 // code_f2i(int freg0)
|
227
|
1203 void
|
|
1204 code_f2i()
|
198
|
1205 {
|
276
|
1206 float d,z;
|
198
|
1207 int i;
|
|
1208 d = 0.1;
|
276
|
1209 z = 555;
|
198
|
1210 i = d;
|
|
1211 printf("code_d2i %d\n",i);
|
|
1212 }
|
|
1213 // code_i2f(int creg0)
|
227
|
1214 void
|
|
1215 code_i2f()
|
198
|
1216 {
|
|
1217 float d;
|
276
|
1218 int i,z;
|
201
|
1219 i = 24234342;
|
276
|
1220 z = 555;
|
198
|
1221 d = i;
|
|
1222 printf("code_i2f %g\n",d);
|
|
1223 }
|
|
1224 // code_f2u(int freg0)
|
227
|
1225 void
|
|
1226 code_f2u()
|
198
|
1227 {
|
276
|
1228 float d,z;
|
198
|
1229 unsigned int i;
|
|
1230 d = 0.1;
|
276
|
1231 z = 555;
|
198
|
1232 i = d;
|
|
1233 printf("code_f2u %ud\n",i);
|
|
1234 }
|
|
1235 // code_u2f(int creg0)
|
227
|
1236 void
|
|
1237 code_u2f()
|
198
|
1238 {
|
|
1239 float d;
|
276
|
1240 unsigned int i,z;
|
201
|
1241 i = 242342342;
|
276
|
1242 z = 555;
|
198
|
1243 d = i;
|
|
1244 printf("code_u2f %g\n",d);
|
|
1245 }
|
|
1246
|
196
|
1247
|
|
1248 // code_drgvar(int e2,int d,int freg)
|
198
|
1249 void
|
|
1250 code_dgvar()
|
|
1251 {
|
|
1252 f0 = 0.0; f1 = 0.2;
|
|
1253 d0 = 10; d1 = 10e10;
|
273
|
1254 printf("code_gvar float 1 %f %f %g %g\n",f0,f1,d0,d1);
|
198
|
1255 s_f0 = 0.0; s_f1 = 0.2;
|
|
1256 s_d0 = 10; s_d1 = 10e10;
|
273
|
1257 printf("code_gvar float 2 %f %f %g %g\n",s_f0,s_f1,s_d0,s_d1);
|
198
|
1258 }
|
|
1259
|
196
|
1260 // code_drlvar(int e2,int d,int freg)
|
198
|
1261 void
|
|
1262 code_dlvar()
|
|
1263 {
|
|
1264 float f0,f1;
|
|
1265 double d0,d1;
|
|
1266 f0 = 0.0; f1 = 0.2;
|
|
1267 d0 = 10; d1 = 10e10;
|
201
|
1268 printf("code_lvar float %f %f %g %g\n",f0,f1,d0,d1);
|
231
|
1269 printf("code_bool > lvar float %d %d %d %d\n",
|
227
|
1270 f0>f1,f0>=f1,f0==f1,f0!=f1);
|
231
|
1271 printf("code_bool > lvar double %d %d %d %d\n",
|
227
|
1272 d0>d1,d0>=d1,d0==d1,d0!=d1);
|
231
|
1273 printf("code_bool < lvar float %d %d %d %d\n",
|
227
|
1274 f0<f1,f0<=f1,f0==f1,f0!=f1);
|
231
|
1275 printf("code_bool < lvar double %d %d %d %d\n",
|
227
|
1276 d0<d1,d0<=d1,d0==d1,d0!=d1);
|
198
|
1277 }
|
|
1278
|
|
1279
|
196
|
1280 // code_cmp_drgvar(int e2,int d)
|
198
|
1281 void
|
|
1282 code_cmp_d_global()
|
|
1283 {
|
|
1284 f0 = 0.0; f1 = 0.2;
|
|
1285 d0 = 10; d1 = 10e10;
|
|
1286 f0 && printf("code_bool global 6\n");
|
|
1287 d0 && printf("code_bool global 7\n");
|
|
1288 }
|
|
1289
|
|
1290
|
196
|
1291 // code_cmp_drlvar(int e2,int d)
|
198
|
1292 void
|
|
1293 code_cmp_d()
|
|
1294 {
|
|
1295 float f0,f1;
|
|
1296 double d0,d1;
|
|
1297 f0 = 0.0; f1 = 0.2;
|
|
1298 d0 = 10; d1 = 10e10;
|
|
1299 f0 && printf("code_bool local 6\n");
|
|
1300 d0 && printf("code_bool local 7\n");
|
|
1301 }
|
|
1302
|
196
|
1303 // dtosop(int op,int e1)
|
198
|
1304 void
|
|
1305 dtosop()
|
|
1306 {
|
|
1307 double i1,i2,i;
|
201
|
1308 float u1,u2,u;
|
198
|
1309 i1 = -555; i2= 555;
|
201
|
1310 u1 = 632423423; u2= 32394234;
|
198
|
1311
|
|
1312 i = i1 + i2;
|
201
|
1313 printf("dtosop 1 %g\n",i);
|
198
|
1314 i = i1 - i2;
|
201
|
1315 printf("dtosop 2 %g\n",i);
|
198
|
1316 i = i1 / i2;
|
201
|
1317 printf("dtosop 3 %g\n",i);
|
198
|
1318 i = i1 * i2;
|
201
|
1319 printf("dtosop 4 %g\n",i);
|
198
|
1320 u = u1 + u2;
|
201
|
1321 printf("dtosop 1 %g\n",u);
|
198
|
1322 u = u1 - u2;
|
201
|
1323 printf("dtosop 2 %g\n",u);
|
198
|
1324 u = u1 / u2;
|
201
|
1325 printf("dtosop 3 %g\n",u);
|
198
|
1326 u = u1 * u2;
|
201
|
1327 printf("dtosop 4 %g\n",u);
|
198
|
1328 }
|
|
1329
|
196
|
1330
|
274
|
1331 // dtosop(int op,int e1)
|
|
1332 void
|
|
1333 dtosop_register()
|
|
1334 {
|
|
1335 register double i1,i2,i;
|
|
1336 register float u1,u2,u;
|
|
1337 i1 = -555; i2= 555;
|
|
1338 u1 = 632423423; u2= 32394234;
|
|
1339
|
|
1340 i = i1 + i2;
|
|
1341 printf("dtosop 1 %g\n",i);
|
|
1342 i = i1 - i2;
|
|
1343 printf("dtosop 2 %g\n",i);
|
|
1344 i = i1 / i2;
|
|
1345 printf("dtosop 3 %g\n",i);
|
|
1346 i = i1 * i2;
|
|
1347 printf("dtosop 4 %g\n",i);
|
|
1348 u = u1 + u2;
|
|
1349 printf("dtosop 1 %g\n",u);
|
|
1350 u = u1 - u2;
|
|
1351 printf("dtosop 2 %g\n",u);
|
|
1352 u = u1 / u2;
|
|
1353 printf("dtosop 3 %g\n",u);
|
|
1354 u = u1 * u2;
|
|
1355 printf("dtosop 4 %g\n",u);
|
|
1356 }
|
|
1357
|
|
1358
|
196
|
1359 // code_dassop(int op,int d)
|
201
|
1360 void
|
198
|
1361 code_dassop()
|
|
1362 {
|
|
1363 double i1,i2;
|
|
1364 float ui1,ui2;
|
|
1365 i1 = -555; i2= 555;
|
|
1366 ui1 = 632423423; ui2= 32394234;
|
|
1367
|
|
1368 i1 += 3;
|
|
1369 printf("code_dassop 1 %g\n",i1);
|
|
1370 i1 -= 3;
|
|
1371 printf("code_dassop 2 %g\n",i1);
|
|
1372 i1 /= 3;
|
|
1373 printf("code_dassop 3 %g\n",i1);
|
|
1374 i1 *= 3;
|
|
1375 printf("code_dassop 4 %g\n",i1);
|
|
1376
|
|
1377 ui1 += 3;
|
274
|
1378 printf("code_dassop f 1 %g\n",ui1);
|
198
|
1379 ui1 -= 3;
|
274
|
1380 printf("code_dassop f 2 %g\n",ui1);
|
198
|
1381 ui1 /= 3;
|
274
|
1382 printf("code_dassop f 3 %g\n",ui1);
|
198
|
1383 ui1 *= 3;
|
274
|
1384 printf("code_dassop f 4 %g\n",ui1);
|
198
|
1385 }
|
|
1386
|
273
|
1387 // code_dassop(int op,int d)
|
|
1388 void
|
|
1389 code_register_dassop()
|
|
1390 {
|
|
1391 register double i1,i2;
|
|
1392 register float ui1,ui2;
|
|
1393 i1 = -555; i2= 555;
|
|
1394 ui1 = 632423423; ui2= 32394234;
|
|
1395
|
|
1396 i1 += 3;
|
|
1397 printf("code_dassop r 1 %g\n",i1);
|
|
1398 i1 -= 3;
|
|
1399 printf("code_dassop r 2 %g\n",i1);
|
|
1400 i1 /= 3;
|
|
1401 printf("code_dassop r 3 %g\n",i1);
|
|
1402 i1 *= 3;
|
|
1403 printf("code_dassop r 4 %g\n",i1);
|
|
1404
|
|
1405 ui1 += 3;
|
274
|
1406 printf("code_dassop f r 1 %g\n",ui1);
|
273
|
1407 ui1 -= 3;
|
274
|
1408 printf("code_dassop f r 2 %g\n",ui1);
|
273
|
1409 ui1 /= 3;
|
274
|
1410 printf("code_dassop f r 3 %g\n",ui1);
|
273
|
1411 ui1 *= 3;
|
274
|
1412 printf("code_dassop f r 4 %g\n",ui1);
|
273
|
1413 }
|
|
1414
|
198
|
1415
|
196
|
1416 // code_dpreinc(int e1,int e2,int d,int reg)
|
199
|
1417 void
|
|
1418 code_dpreinc()
|
|
1419 {
|
|
1420 double i,j;
|
|
1421 float ui,uj;
|
|
1422 i = 123123123;j = 0;
|
273
|
1423 printf("code_dpreinc d %g %g",++i,--j);
|
|
1424 printf(" %g %g\n",i,j);
|
199
|
1425 ui = 123123123;uj = 0;
|
273
|
1426 printf("code_dpreinc f %g %g",++ui,--uj);
|
|
1427 printf(" %g %g\n",ui,uj);
|
199
|
1428 }
|
|
1429
|
196
|
1430 // code_dpostinc(int e1,int e2,int d,int reg)
|
199
|
1431 void
|
|
1432 code_dpostinc()
|
|
1433 {
|
|
1434 double i,j;
|
|
1435 float ui,uj;
|
274
|
1436 i = 123123;j = 0;
|
273
|
1437 printf("code_dpostinc d %g %g",i--,j--);
|
|
1438 printf(" %g %g\n",i,j);
|
274
|
1439 ui = 123123;uj = 0;
|
273
|
1440 printf("code_dpostinc f %g %g",ui++,uj--);
|
|
1441 printf(" %g %g\n",ui,uj);
|
|
1442 }
|
|
1443
|
|
1444 // code_dpreinc(int e1,int e2,int d,int reg)
|
|
1445 void
|
|
1446 code_register_dpreinc()
|
|
1447 {
|
|
1448 register double i,j;
|
|
1449 register float ui,uj;
|
274
|
1450 i = 123123;j = 0;
|
273
|
1451 printf("code_dpreinc r d %g %g",++i,--j);
|
|
1452 printf(" %g %g\n",i,j);
|
274
|
1453 ui = 123123;uj = 0;
|
273
|
1454 printf("code_dpreinc r f %g %g",++ui,--uj);
|
|
1455 printf(" %g %g\n",ui,uj);
|
|
1456 }
|
|
1457
|
|
1458 // code_dpostinc(int e1,int e2,int d,int reg)
|
|
1459 void
|
|
1460 code_register_dpostinc()
|
|
1461 {
|
|
1462 register double i,j;
|
|
1463 register float ui,uj;
|
274
|
1464 i = 123123;j = 0;
|
273
|
1465 printf("code_dpostinc r d %g %g",i--,j--);
|
|
1466 printf(" %g %g\n",i,j);
|
274
|
1467 ui = 123123;uj = 0;
|
273
|
1468 printf("code_dpostinc r f %g %g",ui++,uj--);
|
|
1469 printf(" %g %g\n",ui,uj);
|
199
|
1470 }
|
|
1471
|
196
|
1472 // drexpr(int e1, int e2,int l1, int op)
|
|
1473
|
|
1474 // case DOP+GE:
|
|
1475 // case FOP+GE:
|
|
1476 // case DOP+GT:
|
|
1477 // case FOP+GT:
|
|
1478 // case DOP+EQ:
|
|
1479 // case FOP+EQ:
|
|
1480 // case DOP+NEQ:
|
|
1481 // case FOP+NEQ:
|
199
|
1482 // code_gt(int cond)
|
|
1483
|
227
|
1484 void
|
|
1485 code_dgt()
|
199
|
1486 {
|
280
|
1487 double reg;
|
199
|
1488 if (d0>d1)
|
229
|
1489 printf("code_dgt 1\n");
|
199
|
1490 else
|
229
|
1491 printf("code_dgt 0\n");
|
280
|
1492 for (reg=-3;reg<7;reg++) {
|
|
1493 if (0<reg && reg<3)
|
|
1494 printf("reg=%g code_dgt 0<reg && reg <3\n",reg);
|
|
1495 }
|
|
1496 for (reg=-3;reg<7;reg++) {
|
|
1497 if (-2<reg && reg<0)
|
|
1498 printf("reg=%g code_dgt -2<reg && reg <0\n",reg);
|
|
1499 }
|
199
|
1500 }
|
|
1501
|
|
1502 // code_ugt(int cond)
|
227
|
1503 void
|
|
1504 code_fgt()
|
199
|
1505 {
|
280
|
1506 float reg;
|
199
|
1507 if (f0>f1)
|
|
1508 printf("code_fgt 1\n");
|
|
1509 else
|
|
1510 printf("code_fgt 0\n");
|
280
|
1511 for (reg=-3;reg<7;reg++) {
|
|
1512 if (0<reg && reg<3)
|
|
1513 printf("reg=%g code_fgt 0<reg && reg <3\n",reg);
|
|
1514 }
|
|
1515 for (reg=-3;reg<7;reg++) {
|
|
1516 if (-2<reg && reg<0)
|
|
1517 printf("reg=%g code_fgt -2<reg && reg <0\n",reg);
|
|
1518 }
|
199
|
1519 }
|
|
1520
|
|
1521 // code_ge(int cond)
|
227
|
1522 void
|
|
1523 code_dge()
|
199
|
1524 {
|
280
|
1525 double reg;
|
199
|
1526 if (d0>=d1)
|
|
1527 printf("code_dge 1\n");
|
|
1528 else
|
|
1529 printf("code_dge 0\n");
|
280
|
1530 for (reg=-3;reg<7;reg++) {
|
|
1531 if (0<=reg && reg<=3)
|
|
1532 printf("reg=%g code_dge 0<reg && reg <=3\n",reg);
|
|
1533 }
|
|
1534 for (reg=-3;reg<7;reg++) {
|
|
1535 if (-2<=reg && reg<=0)
|
|
1536 printf("reg=%g code_dge -2<reg && reg <=0\n",reg);
|
|
1537 }
|
199
|
1538 }
|
|
1539
|
|
1540 // code_uge(int cond)
|
227
|
1541 void
|
|
1542 code_fge()
|
199
|
1543 {
|
280
|
1544 float reg;
|
199
|
1545 if (f0>=f1)
|
|
1546 printf("code_fge 1\n");
|
|
1547 else
|
|
1548 printf("code_fge 0\n");
|
280
|
1549 for (reg=-3;reg<7;reg++) {
|
|
1550 if (0<=reg && reg<=3)
|
|
1551 printf("reg=%g code_fge 0<=reg && reg <=3\n",reg);
|
|
1552 }
|
|
1553 for (reg=-3;reg<7;reg++) {
|
|
1554 if (-2<=reg && reg<=0)
|
|
1555 printf("reg=%g code_fge -2<=reg && reg <=0\n",reg);
|
|
1556 }
|
199
|
1557 }
|
|
1558
|
|
1559 // code_eq(int cond)
|
227
|
1560 void
|
|
1561 code_deq()
|
199
|
1562 {
|
|
1563 if (f0==f1)
|
|
1564 printf("code_feq 1\n");
|
|
1565 else
|
|
1566 printf("code_feq 0\n");
|
|
1567 if (d0!=d1)
|
|
1568 printf("code_deq 1\n");
|
|
1569 else
|
|
1570 printf("code_deq 0\n");
|
|
1571 }
|
|
1572
|
|
1573 // code_dbool(int e1)
|
|
1574
|
|
1575 void
|
|
1576 code_dbool()
|
|
1577 {
|
288
|
1578 float i1l,i2l;
|
|
1579 double ui1l,ui2l;
|
276
|
1580
|
288
|
1581 d1 = d0-3;
|
|
1582 for(f1=f0-3;f1<f0+3;f1++) {
|
|
1583 printf("code_dbool %g>%g gvar %d\n",f0,f1,f0>f1);
|
|
1584 printf("code_dbool %g>%g gvar %d d\n",d0,d1,d0>d1);
|
|
1585 printf("code_dbool %g>=%g gvar %d\n",f0,f1,f0>=f1);
|
|
1586 printf("code_dbool %g>=%g gvar %d d\n",d0,d1,d0>=d1);
|
|
1587 printf("code_dbool %g<%g gvar %d\n",f0,f1,f0<f1);
|
|
1588 printf("code_dbool %g<%g gvar %d d\n",d0,d1,d0<d1);
|
|
1589 printf("code_dbool %g<=%g gvar %d\n",f0,f1,f0<=f1);
|
|
1590 printf("code_dbool %g<=%g gvar %d d\n",d0,d1,d0<=d1);
|
|
1591 printf("code_dbool %g==%g gvar %d d\n",d0,d1,d0==d1);
|
|
1592 printf("code_dbool %g!=%g gvar %d\n",f0,f1,f0!=f1);
|
|
1593 d1++;
|
|
1594 }
|
|
1595 ui1l = d0;
|
|
1596 i1l = f0;
|
|
1597 ui2l = d0-3;
|
|
1598 for(i2l=f0-3;i2l<i1l+3;i2l++) {
|
|
1599 printf("code_dbool %g>%g lvar %d\n",i1l,i2l,i1l>i2l);
|
|
1600 printf("code_dbool %g>%g lvar %d d\n",ui1l,ui2l,ui1l>ui2l);
|
|
1601 printf("code_dbool %g>=%g lvar %d\n",i1l,i2l,i1l>=i2l);
|
|
1602 printf("code_dbool %g>=%g lvar %d d\n",ui1l,ui2l,ui1l>=ui2l);
|
|
1603 printf("code_dbool %g<%g lvar %d\n",i1l,i2l,i1l<i2l);
|
|
1604 printf("code_dbool %g<%g lvar %d d\n",ui1l,ui2l,ui1l<ui2l);
|
|
1605 printf("code_dbool %g<=%g lvar %d\n",i1l,i2l,i1l<=i2l);
|
|
1606 printf("code_dbool %g<=%g lvar %d d\n",ui1l,ui2l,ui1l<=ui2l);
|
|
1607 printf("code_dbool %g==%g lvar %d d\n",ui1l,ui2l,ui1l==ui2l);
|
|
1608 printf("code_dbool %g!=%g lvar %d\n",i1l,i2l,i1l!=i2l);
|
|
1609 ui2l++;
|
|
1610 }
|
|
1611 }
|
276
|
1612
|
196
|
1613 #endif
|
|
1614
|
199
|
1615
|
196
|
1616 #if LONGLONG_CODE
|
|
1617 // lrexpr(int e1, int e2,int l1, int op)
|
200
|
1618 void
|
|
1619 code_lbool()
|
|
1620 {
|
276
|
1621 long long l0l,l1l;
|
|
1622 unsigned long long ul0l,ul1l;
|
|
1623
|
231
|
1624 printf("code_bool > long long %d %d %d %d %d %d\n",
|
200
|
1625 l1>l0,ul1>ul0,l1>=l0,ul1>=ul0,ul1==ul0,l1!=l0);
|
231
|
1626 printf("code_bool < long long %d %d %d %d %d %d\n",
|
227
|
1627 l1<l0,ul1<ul0,l1<=l0,ul1<=ul0,ul1==ul0,l1!=l0);
|
276
|
1628
|
|
1629 l0l=l1l=l0;
|
|
1630 ul0l=ul1l=ul0;
|
|
1631
|
|
1632 printf("code_bool eq > long long %d %d %d %d %d %d\n",
|
|
1633 l1l>l0l,ul1l>ul0l,l1l>=l0l,ul1l>=ul0l,ul1l==ul0l,l1l!=l0l);
|
|
1634 printf("code_bool eq < long long %d %d %d %d %d %d\n",
|
|
1635 l1l<l0l,ul1l<ul0l,l1l<=l0l,ul1l<=ul0l,ul1l==ul0l,l1l!=l0l);
|
|
1636
|
200
|
1637 }
|
|
1638
|
196
|
1639 // int lpop_register()
|
|
1640 // code_lregister(int e2,int reg)
|
201
|
1641 void
|
|
1642 code_lregister()
|
200
|
1643 {
|
|
1644 register long long l0,l1;
|
|
1645 register unsigned long long ul0,ul1;
|
|
1646 l0 = 123123123LL;
|
|
1647 l1 = 123123123LL;
|
|
1648 ul0 = 123123123LL;
|
|
1649 ul1 = 123123123LL;
|
201
|
1650 printf("code_lvar long long %llu %llu %llu %llu\n",l0,l1,ul0,ul1);
|
200
|
1651 }
|
|
1652
|
196
|
1653 // code_cmp_lregister(int reg)
|
200
|
1654 void
|
|
1655 code_cmp_lregister()
|
|
1656 {
|
|
1657 register long long l0,l1;
|
|
1658 register unsigned long long ul0,ul1;
|
|
1659 l0 = 123123123LL;
|
|
1660 l1 = 123123123LL;
|
|
1661 ul0 = 123123123LL;
|
|
1662 ul1 = 123123123LL;
|
|
1663 l0 && printf("code_bool register 8\n");
|
|
1664 ul0 && printf("code_bool register 9\n");
|
|
1665 }
|
|
1666
|
196
|
1667 // code_cmp_lrgvar(int e1,int e2)
|
200
|
1668 void
|
|
1669 code_cmp_lrgvar()
|
|
1670 {
|
|
1671 l0 = 123123123LL;
|
|
1672 l1 = 123123123LL;
|
|
1673 ul0 = 123123123LL;
|
|
1674 ul1 = 123123123LL;
|
|
1675 l0 && printf("code_bool global 8\n");
|
|
1676 ul0 && printf("code_bool global 9\n");
|
|
1677 }
|
196
|
1678 // code_cmp_lrlvar(int e1,int e2)
|
200
|
1679 void
|
|
1680 code_cmp_lrlvar()
|
|
1681 {
|
|
1682 long long l0,l1;
|
|
1683 unsigned long long ul0,ul1;
|
|
1684 l0 = 123123123LL;
|
|
1685 l1 = 123123123LL;
|
|
1686 ul0 = 123123123LL;
|
|
1687 ul1 = 123123123LL;
|
|
1688 l0 && printf("code_bool local 8\n");
|
|
1689 ul0 && printf("code_bool local 9\n");
|
|
1690 }
|
|
1691
|
196
|
1692 // code_lassign(int e1,int e2)
|
|
1693 // code_lassign_gvar(int e1,int e2)
|
|
1694 // code_lassign_lvar(int e1,int e2)
|
|
1695 // code_lassign_lregister(int e2,int reg)
|
200
|
1696 void
|
|
1697 code_lassign()
|
|
1698 {
|
|
1699 long long i1,i2;
|
|
1700 unsigned long long ui1,ui2;
|
|
1701 long long *pi1,*pi2;
|
|
1702 unsigned long long *pui1,*pui2;
|
|
1703
|
|
1704 i1 = -555; i2= 555;
|
|
1705 ui1 = 632423423; ui2= 32394234;
|
|
1706 pi1 = &i1;
|
|
1707 pi2 = &i2;
|
|
1708 pui1 = &ui1;
|
|
1709 pui2 = &ui2;
|
|
1710
|
|
1711 *(pi2+i1+i2) = 3;
|
|
1712 *(pui2+i1+i2) = 3;
|
|
1713 printf("code_rindirect %lld %lld %llu %llu\n",*pi1,*pi2,*pui1,*pui2);
|
|
1714 }
|
|
1715
|
274
|
1716 void
|
|
1717 code_lassign_register()
|
|
1718 {
|
|
1719 long long i1,i2;
|
|
1720 unsigned long long ui1,ui2;
|
|
1721 register long long *pi1,*pi2;
|
|
1722 register unsigned long long *pui1,*pui2;
|
|
1723
|
|
1724 i1 = -555; i2= 555;
|
|
1725 ui1 = 632423423; ui2= 32394234;
|
|
1726 pi1 = &i1;
|
|
1727 pi2 = &i2;
|
|
1728 pui1 = &ui1;
|
|
1729 pui2 = &ui2;
|
|
1730
|
|
1731 *(pi2+i1+i2) = 3;
|
|
1732 *(pui2+i1+i2) = 3;
|
|
1733 printf("code_rindirect %lld %lld %llu %llu\n",*pi1,*pi2,*pui1,*pui2);
|
|
1734 }
|
|
1735
|
196
|
1736 // code_lconst(int e1,int e2)
|
|
1737 // code_lneg(int e1,int e2)
|
200
|
1738 void
|
|
1739 code_lneg()
|
|
1740 {
|
|
1741 long long i,j;
|
|
1742 i = 123123123;j = -32423;
|
|
1743 printf("code_neg %lld %lld\n",-i,-j);
|
|
1744 }
|
|
1745
|
196
|
1746 // code_lrgvar(int e1,int e2)
|
200
|
1747 void
|
|
1748 code_lrgvar()
|
|
1749 {
|
|
1750 l0 = 123123123LL;
|
|
1751 l1 = 123123123LL;
|
|
1752 ul0 = 123123123LL;
|
|
1753 ul1 = 123123123LL;
|
201
|
1754 printf("code_lrgvar long long %lld %lld %llu %llu\n",l0,l1,ul0,ul1);
|
200
|
1755 s_l0 = 123123123LL;
|
|
1756 s_l1 = 123123123LL;
|
|
1757 s_ul0 = 123123123LL;
|
|
1758 s_ul1 = 123123123LL;
|
201
|
1759 printf("code_lrgvar long long %lld %lld %llu %llu\n",s_l0,s_l1,s_ul0,s_ul1);
|
200
|
1760 }
|
|
1761
|
196
|
1762 // code_lrlvar(int e1,int e2)
|
200
|
1763 void
|
|
1764 code_lrlvar()
|
|
1765 {
|
|
1766 long long l0,l1;
|
|
1767 unsigned long long ul0,ul1;
|
|
1768 l0 = 123123123LL;
|
|
1769 l1 = 123123123LL;
|
|
1770 ul0 = 123123123LL;
|
|
1771 ul1 = 123123123LL;
|
201
|
1772 printf("code_lvar long long %lld %lld %llu %llu\n",l0,l1,ul0,ul1);
|
231
|
1773 printf("code_bool lvar > long long %d %d %d %d %d %d\n",
|
227
|
1774 l1>l0,ul1>ul0,l1>=l0,ul1>=ul0,ul1==ul0,l1!=l0);
|
231
|
1775 printf("code_bool lvar < long long %d %d %d %d %d %d\n",
|
227
|
1776 l1<l0,ul1<ul0,l1<=l0,ul1<=ul0,ul1==ul0,l1!=l0);
|
200
|
1777 }
|
|
1778
|
196
|
1779 // ltosop(int e1,int e2)
|
200
|
1780 void
|
|
1781 ltosop()
|
|
1782 {
|
|
1783 long long i1,i2,i;
|
201
|
1784 unsigned long long u1,u2,u;
|
214
|
1785 int ii2;
|
|
1786 unsigned int uu2;
|
200
|
1787 i1 = -555; i2= 555;
|
201
|
1788 u1 = 632423423; u2= 32394234;
|
214
|
1789 ii2 = -33;
|
|
1790 uu2 = 33;
|
242
|
1791 u = 0;
|
200
|
1792
|
|
1793 i = i1 + i2;
|
201
|
1794 printf("ltosop 1 %lld\n",i);
|
200
|
1795 i = i1 - i2;
|
201
|
1796 printf("ltosop 2 %lld\n",i);
|
200
|
1797 i = i1 / i2;
|
201
|
1798 printf("ltosop 3 %lld\n",i);
|
200
|
1799 i = i1 * i2;
|
201
|
1800 printf("ltosop 4 %lld\n",i);
|
200
|
1801 i = i1 | i2;
|
201
|
1802 printf("ltosop 5 %lld\n",i);
|
200
|
1803 i = i1 & i2;
|
201
|
1804 printf("ltosop 6 %lld\n",i);
|
200
|
1805 i = i1 ^ i2;
|
201
|
1806 printf("ltosop 7 %lld\n",i);
|
200
|
1807 i = i1 << i2;
|
201
|
1808 printf("ltosop 8 %lld\n",i);
|
200
|
1809 i = i1 >> i2;
|
201
|
1810 printf("ltosop 9 %lld\n",i);
|
214
|
1811 i = i1 % i2;
|
|
1812 printf("ltosop 10 %lld\n",i);
|
200
|
1813
|
|
1814 u = u1 + u2;
|
231
|
1815 printf("ltosop u 1 %llu\n",u);
|
200
|
1816 u = u1 - u2;
|
231
|
1817 printf("ltosop u 2 %llu\n",u);
|
200
|
1818 u = u1 / u2;
|
231
|
1819 printf("ltosop u 3 %llu\n",u);
|
200
|
1820 u = u1 * u2;
|
231
|
1821 printf("ltosop u 4 %llu\n",u);
|
200
|
1822 u = u1 | u2;
|
231
|
1823 printf("ltosop u 5 %llu\n",u);
|
200
|
1824 u = u1 & u2;
|
231
|
1825 printf("ltosop u 6 %llu\n",u);
|
200
|
1826 u = u1 ^ u2;
|
231
|
1827 printf("ltosop u 7 %llu\n",u);
|
200
|
1828 u = u1 << u2;
|
231
|
1829 printf("ltosop u 8 %llu\n",u);
|
200
|
1830 u = u1 >> u2;
|
231
|
1831 printf("ltosop u 9 %llu\n",u);
|
214
|
1832 u = u1 % u2;
|
231
|
1833 printf("ltosop u 10 %llu\n",u);
|
214
|
1834
|
|
1835 i = i1 + ii2;
|
|
1836 printf("litosop 1 %lld\n",i);
|
|
1837 i = i1 - ii2;
|
|
1838 printf("litosop 2 %lld\n",i);
|
|
1839 i = i1 / ii2;
|
|
1840 printf("litosop 3 %lld\n",i);
|
|
1841 i = i1 * ii2;
|
|
1842 printf("litosop 4 %lld\n",i);
|
|
1843 i = i1 | ii2;
|
|
1844 printf("litosop 5 %lld\n",i);
|
|
1845 i = i1 & ii2;
|
|
1846 printf("litosop 6 %lld\n",i);
|
|
1847 i = i1 ^ ii2;
|
|
1848 printf("litosop 7 %lld\n",i);
|
|
1849 i = i1 << ii2;
|
|
1850 printf("litosop 8 %lld\n",i);
|
|
1851 i = i1 >> ii2;
|
|
1852 printf("litosop 9 %lld\n",i);
|
|
1853 i = i1 % ii2;
|
|
1854 printf("litosop 10 %lld\n",i);
|
|
1855
|
|
1856 u = u1 + uu2;
|
231
|
1857 printf("litosop u 1 %llu\n",u);
|
214
|
1858 u = u1 - uu2;
|
231
|
1859 printf("litosop u 2 %llu\n",u);
|
214
|
1860 u = u1 / uu2;
|
231
|
1861 printf("litosop u 3 %llu\n",u);
|
214
|
1862 u = u1 * uu2;
|
231
|
1863 printf("litosop u 4 %llu\n",u);
|
214
|
1864 u = u1 | uu2;
|
231
|
1865 printf("litosop u 5 %llu\n",u);
|
214
|
1866 u = u1 & uu2;
|
231
|
1867 printf("litosop u 6 %llu\n",u);
|
214
|
1868 u = u1 ^ uu2;
|
231
|
1869 printf("litosop u 7 %llu\n",u);
|
214
|
1870 u = u1 << uu2;
|
231
|
1871 printf("litosop u 8 %llu\n",u);
|
214
|
1872 u = u1 >> uu2;
|
231
|
1873 printf("litosop u 9 %llu\n",u);
|
214
|
1874 u = u1 % uu2;
|
231
|
1875 printf("litosop u 10 %llu\n",u);
|
200
|
1876 }
|
|
1877
|
214
|
1878 // loprtc(int op,int v)
|
|
1879 void
|
|
1880 loprtc()
|
|
1881 {
|
|
1882 long long i1,i;
|
|
1883 unsigned long long u1,u;
|
|
1884 i1 = -555;
|
|
1885 u1 = 632423423;
|
|
1886
|
|
1887 i = i1 + 3;
|
|
1888 printf("loprtc 1 %lld\n",i);
|
|
1889 i = i1 - 3;
|
|
1890 printf("loprtc 2 %lld\n",i);
|
|
1891 i = i1 / 32323423423LL;
|
|
1892 printf("loprtc 3 %lld\n",i);
|
|
1893 i = i1 * 323423423423LL;
|
|
1894 printf("loprtc 4 %lld\n",i);
|
|
1895 i = i1 | 234234234;
|
|
1896 printf("loprtc 5 %lld\n",i);
|
|
1897 i = i1 & 23234234;
|
|
1898 printf("loprtc 6 %lld\n",i);
|
|
1899 i = i1 ^ 23234234;
|
|
1900 printf("loprtc 7 %lld\n",i);
|
|
1901 i = i1 << 5;
|
|
1902 printf("loprtc 8 %lld\n",i);
|
|
1903 i = i1 >> 5;
|
|
1904 printf("loprtc 9 %lld\n",i);
|
|
1905 i = i1 % 5;
|
|
1906 printf("loprtc 10 %lld\n",i);
|
|
1907
|
|
1908 u = u1 + 3;
|
231
|
1909 printf("loprtc 1 u %llu\n",u);
|
214
|
1910 u = u1 - 3;
|
231
|
1911 printf("loprtc 2 u %llu\n",u);
|
214
|
1912 u = u1 / 32342342344234LL;
|
231
|
1913 printf("loprtc 3 u %llu\n",u);
|
214
|
1914 u = u1 * 243234234232324LL;
|
231
|
1915 printf("loprtc 4 u %llu\n",u);
|
214
|
1916 u = u1 | 234234234;
|
231
|
1917 printf("loprtc 5 u %llu\n",u);
|
214
|
1918 u = u1 & 234234234;
|
231
|
1919 printf("loprtc 6 u %llu\n",u);
|
214
|
1920 u = u1 ^ 234234234;
|
231
|
1921 printf("loprtc 7 u %llu\n",u);
|
214
|
1922 u = u1 << 5;
|
231
|
1923 printf("loprtc 8 u %llu\n",u);
|
214
|
1924 u = u1 >> 5;
|
231
|
1925 printf("loprtc 9 u %llu\n",u);
|
214
|
1926 u = u1 % 5;
|
231
|
1927 printf("loprtc 10 u %llu\n",u);
|
214
|
1928 }
|
|
1929
|
|
1930
|
274
|
1931 // ltosop(int e1,int e2)
|
|
1932 void
|
|
1933 ltosop_register()
|
|
1934 {
|
|
1935 register long long i1,i2,i;
|
|
1936 register unsigned long long u1,u2,u;
|
|
1937 register int ii2;
|
|
1938 register unsigned int uu2;
|
|
1939 i1 = -555; i2= 555;
|
|
1940 u1 = 632423423; u2= 32394234;
|
|
1941 ii2 = -33;
|
|
1942 uu2 = 33;
|
|
1943 u = 0;
|
|
1944
|
|
1945 i = i1 + i2;
|
|
1946 printf("ltosop r 1 %lld\n",i);
|
|
1947 i = i1 - i2;
|
|
1948 printf("ltosop r 2 %lld\n",i);
|
|
1949 i = i1 / i2;
|
|
1950 printf("ltosop r 3 %lld\n",i);
|
|
1951 i = i1 * i2;
|
|
1952 printf("ltosop r 4 %lld\n",i);
|
|
1953 i = i1 | i2;
|
|
1954 printf("ltosop r 5 %lld\n",i);
|
|
1955 i = i1 & i2;
|
|
1956 printf("ltosop r 6 %lld\n",i);
|
|
1957 i = i1 ^ i2;
|
|
1958 printf("ltosop r 7 %lld\n",i);
|
|
1959 i = i1 << i2;
|
|
1960 printf("ltosop r 8 %lld\n",i);
|
|
1961 i = i1 >> i2;
|
|
1962 printf("ltosop r 9 %lld\n",i);
|
|
1963 i = i1 % i2;
|
|
1964 printf("ltosop r 10 %lld\n",i);
|
|
1965
|
|
1966 u = u1 + u2;
|
|
1967 printf("ltosop r u 1 %llu\n",u);
|
|
1968 u = u1 - u2;
|
|
1969 printf("ltosop r u 2 %llu\n",u);
|
|
1970 u = u1 / u2;
|
|
1971 printf("ltosop r u 3 %llu\n",u);
|
|
1972 u = u1 * u2;
|
|
1973 printf("ltosop r u 4 %llu\n",u);
|
|
1974 u = u1 | u2;
|
|
1975 printf("ltosop r u 5 %llu\n",u);
|
|
1976 u = u1 & u2;
|
|
1977 printf("ltosop r u 6 %llu\n",u);
|
|
1978 u = u1 ^ u2;
|
|
1979 printf("ltosop r u 7 %llu\n",u);
|
|
1980 u = u1 << u2;
|
|
1981 printf("ltosop r u 8 %llu\n",u);
|
|
1982 u = u1 >> u2;
|
|
1983 printf("ltosop r u 9 %llu\n",u);
|
|
1984 u = u1 % u2;
|
|
1985 printf("ltosop r u 10 %llu\n",u);
|
|
1986
|
|
1987 i = i1 + ii2;
|
|
1988 printf("litosop r 1 %lld\n",i);
|
|
1989 i = i1 - ii2;
|
|
1990 printf("litosop r 2 %lld\n",i);
|
|
1991 i = i1 / ii2;
|
|
1992 printf("litosop r 3 %lld\n",i);
|
|
1993 i = i1 * ii2;
|
|
1994 printf("litosop r 4 %lld\n",i);
|
|
1995 i = i1 | ii2;
|
|
1996 printf("litosop r 5 %lld\n",i);
|
|
1997 i = i1 & ii2;
|
|
1998 printf("litosop r 6 %lld\n",i);
|
|
1999 i = i1 ^ ii2;
|
|
2000 printf("litosop r 7 %lld\n",i);
|
|
2001 i = i1 << ii2;
|
|
2002 printf("litosop r 8 %lld\n",i);
|
|
2003 i = i1 >> ii2;
|
|
2004 printf("litosop r 9 %lld\n",i);
|
|
2005 i = i1 % ii2;
|
|
2006 printf("litosop r 10 %lld\n",i);
|
|
2007
|
|
2008 u = u1 + uu2;
|
|
2009 printf("litosop r u 1 %llu\n",u);
|
|
2010 u = u1 - uu2;
|
|
2011 printf("litosop r u 2 %llu\n",u);
|
|
2012 u = u1 / uu2;
|
|
2013 printf("litosop r u 3 %llu\n",u);
|
|
2014 u = u1 * uu2;
|
|
2015 printf("litosop r u 4 %llu\n",u);
|
|
2016 u = u1 | uu2;
|
|
2017 printf("litosop r u 5 %llu\n",u);
|
|
2018 u = u1 & uu2;
|
|
2019 printf("litosop r u 6 %llu\n",u);
|
|
2020 u = u1 ^ uu2;
|
|
2021 printf("litosop r u 7 %llu\n",u);
|
|
2022 u = u1 << uu2;
|
|
2023 printf("litosop r u 8 %llu\n",u);
|
|
2024 u = u1 >> uu2;
|
|
2025 printf("litosop r u 9 %llu\n",u);
|
|
2026 u = u1 % uu2;
|
|
2027 printf("litosop r u 10 %llu\n",u);
|
|
2028 }
|
|
2029
|
|
2030 // loprtc(int op,int v)
|
|
2031 void
|
|
2032 loprtc_register()
|
|
2033 {
|
|
2034 register long long i1,i;
|
|
2035 register unsigned long long u1,u;
|
|
2036 i1 = -555;
|
|
2037 u1 = 632423423;
|
|
2038
|
|
2039 i = i1 + 3;
|
|
2040 printf("loprtc r 1 %lld\n",i);
|
|
2041 i = i1 - 3;
|
|
2042 printf("loprtc r 2 %lld\n",i);
|
|
2043 i = i1 / 32323423423LL;
|
|
2044 printf("loprtc r 3 %lld\n",i);
|
|
2045 i = i1 * 323423423423LL;
|
|
2046 printf("loprtc r 4 %lld\n",i);
|
|
2047 i = i1 | 234234234;
|
|
2048 printf("loprtc r 5 %lld\n",i);
|
|
2049 i = i1 & 23234234;
|
|
2050 printf("loprtc r 6 %lld\n",i);
|
|
2051 i = i1 ^ 23234234;
|
|
2052 printf("loprtc r 7 %lld\n",i);
|
|
2053 i = i1 << 5;
|
|
2054 printf("loprtc r 8 %lld\n",i);
|
|
2055 i = i1 >> 5;
|
|
2056 printf("loprtc r 9 %lld\n",i);
|
|
2057 i = i1 % 5;
|
|
2058 printf("loprtc r 10 %lld\n",i);
|
|
2059
|
|
2060 u = u1 + 3;
|
|
2061 printf("loprtc r 1 u %llu\n",u);
|
|
2062 u = u1 - 3;
|
|
2063 printf("loprtc r 2 u %llu\n",u);
|
|
2064 u = u1 / 32342342344234LL;
|
|
2065 printf("loprtc r 3 u %llu\n",u);
|
|
2066 u = u1 * 243234234232324LL;
|
|
2067 printf("loprtc r 4 u %llu\n",u);
|
|
2068 u = u1 | 234234234;
|
|
2069 printf("loprtc r 5 u %llu\n",u);
|
|
2070 u = u1 & 234234234;
|
|
2071 printf("loprtc r 6 u %llu\n",u);
|
|
2072 u = u1 ^ 234234234;
|
|
2073 printf("loprtc r 7 u %llu\n",u);
|
|
2074 u = u1 << 5;
|
|
2075 printf("loprtc r 8 u %llu\n",u);
|
|
2076 u = u1 >> 5;
|
|
2077 printf("loprtc r 9 u %llu\n",u);
|
|
2078 u = u1 % 5;
|
|
2079 printf("loprtc r 10 u %llu\n",u);
|
|
2080 }
|
|
2081
|
|
2082
|
196
|
2083 // code_i2ll(int creg)
|
227
|
2084 void
|
|
2085 code_i2ll()
|
200
|
2086 {
|
|
2087 long long d;
|
|
2088 int i;
|
201
|
2089 i = 23442342;
|
200
|
2090 d = i;
|
|
2091 printf("code_i2ll %lld\n",d);
|
|
2092 }
|
196
|
2093 // code_i2ull(int creg)
|
227
|
2094 void
|
|
2095 code_i2ull()
|
200
|
2096 {
|
|
2097 unsigned long long d;
|
|
2098 int i;
|
201
|
2099 i = 23442342;
|
200
|
2100 d = i;
|
|
2101 printf("code_i2ull %lld\n",d);
|
|
2102 }
|
196
|
2103 // code_u2ll(int creg)
|
227
|
2104 void
|
|
2105 code_u2ll()
|
200
|
2106 {
|
|
2107 long long d;
|
|
2108 unsigned int i;
|
201
|
2109 i = 23442342;
|
200
|
2110 d = i;
|
|
2111 printf("code_u2ll %lld\n",d);
|
|
2112 }
|
196
|
2113 // code_u2ull(int creg)
|
227
|
2114 void
|
|
2115 code_u2ull()
|
200
|
2116 {
|
|
2117 unsigned long long d;
|
|
2118 unsigned int i;
|
201
|
2119 i = 23342342;
|
200
|
2120 d = i;
|
201
|
2121 printf("code_u2ull %llu\n",d);
|
200
|
2122 }
|
196
|
2123 // code_ll2i(int creg)
|
227
|
2124 void
|
|
2125 code_ll2i()
|
200
|
2126 {
|
|
2127 long long d;
|
|
2128 int i;
|
201
|
2129 d = 2342342342LL;
|
200
|
2130 i = d;
|
|
2131 printf("code_ll2i %d\n",i);
|
|
2132 }
|
196
|
2133 // code_ll2u(int creg)
|
227
|
2134 void
|
|
2135 code_ll2u()
|
200
|
2136 {
|
|
2137 long long d;
|
|
2138 unsigned int i;
|
201
|
2139 d = 2342342342LL;
|
200
|
2140 i = d;
|
|
2141 printf("code_ll2i %ud\n",i);
|
|
2142 }
|
196
|
2143 // code_ull2i(int creg)
|
227
|
2144 void
|
|
2145 code_ull2i()
|
200
|
2146 {
|
|
2147 unsigned long long d;
|
|
2148 int i;
|
201
|
2149 d = 2342342342LL;
|
200
|
2150 i = d;
|
|
2151 printf("code_ull2i %d\n",i);
|
|
2152 }
|
196
|
2153 // code_ull2u(int creg)
|
227
|
2154 void
|
|
2155 code_ull2u()
|
200
|
2156 {
|
|
2157 unsigned long long d;
|
|
2158 unsigned int i;
|
201
|
2159 d = 2342342342LL;
|
200
|
2160 i = d;
|
|
2161 printf("code_ll2i %ud\n",i);
|
|
2162 }
|
196
|
2163 #if FLOAT_CODE
|
|
2164 // code_d2ll(int creg)
|
227
|
2165 void
|
|
2166 code_d2ll()
|
200
|
2167 {
|
|
2168 long long d;
|
|
2169 double i;
|
201
|
2170 i = 2342342342LL;
|
200
|
2171 d = i;
|
|
2172 printf("code_d2ll %lld\n",d);
|
|
2173 }
|
196
|
2174 // code_d2ull(int creg)
|
227
|
2175 void
|
|
2176 code_d2ull()
|
200
|
2177 {
|
|
2178 unsigned long long d;
|
|
2179 double i;
|
201
|
2180 i = 2342342342LL;
|
200
|
2181 d = i;
|
201
|
2182 printf("code_d2ll %llu\n",d);
|
200
|
2183 }
|
196
|
2184 // code_f2ll(int creg)
|
227
|
2185 void
|
|
2186 code_f2ll()
|
200
|
2187 {
|
|
2188 long long d;
|
|
2189 float i;
|
201
|
2190 i = 2342342342LL;
|
200
|
2191 d = i;
|
242
|
2192 printf("code_f2ll %lld\n",d);
|
200
|
2193 }
|
196
|
2194 // code_f2ull(int creg)
|
227
|
2195 void
|
|
2196 code_f2ull()
|
200
|
2197 {
|
|
2198 unsigned long long d;
|
|
2199 float i;
|
201
|
2200 i = 2342342342LL;
|
200
|
2201 d = i;
|
242
|
2202 printf("code_f2ull %llu\n",d);
|
200
|
2203 }
|
196
|
2204 // code_ll2d(int creg)
|
227
|
2205 void
|
|
2206 code_ll2d()
|
200
|
2207 {
|
|
2208 long long d;
|
|
2209 double i;
|
201
|
2210 d = 2342342342LL;
|
200
|
2211 i = d;
|
242
|
2212 printf("code_ll2d %g\n",i);
|
200
|
2213 }
|
196
|
2214 // code_ll2f(int creg)
|
227
|
2215 void
|
|
2216 code_ll2f()
|
200
|
2217 {
|
|
2218 long long d;
|
|
2219 float i;
|
201
|
2220 d = 2342342342LL;
|
200
|
2221 i = d;
|
242
|
2222 printf("code_ll2f %g\n",i);
|
200
|
2223 }
|
196
|
2224 // code_ull2d(int creg)
|
227
|
2225 void
|
|
2226 code_ull2d()
|
200
|
2227 {
|
|
2228 long long d;
|
|
2229 double i;
|
201
|
2230 d = 2342342342LL;
|
200
|
2231 i = d;
|
242
|
2232 printf("code_ull2f %g\n",i);
|
200
|
2233 }
|
196
|
2234 // code_ull2f(int creg)
|
227
|
2235 void
|
|
2236 code_ull2f()
|
200
|
2237 {
|
|
2238 long long d;
|
|
2239 float i;
|
201
|
2240 d = 2342342342LL;
|
200
|
2241 i = d;
|
242
|
2242 printf("code_ull2f %g\n",i);
|
200
|
2243 }
|
196
|
2244 #endif
|
|
2245
|
|
2246 // code_lpreinc(int e1,int e2,int reg)
|
200
|
2247 void
|
|
2248 code_lpreinc()
|
|
2249 {
|
|
2250 long long i,j;
|
|
2251 i = 123123123;j = 0;
|
273
|
2252 printf("code_preinc l %lld %lld",++i,--j);
|
|
2253 printf(" %lld %lld\n",i,j);
|
200
|
2254 }
|
|
2255
|
196
|
2256 // code_lpostinc(int e1,int e2,int reg)
|
200
|
2257 void
|
|
2258 code_lpostinc()
|
|
2259 {
|
|
2260 long long i,j;
|
|
2261 i = 123123123;j = 0;
|
273
|
2262 printf("code_postinc l %lld %lld",i++,j--);
|
|
2263 printf(" %lld %lld\n",i,j);
|
200
|
2264 }
|
|
2265
|
|
2266 // code_lpreinc(int e1,int e2,int reg)
|
|
2267 void
|
|
2268 code_lupreinc()
|
|
2269 {
|
273
|
2270 register unsigned long long i,j;
|
200
|
2271 i = 123123123;j = 0;
|
273
|
2272 printf("code_preinc l %llu %llu",++i,--j);
|
|
2273 printf(" %lld %lld\n",i,j);
|
200
|
2274 }
|
|
2275
|
|
2276 // code_lpostinc(int e1,int e2,int reg)
|
|
2277 void
|
|
2278 code_lupostinc()
|
|
2279 {
|
273
|
2280 register unsigned long long i,j;
|
|
2281 i = 123123123;j = 0;
|
|
2282 printf("code_postinc lu %llu %llu",i++,j--);
|
|
2283 printf(" %lld %lld\n",i,j);
|
|
2284 }
|
|
2285
|
|
2286 // code_lpreinc(int e1,int e2,int reg)
|
|
2287 void
|
|
2288 code_register_lpreinc()
|
|
2289 {
|
|
2290 register long long i,j;
|
|
2291 i = 123123123;j = 0;
|
|
2292 printf("code_preinc l r %lld %lld",++i,--j);
|
|
2293 printf(" %lld %lld\n",i,j);
|
|
2294 }
|
|
2295
|
|
2296 // code_lpostinc(int e1,int e2,int reg)
|
|
2297 void
|
|
2298 code_register_lpostinc()
|
|
2299 {
|
|
2300 register long long i,j;
|
200
|
2301 i = 123123123;j = 0;
|
273
|
2302 printf("code_postinc l r %lld %lld",i++,j--);
|
|
2303 printf(" %lld %lld\n",i,j);
|
|
2304 }
|
|
2305
|
|
2306 // code_lpreinc(int e1,int e2,int reg)
|
|
2307 void
|
|
2308 code_register_lupreinc()
|
|
2309 {
|
|
2310 register unsigned long long i,j;
|
|
2311 i = 123123123;j = 0;
|
|
2312 printf("code_preinc l r %llu %llu",++i,--j);
|
|
2313 printf(" %lld %lld\n",i,j);
|
|
2314 }
|
|
2315
|
|
2316 // code_lpostinc(int e1,int e2,int reg)
|
|
2317 void
|
|
2318 code_register_lupostinc()
|
|
2319 {
|
|
2320 register unsigned long long i,j;
|
|
2321 i = 123123123;j = 0;
|
|
2322 printf("code_postinc lu r %llu %llu",i++,j--);
|
|
2323 printf(" %lld %lld\n",i,j);
|
200
|
2324 }
|
|
2325
|
196
|
2326 // code_lassop(int op)
|
|
2327
|
200
|
2328 // code_register_assop(int e2,int op,int byte)
|
201
|
2329 void
|
200
|
2330 code_register_lassop()
|
|
2331 {
|
|
2332 register long long i1;
|
|
2333 register unsigned long long ui1;
|
255
|
2334 long long a = 3;
|
200
|
2335 i1 = -555;
|
|
2336 ui1 = 632423423;
|
|
2337
|
255
|
2338 i1 += a;
|
201
|
2339 printf("code_register_lassop 1 %lld\n",i1);
|
255
|
2340 i1 -= a;
|
201
|
2341 printf("code_register_lassop 2 %lld\n",i1);
|
255
|
2342 i1 /= a;
|
201
|
2343 printf("code_register_lassop 3 %lld\n",i1);
|
255
|
2344 i1 *= a;
|
201
|
2345 printf("code_register_lassop 4 %lld\n",i1);
|
255
|
2346 i1 |= a;
|
201
|
2347 printf("code_register_lassop 5 %lld\n",i1);
|
255
|
2348 i1 &= a;
|
201
|
2349 printf("code_register_lassop 6 %lld\n",i1);
|
255
|
2350 i1 ^= a;
|
201
|
2351 printf("code_register_lassop 7 %lld\n",i1);
|
255
|
2352 i1 <<= a;
|
201
|
2353 printf("code_register_lassop 8 %lld\n",i1);
|
255
|
2354 i1 >>= a;
|
201
|
2355 printf("code_register_lassop 9 %lld\n",i1);
|
200
|
2356
|
255
|
2357 ui1 += a;
|
201
|
2358 printf("code_register_lassop 1 %llu\n",ui1);
|
255
|
2359 ui1 -= a;
|
201
|
2360 printf("code_register_lassop 2 %llu\n",ui1);
|
255
|
2361 ui1 /= a;
|
201
|
2362 printf("code_register_lassop 3 %llu\n",ui1);
|
255
|
2363 ui1 *= a;
|
201
|
2364 printf("code_register_lassop 4 %llu\n",ui1);
|
255
|
2365 ui1 |= a;
|
201
|
2366 printf("code_register_lassop 5 %llu\n",ui1);
|
255
|
2367 ui1 &= a;
|
201
|
2368 printf("code_register_lassop 6 %llu\n",ui1);
|
255
|
2369 ui1 ^= a;
|
201
|
2370 printf("code_register_lassop 7 %llu\n",ui1);
|
255
|
2371 ui1 <<= a;
|
201
|
2372 printf("code_register_lassop 8 %llu\n",ui1);
|
255
|
2373 ui1 >>= a;
|
201
|
2374 printf("code_register_lassop 9 %llu\n",ui1);
|
200
|
2375 }
|
|
2376
|
|
2377 // code_lassop(int op,int byte,int sign)
|
201
|
2378 void
|
200
|
2379 code_lassop()
|
|
2380 {
|
|
2381 long long i1,i2;
|
|
2382 unsigned long long ui1,ui2;
|
255
|
2383 long long a = 3;
|
|
2384 i1 = -555; i2= 555;
|
|
2385 ui1 = 632423423; ui2= 32394234;
|
|
2386
|
|
2387 i1 += a;
|
|
2388 printf("code_lassop 1 %lld\n",i1);
|
|
2389 i1 -= a;
|
|
2390 printf("code_lassop 2 %lld\n",i1);
|
|
2391 i1 /= a;
|
|
2392 printf("code_lassop 3 %lld\n",i1);
|
|
2393 i1 *= a;
|
|
2394 printf("code_lassop 4 %lld\n",i1);
|
|
2395 i1 |= a;
|
|
2396 printf("code_lassop 5 %lld\n",i1);
|
|
2397 i1 &= a;
|
|
2398 printf("code_lassop 6 %lld\n",i1);
|
|
2399 i1 ^= a;
|
|
2400 printf("code_lassop 7 %lld\n",i1);
|
|
2401 i1 <<= a;
|
|
2402 printf("code_lassop 8 %lld\n",i1);
|
|
2403 i1 >>= a;
|
|
2404 printf("code_lassop 9 %lld\n",i1);
|
|
2405
|
|
2406 ui1 += a;
|
|
2407 printf("code_lassop 1 %llu\n",ui1);
|
|
2408 ui1 -= a;
|
|
2409 printf("code_lassop 2 %llu\n",ui1);
|
|
2410 ui1 /= a;
|
|
2411 printf("code_lassop 3 %llu\n",ui1);
|
|
2412 ui1 *= a;
|
|
2413 printf("code_lassop 4 %llu\n",ui1);
|
|
2414 ui1 |= a;
|
|
2415 printf("code_lassop 5 %llu\n",ui1);
|
|
2416 ui1 &= a;
|
|
2417 printf("code_lassop 6 %llu\n",ui1);
|
|
2418 ui1 ^= a;
|
|
2419 printf("code_lassop 7 %llu\n",ui1);
|
|
2420 ui1 <<= a;
|
|
2421 printf("code_lassop 8 %llu\n",ui1);
|
|
2422 ui1 >>= a;
|
|
2423 printf("code_lassop 9 %llu\n",ui1);
|
|
2424 }
|
|
2425
|
|
2426 // code_register_assop(int e2,int op,int byte)
|
|
2427 void
|
|
2428 code_register_lassop_const()
|
|
2429 {
|
|
2430 register long long i1;
|
|
2431 register unsigned long long ui1;
|
|
2432 i1 = -555;
|
|
2433 ui1 = 632423423;
|
|
2434
|
|
2435 i1 += 3;
|
|
2436 printf("code_register_lassop c 1 %lld\n",i1);
|
|
2437 i1 -= 3;
|
|
2438 printf("code_register_lassop c 2 %lld\n",i1);
|
|
2439 i1 /= 3;
|
|
2440 printf("code_register_lassop c 3 %lld\n",i1);
|
|
2441 i1 *= 3;
|
|
2442 printf("code_register_lassop c 4 %lld\n",i1);
|
|
2443 i1 |= 234;
|
|
2444 printf("code_register_lassop c 5 %lld\n",i1);
|
|
2445 i1 &= 2324234234234234LL;
|
|
2446 printf("code_register_lassop c 6 %lld\n",i1);
|
|
2447 i1 ^= 5523234234234234LL;
|
|
2448 printf("code_register_lassop c 7 %lld\n",i1);
|
|
2449 i1 <<= 3;
|
|
2450 printf("code_register_lassop c 8 %lld\n",i1);
|
|
2451 i1 >>= 3;
|
|
2452 printf("code_register_lassop c 9 %lld\n",i1);
|
|
2453
|
|
2454 ui1 += 3;
|
|
2455 printf("code_register_lassop c 1 %llu\n",ui1);
|
|
2456 ui1 -= 3;
|
|
2457 printf("code_register_lassop c 2 %llu\n",ui1);
|
|
2458 ui1 /= 3;
|
|
2459 printf("code_register_lassop c 3 %llu\n",ui1);
|
|
2460 ui1 *= 3;
|
|
2461 printf("code_register_lassop c 4 %llu\n",ui1);
|
|
2462 ui1 |= 234;
|
|
2463 printf("code_register_lassop c 5 %llu\n",ui1);
|
|
2464 ui1 &= 2324234234234234LL;
|
|
2465 printf("code_register_lassop c 6 %llu\n",ui1);
|
|
2466 ui1 ^= 5523234234234234LL;
|
|
2467 printf("code_register_lassop c 7 %llu\n",ui1);
|
|
2468 ui1 <<= 3;
|
|
2469 printf("code_register_lassop c 8 %llu\n",ui1);
|
|
2470 ui1 >>= 3;
|
|
2471 printf("code_register_lassop c 9 %llu\n",ui1);
|
|
2472 }
|
|
2473
|
|
2474 // code_lassop(int op,int byte,int sign)
|
|
2475 void
|
|
2476 code_lassop_const()
|
|
2477 {
|
|
2478 long long i1,i2;
|
|
2479 unsigned long long ui1,ui2;
|
200
|
2480 i1 = -555; i2= 555;
|
|
2481 ui1 = 632423423; ui2= 32394234;
|
|
2482
|
|
2483 i1 += 3;
|
255
|
2484 printf("code_lassop c 1 %lld\n",i1);
|
200
|
2485 i1 -= 3;
|
255
|
2486 printf("code_lassop c 2 %lld\n",i1);
|
200
|
2487 i1 /= 3;
|
255
|
2488 printf("code_lassop c 3 %lld\n",i1);
|
200
|
2489 i1 *= 3;
|
255
|
2490 printf("code_lassop c 4 %lld\n",i1);
|
200
|
2491 i1 |= 234;
|
255
|
2492 printf("code_lassop c 5 %lld\n",i1);
|
201
|
2493 i1 &= 2324234234234234LL;
|
255
|
2494 printf("code_lassop c 6 %lld\n",i1);
|
201
|
2495 i1 ^= 5523234234234234LL;
|
255
|
2496 printf("code_lassop c 7 %lld\n",i1);
|
200
|
2497 i1 <<= 3;
|
255
|
2498 printf("code_lassop c 8 %lld\n",i1);
|
200
|
2499 i1 >>= 3;
|
255
|
2500 printf("code_lassop c 9 %lld\n",i1);
|
200
|
2501
|
|
2502 ui1 += 3;
|
255
|
2503 printf("code_lassop c 1 %llu\n",ui1);
|
200
|
2504 ui1 -= 3;
|
255
|
2505 printf("code_lassop c 2 %llu\n",ui1);
|
200
|
2506 ui1 /= 3;
|
255
|
2507 printf("code_lassop c 3 %llu\n",ui1);
|
200
|
2508 ui1 *= 3;
|
255
|
2509 printf("code_lassop c 4 %llu\n",ui1);
|
200
|
2510 ui1 |= 234;
|
255
|
2511 printf("code_lassop c 5 %llu\n",ui1);
|
201
|
2512 ui1 &= 2324234234234234LL;
|
255
|
2513 printf("code_lassop c 6 %llu\n",ui1);
|
201
|
2514 ui1 ^= 5523234234234234LL;
|
255
|
2515 printf("code_lassop c 7 %llu\n",ui1);
|
200
|
2516 ui1 <<= 3;
|
255
|
2517 printf("code_lassop c 8 %llu\n",ui1);
|
200
|
2518 ui1 >>= 3;
|
255
|
2519 printf("code_lassop c 9 %llu\n",ui1);
|
200
|
2520 }
|
|
2521
|
|
2522 // code_lgt(int cond)
|
|
2523
|
227
|
2524 void
|
|
2525 code_lgt()
|
200
|
2526 {
|
280
|
2527 long long reg;
|
200
|
2528 if (l0>l1)
|
|
2529 printf("code_lgt 1\n");
|
|
2530 else
|
|
2531 printf("code_lgt 0\n");
|
280
|
2532 for (reg=-3;reg<7;reg++) {
|
|
2533 if (0<reg && reg<3)
|
|
2534 printf("reg=%lld code_lgt 0<reg && reg <3\n",reg);
|
|
2535 }
|
|
2536 for (reg=-3;reg<7;reg++) {
|
|
2537 if (-2<reg && reg<0)
|
|
2538 printf("reg=%lld code_lgt -2<reg && reg <0\n",reg);
|
|
2539 }
|
200
|
2540 }
|
|
2541
|
|
2542 // code_lugt(int cond)
|
227
|
2543 void
|
|
2544 code_lugt()
|
200
|
2545 {
|
280
|
2546 unsigned long long reg;
|
200
|
2547 if (ul0>ul1)
|
|
2548 printf("code_lugt 1\n");
|
|
2549 else
|
|
2550 printf("code_lugt 0\n");
|
280
|
2551 for (reg=0;reg<7;reg++) {
|
|
2552 if (2<reg && reg<4)
|
|
2553 printf("reg=%llu code_lugt 2<reg && reg <4\n",reg);
|
|
2554 }
|
|
2555 for (reg=0;reg<7;reg++) {
|
|
2556 if (2<reg && reg<4)
|
|
2557 printf("reg=%llu code_lugt 2<reg && reg <4\n",reg);
|
|
2558 }
|
200
|
2559 }
|
|
2560
|
|
2561 // code_lge(int cond)
|
227
|
2562 void
|
|
2563 code_lge()
|
200
|
2564 {
|
280
|
2565 long long reg;
|
200
|
2566 if (l0>=l1)
|
|
2567 printf("code_lge 1\n");
|
|
2568 else
|
|
2569 printf("code_lge 0\n");
|
280
|
2570 for (reg=-3;reg<7;reg++) {
|
|
2571 if (0<=reg && reg<=3)
|
|
2572 printf("reg=%lld code_lge 0<=reg && reg <=3\n",reg);
|
|
2573 }
|
|
2574 for (reg=-3;reg<7;reg++) {
|
|
2575 if (-2<=reg && reg<=0)
|
|
2576 printf("reg=%lld code_lge -2<=reg && reg <=0\n",reg);
|
|
2577 }
|
200
|
2578 }
|
|
2579
|
|
2580 // code_luge(int cond)
|
227
|
2581 void
|
|
2582 code_luge()
|
200
|
2583 {
|
280
|
2584 unsigned long long reg;
|
200
|
2585 if (ul0>=ul1)
|
|
2586 printf("code_luge 1\n");
|
|
2587 else
|
|
2588 printf("code_luge 0\n");
|
280
|
2589 for (reg=0;reg<7;reg++) {
|
|
2590 if (2<reg && reg<4)
|
|
2591 printf("reg=%llu code_luge 2<reg && reg <4\n",reg);
|
|
2592 }
|
|
2593 for (reg=0;reg<7;reg++) {
|
|
2594 if (2<reg && reg<4)
|
|
2595 printf("reg=%llu code_luge 2<reg && reg <4\n",reg);
|
|
2596 }
|
200
|
2597 }
|
|
2598
|
|
2599 // code_leq(int cond)
|
227
|
2600 void
|
|
2601 code_leq()
|
200
|
2602 {
|
|
2603 if (ul0==ul1)
|
|
2604 printf("code_leq 1\n");
|
|
2605 else
|
|
2606 printf("code_leq 0\n");
|
|
2607 if (l0!=l1)
|
|
2608 printf("code_lneq 1\n");
|
|
2609 else
|
|
2610 printf("code_lneq 0\n");
|
|
2611 }
|
|
2612
|
275
|
2613 #if 0
|
|
2614 void
|
|
2615 code_lswitch()
|
|
2616 {
|
|
2617 long long i;
|
|
2618 for(i=0;i<6;i++) {
|
|
2619 switch(i) {
|
|
2620 case 1: printf("code_lswitch 1 %d\n",i); break;
|
|
2621 case 2: printf("code_lswitch 2 %d\n",i); break;
|
|
2622 case 3: printf("code_lswitch 3 %d\n",i);
|
|
2623 case 4: printf("code_lswitch 4 %d\n",i); break;
|
|
2624 default: printf("code_lswitch d %d\n",i);
|
|
2625 }
|
|
2626 }
|
|
2627 }
|
|
2628 #endif
|
200
|
2629
|
|
2630
|
196
|
2631 #endif
|
275
|
2632
|
|
2633 void
|
|
2634 code_switch()
|
|
2635 {
|
|
2636 int i;
|
|
2637 for(i=0;i<10;i++) {
|
|
2638 switch(i) {
|
|
2639 case 1: printf("code_switch 1 %d\n",i); break;
|
|
2640 case 2: printf("code_switch 2 %d\n",i); break;
|
|
2641 case 3: printf("code_switch 3 %d\n",i);
|
|
2642 case 4: printf("code_switch 4 %d\n",i); break;
|
|
2643 case 7:
|
|
2644 case 5: printf("code_switch 5 %d\n",i); break;
|
|
2645 case 6: printf("code_switch 6 %d\n",i); break;
|
|
2646 default: printf("code_switch d %d\n",i);
|
|
2647 }
|
|
2648 }
|
293
|
2649 for(i=0;i<10;i++) {
|
|
2650 switch(i) {
|
|
2651 case 1: printf("code_switch 1 %d\n",i); break;
|
|
2652 case 2:
|
|
2653 i = i* 100;
|
|
2654 switch(i) {
|
|
2655 case 100: printf("code_switch n 1 %d\n",i); break;
|
|
2656 case 200:
|
|
2657 for(i=-100;i<10;i++) {
|
|
2658 switch(i) {
|
|
2659 case 1234: printf("code_switch 1 nn %d\n",i); break;
|
|
2660 case 2233: printf("code_switch 2 nn %d\n",i); break;
|
|
2661 case 3333: printf("code_switch 3 nn %d\n",i);
|
|
2662 case -4: printf("code_switch 4 nn %d\n",i); break;
|
|
2663 case 733:
|
|
2664 case -5: printf("code_switch 5 nn %d\n",i); break;
|
|
2665 case -326: printf("code_switch 6 nn %d\n",i);
|
|
2666 }
|
|
2667 }
|
|
2668 case 300: printf("code_switch n 3 %d\n",i);
|
|
2669 case 400: printf("code_switch n 4 %d\n",i); break;
|
|
2670 case 700:
|
|
2671 case 500: printf("code_switch n 5 %d\n",i); break;
|
|
2672 case 600: printf("code_switch n 6 %d\n",i); break;
|
|
2673 default: printf("code_switch n d %d\n",i);
|
|
2674 }
|
|
2675 case 3: printf("code_switch 3 %d\n",i);
|
|
2676 case 4: printf("code_switch 4 %d\n",i); break;
|
|
2677 case 7:
|
|
2678 case 5: printf("code_switch 5 %d\n",i); break;
|
|
2679 case 6: printf("code_switch 6 %d\n",i); break;
|
|
2680 default: printf("code_switch d %d\n",i);
|
|
2681 }
|
|
2682 }
|
275
|
2683 }
|
|
2684
|
|
2685
|
|
2686
|
|
2687
|
196
|
2688 /* end */
|
|
2689
|