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;