Mercurial > hg > CbC > old > device
changeset 58:727c280bdd25
*** empty log message ***
author | kono |
---|---|
date | Wed, 19 Feb 2003 18:48:37 +0900 |
parents | 3d7f199e99d0 |
children | eeca07d1b1c2 |
files | mc-nop-386.c |
diffstat | 1 files changed, 14 insertions(+), 20 deletions(-) [+] |
line wrap: on
line diff
--- a/mc-nop-386.c Wed Feb 19 17:19:55 2003 +0900 +++ b/mc-nop-386.c Wed Feb 19 18:48:37 2003 +0900 @@ -894,6 +894,13 @@ emit_copy(from,to,length,offset,0,det); break; } + if (det) { +/* + call bcopy + g_expr(list3(FUNCTION,,); + break; + */ + } use_register(from,REG_ESI,1); use_register(to, REG_EDI,1); use_register(dreg,REG_ECX,0); @@ -998,27 +1005,14 @@ for (e3 = caddr(e1); e3; e3 = cadr(e3)) { t=caddr(e3); n=(NMTBL *)(e5=(cadr(e4 = car(e3)))); - switch(car(e4)) { -/* - case FNAME: - printf("\tlea %s,%s\n",n->nm,register_name(creg,0)); - printf("\tpushl %s\n",register_name(creg,0)); - break; - case ADDRESS: - g_expr(e5); + if(scalar(t)) { + g_expr(e4); printf("\tpushl %s\n",register_name(creg,0)); - break; - */ - default: - if(scalar(t)) { - g_expr(e4); - printf("\tpushl %s\n",register_name(creg,0)); - } else if (car(t)==STRUCT||car(t)==UNION) { - nargs += struct_push(e4,t); - continue; - } else { - error(TYERR); - } + } else if (car(t)==STRUCT||car(t)==UNION) { + nargs += struct_push(e4,t); + continue; + } else { + error(TYERR); } ++nargs; }