Header --> Id && bug fix
This commit is contained in:
parent
273fb42833
commit
910f827fe2
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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));
|
||||||
|
|
Loading…
Reference in a new issue