Mercurial > hg > CbC > old > device
diff mc-codegen.c @ 160:1f440a2790fb
*** empty log message ***
author | kono |
---|---|
date | Sun, 23 Nov 2003 19:54:02 +0900 |
parents | 3edd10355434 |
children | 0c604d2ff585 |
line wrap: on
line diff
--- a/mc-codegen.c Thu Aug 14 02:40:39 2003 +0900 +++ b/mc-codegen.c Sun Nov 23 19:54:02 2003 +0900 @@ -265,22 +265,10 @@ creg=use_float(creg); dmachinop(e1,0); return FLOAT; - case COND: - e2=fwdlabel(); - b_expr(cadr(e1),0,e2,0); - code_set_fixed_creg(0,INT); - t = g_expr0(caddr(e1)); - code_set_fixed_creg(1,t); - jmp(e3=fwdlabel()); - fwddef(e2); - code_set_fixed_creg(0,INT); - t = g_expr0(cadddr(e1)); - code_set_fixed_creg(1,t); - fwddef(e3); - return t; + case COND: /* a?0:1 should consider non-brach instruction */ case DCOND: case FCOND: - d = (car(e1)==DCOND?DOUBLE:FLOAT); + d = (car(e1)==COND?INT:car(e1)==DCOND?DOUBLE:FLOAT); e2=fwdlabel(); b_expr(cadr(e1),0,e2,0); code_set_fixed_creg(0,d);