Mercurial > hg > CbC > old > device
diff mc-codegen.c @ 144:56211702f298
creg/freg continue
author | kono |
---|---|
date | Wed, 21 May 2003 21:41:06 +0900 |
parents | 742224f4da02 |
children | cb7aa0089681 |
line wrap: on
line diff
--- a/mc-codegen.c Tue May 20 11:19:01 2003 +0900 +++ b/mc-codegen.c Wed May 21 21:41:06 2003 +0900 @@ -14,7 +14,6 @@ /* creg currrent virtual register freg current floating point register - fregv calue in floating point register */ static void remove0(int *parent,int e) ; @@ -896,7 +895,6 @@ g_expr(e2); tosop(car(e1),(e2=pop_register())); emit_pop_free(e2); - regv[creg]=1; return; } @@ -913,7 +911,6 @@ g_expr(e2); dtosop(car(e1),(e2=emit_dpop(d))); emit_dpop_free(e2,d); - fregv[freg]=1; return; } @@ -1023,7 +1020,6 @@ e2 = emit_pop(0); code_assign(e2,byte,creg); emit_pop_free(e2); - regv[creg]=1; return; } @@ -1126,13 +1122,11 @@ g_expr(e3); if (car(e2)==REGISTER) { code_register_assop(cadr(e2),op,byte); - regv[creg]=1; return; } emit_push(); g_expr(e2); code_assop(op,byte); - regv[creg]=1; return; } @@ -1151,8 +1145,12 @@ g_expr(e3); emit_dpush(d); g_expr(e2); + if (car(e2)==DREGISTER||car(e2)==FREGISTER) { + /* code_register_dassop(cadr(e2),op,d); */ + error(-1); /* unsupported now */ + return; + } code_dassop(op,d); - regv[creg]=1; return; }