Mercurial > hg > CbC > old > device
diff mc-nop-386.c @ 45:b9266c88495c
*** empty log message ***
author | kono |
---|---|
date | Thu, 13 Feb 2003 22:14:21 +0900 |
parents | c9293a6e40d2 |
children | b1c8ac8c308d |
line wrap: on
line diff
--- a/mc-nop-386.c Thu Feb 13 18:16:19 2003 +0900 +++ b/mc-nop-386.c Thu Feb 13 22:14:21 2003 +0900 @@ -335,16 +335,9 @@ return; real_v = virtual(real); move_op = regs[real_v]?"\txchg %s,%s\n":"\tmovl %s,%s\n"; -#define REGFLOW -#ifdef REGFLOW if (move || (regv[real_v])) { printf(move_op,reg_name[rname[virt]],reg_name[real]); } -#else - if (move || (regs[real_v])) { - printf(move_op,reg_name[rname[virt]],reg_name[real]); - } -#endif rname[real_v] = rname[virt]; rname[virt] = real; } @@ -889,8 +882,11 @@ /* otherwise we don't need this */ if (fix) printf("\tsubl $%d,%s\n",fix,register_name(to,0)); if(creg!=to) { - if (to==dreg) error(-1); - free_register(creg); creg=to; + if (to==dreg) + printf("\tmovl %s,%s\n",register_name(to,0),register_name(creg,0)); + else { + free_register(creg); creg=to; + } } regv[from]=regv[to]=regv[dreg]=0; regv[creg]=1;