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