Mercurial > hg > CbC > old > device
comparison mc-codegen.c @ 191:8646a4a9cde9
*** empty log message ***
author | kono |
---|---|
date | Tue, 02 Dec 2003 02:25:53 +0900 |
parents | f53d70110377 |
children | 114e9d64b5cc |
comparison
equal
deleted
inserted
replaced
190:1b1c58483e67 | 191:8646a4a9cde9 |
---|---|
76 } | 76 } |
77 | 77 |
78 int | 78 int |
79 g_expr0(int e1) | 79 g_expr0(int e1) |
80 { | 80 { |
81 int e2,e3,t,d; | 81 int e2,e3,t,d,t1; |
82 NMTBL *n; | 82 NMTBL *n; |
83 | 83 |
84 code_gexpr(e1); | 84 code_gexpr(e1); |
85 | 85 |
86 e2 = cadr(e1); | 86 e2 = cadr(e1); |
289 b_expr(cadr(e1),0,e2,0); | 289 b_expr(cadr(e1),0,e2,0); |
290 g_expr0(caddr(e1)); | 290 g_expr0(caddr(e1)); |
291 t = code_get_fixed_creg(creg,d); | 291 t = code_get_fixed_creg(creg,d); |
292 jmp(e3=fwdlabel()); | 292 jmp(e3=fwdlabel()); |
293 fwddef(e2); | 293 fwddef(e2); |
294 g_expr0(cadddr(e1)); | 294 t1=g_expr0(cadddr(e1)); |
295 code_set_fixed_creg(t,1,d); | 295 code_set_fixed_creg(t,1,d); |
296 fwddef(e3); | 296 fwddef(e3); |
297 return d; | 297 return t1; |
298 case STASS: | 298 case STASS: |
299 sassign(e1); | 299 sassign(e1); |
300 return RSTRUCT; | 300 return RSTRUCT; |
301 case ASS: case CASS: case SASS: | 301 case ASS: case CASS: case SASS: |
302 assign(e1); | 302 assign(e1); |