* (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
* (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
* (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
* (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
-#define RCSID4 "$Header$"
+#define RCSID4 "$Id$"
/*
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
}
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; {
} 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
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));