Header --> Id && bug fix

This commit is contained in:
ceriel 1994-06-23 16:08:51 +00:00
parent 273fb42833
commit 910f827fe2
6 changed files with 26 additions and 13 deletions

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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