Add function prototypes.
This commit is contained in:
parent
053c509fc9
commit
ef3a6b3cc4
2 changed files with 53 additions and 26 deletions
|
@ -42,3 +42,21 @@ char dr_m[8][8] = {
|
||||||
-1, -1, -1, -1, -1, -1, -1, -1
|
-1, -1, -1, -1, -1, -1, -1, -1
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* 8086 specific routines */
|
||||||
|
void ea_1(int param);
|
||||||
|
void ea_2(int param);
|
||||||
|
void reverse(void);
|
||||||
|
void badsyntax(void);
|
||||||
|
void regsize(register int sz);
|
||||||
|
void indexed(void);
|
||||||
|
void branch(register int opc,expr_t exp);
|
||||||
|
void pushop(register int opc);
|
||||||
|
void addop(register int opc);
|
||||||
|
void rolop(register int opc);
|
||||||
|
void incop(register int opc);
|
||||||
|
void callop(register int opc);
|
||||||
|
void xchg(register int opc);
|
||||||
|
void test(register int opc);
|
||||||
|
void mov(register int opc);
|
||||||
|
void imul(int opc);
|
||||||
|
|
|
@ -8,7 +8,8 @@
|
||||||
* INTEL 8086 special routines
|
* INTEL 8086 special routines
|
||||||
*/
|
*/
|
||||||
|
|
||||||
ea_1(param) {
|
void ea_1(int param)
|
||||||
|
{
|
||||||
|
|
||||||
if ((mrg_1 & 070) || (param & ~070)) {
|
if ((mrg_1 & 070) || (param & ~070)) {
|
||||||
serror("bad operand");
|
serror("bad operand");
|
||||||
|
@ -41,7 +42,7 @@ ea_1(param) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ea_2(param) {
|
void ea_2(int param) {
|
||||||
|
|
||||||
mrg_1 = mrg_2;
|
mrg_1 = mrg_2;
|
||||||
exp_1 = exp_2;
|
exp_1 = exp_2;
|
||||||
|
@ -49,8 +50,10 @@ ea_2(param) {
|
||||||
ea_1(param);
|
ea_1(param);
|
||||||
}
|
}
|
||||||
|
|
||||||
reverse() {
|
void reverse(void)
|
||||||
register m, r; expr_t e;
|
{
|
||||||
|
register int m, r;
|
||||||
|
expr_t e;
|
||||||
|
|
||||||
m = mrg_1; mrg_1 = mrg_2; mrg_2 = m;
|
m = mrg_1; mrg_1 = mrg_2; mrg_2 = m;
|
||||||
e = exp_1; exp_1 = exp_2; exp_2 = e;
|
e = exp_1; exp_1 = exp_2; exp_2 = e;
|
||||||
|
@ -59,13 +62,15 @@ reverse() {
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
badsyntax() {
|
void badsyntax(void)
|
||||||
|
{
|
||||||
|
|
||||||
serror("bad operands");
|
serror("bad operands");
|
||||||
}
|
}
|
||||||
|
|
||||||
regsize(sz) register sz; {
|
void regsize(register int sz)
|
||||||
register bit;
|
{
|
||||||
|
register int bit;
|
||||||
|
|
||||||
sz <<= 3;
|
sz <<= 3;
|
||||||
bit = 010;
|
bit = 010;
|
||||||
|
@ -77,7 +82,8 @@ regsize(sz) register sz; {
|
||||||
mrg_2 &= ~bit;
|
mrg_2 &= ~bit;
|
||||||
}
|
}
|
||||||
|
|
||||||
indexed() {
|
void indexed(void)
|
||||||
|
{
|
||||||
int sm1, sm2;
|
int sm1, sm2;
|
||||||
|
|
||||||
if (mrg_2 & ~7)
|
if (mrg_2 & ~7)
|
||||||
|
@ -98,8 +104,9 @@ indexed() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
branch(opc,exp) register opc; expr_t exp; {
|
void branch(register int opc,expr_t exp)
|
||||||
register sm,dist;
|
{
|
||||||
|
register int sm,dist;
|
||||||
int saving = opc == 0353 ? 1 : 3;
|
int saving = opc == 0353 ? 1 : 3;
|
||||||
|
|
||||||
dist = exp.val - (DOTVAL + 2);
|
dist = exp.val - (DOTVAL + 2);
|
||||||
|
@ -132,7 +139,8 @@ branch(opc,exp) register opc; expr_t exp; {
|
||||||
emit1(dist);
|
emit1(dist);
|
||||||
}
|
}
|
||||||
|
|
||||||
pushop(opc) register opc; {
|
void pushop(register int opc)
|
||||||
|
{
|
||||||
|
|
||||||
regsize(1);
|
regsize(1);
|
||||||
if (mrg_1 & 020) {
|
if (mrg_1 & 020) {
|
||||||
|
@ -161,8 +169,8 @@ pushop(opc) register opc; {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
addop(opc) register opc; {
|
void addop(register int opc)
|
||||||
|
{
|
||||||
regsize(opc);
|
regsize(opc);
|
||||||
if (mrg_2 >= 0300) {
|
if (mrg_2 >= 0300) {
|
||||||
emit1(opc); ea_1((mrg_2&7)<<3);
|
emit1(opc); ea_1((mrg_2&7)<<3);
|
||||||
|
@ -197,8 +205,9 @@ addop(opc) register opc; {
|
||||||
badsyntax();
|
badsyntax();
|
||||||
}
|
}
|
||||||
|
|
||||||
rolop(opc) register opc; {
|
void rolop(register int opc)
|
||||||
register cmrg;
|
{
|
||||||
|
register int cmrg;
|
||||||
|
|
||||||
cmrg = mrg_2;
|
cmrg = mrg_2;
|
||||||
mrg_2 = mrg_1;
|
mrg_2 = mrg_1;
|
||||||
|
@ -217,7 +226,8 @@ rolop(opc) register opc; {
|
||||||
badsyntax();
|
badsyntax();
|
||||||
}
|
}
|
||||||
|
|
||||||
incop(opc) register opc; {
|
void incop(register int opc)
|
||||||
|
{
|
||||||
|
|
||||||
regsize(opc);
|
regsize(opc);
|
||||||
if ((opc&1) && mrg_1>=0300) {
|
if ((opc&1) && mrg_1>=0300) {
|
||||||
|
@ -228,8 +238,8 @@ incop(opc) register opc; {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
callop(opc) register opc; {
|
void callop(register int opc)
|
||||||
|
{
|
||||||
regsize(1);
|
regsize(1);
|
||||||
if (mrg_1 & 040) {
|
if (mrg_1 & 040) {
|
||||||
if (opc == (040+(0351<<8))) {
|
if (opc == (040+(0351<<8))) {
|
||||||
|
@ -249,8 +259,8 @@ callop(opc) register opc; {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
xchg(opc) register opc; {
|
void xchg(register int opc)
|
||||||
|
{
|
||||||
regsize(opc);
|
regsize(opc);
|
||||||
if (mrg_2 == 0300 || mrg_1 < 0300)
|
if (mrg_2 == 0300 || mrg_1 < 0300)
|
||||||
reverse();
|
reverse();
|
||||||
|
@ -262,8 +272,8 @@ xchg(opc) register opc; {
|
||||||
badsyntax();
|
badsyntax();
|
||||||
}
|
}
|
||||||
|
|
||||||
test(opc) register opc; {
|
void test(register int opc)
|
||||||
|
{
|
||||||
regsize(opc);
|
regsize(opc);
|
||||||
if ((mrg_1 & 040) || mrg_2 >= 0300)
|
if ((mrg_1 & 040) || mrg_2 >= 0300)
|
||||||
reverse();
|
reverse();
|
||||||
|
@ -288,8 +298,8 @@ test(opc) register opc; {
|
||||||
badsyntax();
|
badsyntax();
|
||||||
}
|
}
|
||||||
|
|
||||||
mov(opc) register opc; {
|
void mov(register int opc)
|
||||||
|
{
|
||||||
regsize(opc);
|
regsize(opc);
|
||||||
if (mrg_1 & 020) {
|
if (mrg_1 & 020) {
|
||||||
emit1(0216); ea_2((mrg_1&3)<<3);
|
emit1(0216); ea_2((mrg_1&3)<<3);
|
||||||
|
@ -334,8 +344,7 @@ mov(opc) register opc; {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
imul(opc)
|
void imul(int opc)
|
||||||
int opc;
|
|
||||||
{
|
{
|
||||||
regsize(opc);
|
regsize(opc);
|
||||||
if (exp_2.typ != S_ABS || ((mrg_2 & 040) == 0)) {
|
if (exp_2.typ != S_ABS || ((mrg_2 & 040) == 0)) {
|
||||||
|
|
Loading…
Reference in a new issue