Mercurial > hg > CbC > old > device
diff mc-parse.c @ 276:ebaec1ae566e
MIPS double/longlong lib operand register conflict
author | kono |
---|---|
date | Fri, 21 May 2004 18:59:56 +0900 |
parents | 8f09f8bbc494 |
children | 5b50813d0c45 |
line wrap: on
line diff
--- a/mc-parse.c Fri May 21 14:00:02 2004 +0900 +++ b/mc-parse.c Fri May 21 18:59:56 2004 +0900 @@ -2121,7 +2121,8 @@ if(scalar(type)) return e2; #if FLOAT_CODE if (car(e2)==DCONST||car(e2)==FCONST) return list2(CONST,(int)dcadr(e2)); - if(type==FLOAT||type==DOUBLE) return list3(CONV,rvalue_t(e2,type),D2I); + if(type==FLOAT) return list3(CONV,rvalue_t(e2,type),F2I); + if(type==DOUBLE) return list3(CONV,rvalue_t(e2,type),D2I); #endif #if LONGLONG_CODE if (car(e2)==LCONST) return list2(CONST,(int)lcadr(e2)); @@ -2138,7 +2139,8 @@ if(scalar(type)) return e2; #if FLOAT_CODE if (car(e2)==DCONST||car(e2)==FCONST) return list2(CONST,(unsigned)dcadr(e2)); - if(type==FLOAT||type==DOUBLE) return list3(CONV,rvalue_t(e2,type),D2U); + if(type==FLOAT) return list3(CONV,rvalue_t(e2,type),F2U); + if(type==DOUBLE) return list3(CONV,rvalue_t(e2,type),D2U); #endif #if LONGLONG_CODE if(type==LONGLONG) return list3(CONV,rvalue_t(e2,type),LL2U); @@ -2247,7 +2249,9 @@ t=type; getsym(0); e2=rvalue(expr1()); - return assign_expr(e1,e2,t,type); + e1 = assign_expr(e1,e2,t,type); + type = t; + return e1; case RSHIFT+AS: case LSHIFT+AS: case BAND+AS: case EOR+AS: case BOR+AS: case MOD+AS: no_float = 1;