Sfoglia il codice sorgente

Header --> Id && bug fix

ceriel 30 anni fa
parent
commit
5e57b9a901
6 ha cambiato i file con 26 aggiunte e 13 eliminazioni
  1. 1 1
      mach/i86/as/mach0.c
  2. 1 1
      mach/i86/as/mach1.c
  3. 1 1
      mach/i86/as/mach2.c
  4. 1 1
      mach/i86/as/mach3.c
  5. 1 1
      mach/i86/as/mach4.c
  6. 21 8
      mach/i86/as/mach5.c

+ 1 - 1
mach/i86/as/mach0.c

@@ -2,7 +2,7 @@
  * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
  * See the copyright notice in the ACK home directory, in the file "Copyright".
  */
-#define RCSID0 "$Header$"
+#define RCSID0 "$Id$"
 
 /*
  * INTEL 8086 options

+ 1 - 1
mach/i86/as/mach1.c

@@ -2,7 +2,7 @@
  * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
  * See the copyright notice in the ACK home directory, in the file "Copyright".
  */
-#define RCSID1 "$Header$"
+#define RCSID1 "$Id$"
 
 /*
  * INTEL 8086 C declarations

+ 1 - 1
mach/i86/as/mach2.c

@@ -2,7 +2,7 @@
  * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
  * See the copyright notice in the ACK home directory, in the file "Copyright".
  */
-#define RCSID2 "$Header$"
+#define RCSID2 "$Id$"
 
 /*
  * INTEL 8086 tokens

+ 1 - 1
mach/i86/as/mach3.c

@@ -2,7 +2,7 @@
  * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
  * See the copyright notice in the ACK home directory, in the file "Copyright".
  */
-#define RCSID3 "$Header$"
+#define RCSID3 "$Id$"
 
 /*
  * INTEL 8086 keywords

+ 1 - 1
mach/i86/as/mach4.c

@@ -1,4 +1,4 @@
-#define RCSID4 "$Header$"
+#define RCSID4 "$Id$"
 
 /*
  * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.

+ 21 - 8
mach/i86/as/mach5.c

@@ -78,13 +78,24 @@ regsize(sz) register sz; {
 }
 
 indexed() {
+	int sm1, sm2;
 
 	if (mrg_2 & ~7)
 		serror("register error");
-	if (exp_2.typ != S_ABS || fitb((short)exp_2.val) == 0)
+	sm1 = exp_2.typ == S_ABS && fitb((short)(exp_2.val));
+	if (sm1) {
+		sm2 = exp_2.val == 0 && mrg_2 != 6;
+	}
+	else sm2 = 0;
+	if (small(sm1, 1)) {
+		if (small(sm2, 1)) {
+		}
+		else mrg_2 |= 0100;
+	}
+	else {
+		if (small(0, 1)) {}
 		mrg_2 |= 0200;
-	else if (exp_2.val != 0 || mrg_2 == 6)
-		mrg_2 |= 0100;
+	}
 }
 
 branch(opc,exp) register opc; expr_t exp; {
@@ -165,11 +176,13 @@ addop(opc) register opc; {
 	} else if (mrg_2 & 040) {
 		if ((opc&1) == 0) {
 			emit1(0200);
-		} else if (exp_2.typ != S_ABS || fitb((short)exp_2.val) == 0 ||
-			   opc==011 || opc==041 || opc==061 ) {
-			emit1(0201);
 		} else {
-			emit1(0203); opc &= ~1;
+			int sm = exp_2.typ == S_ABS && fitb((short)exp_2.val) &&
+				opc != 011 && opc != 041 && opc != 061;
+			if (small(sm, 1)) {
+				emit1(0203); opc &= ~1;
+			}
+			else emit1(0201);
 		}
 		ea_1(opc & 070);
 #ifdef RELOCATION
@@ -193,7 +206,7 @@ rolop(opc) register opc; {
 	if (cmrg == 0301) {
 		emit1(0322 | (opc&1)); ea_1(opc&070);
 	} else if (cmrg & 040) {
-		if (exp_2.val == 1) {
+		if (small(exp_2.val == 1, 1)) {
 			emit1(0320 | (opc&1)); ea_1(opc&070);
 		} else {
 			fit(fitb(exp_2.val));