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);