Add function prototypes.

This commit is contained in:
carl 2019-03-25 00:11:19 +08:00
parent 053c509fc9
commit ef3a6b3cc4
2 changed files with 53 additions and 26 deletions

View file

@ -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);

View file

@ -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)) {