249 lines
4.4 KiB
C
249 lines
4.4 KiB
C
#ifndef NORCSID
|
|
static char rcsid3[] = "$Id$";
|
|
#endif
|
|
|
|
#include "nopt.h"
|
|
|
|
void EM_mkop(p, opcode)
|
|
register p_instr p;int opcode;
|
|
{
|
|
p->em_type = EM_MNEM;
|
|
p->em_opcode = opcode;
|
|
p->em_argtype = 0;
|
|
}
|
|
|
|
void EM_mknarg(p, opcode)
|
|
register p_instr p;int opcode;
|
|
{
|
|
p->em_type = EM_MNEM;
|
|
p->em_opcode = opcode;
|
|
p->em_argtype = 0;
|
|
p->em_cst = 0;
|
|
}
|
|
|
|
void EM_mkilb(p, opcode, lab)
|
|
register p_instr p;int opcode;label lab;
|
|
{
|
|
p->em_type = EM_MNEM;
|
|
p->em_argtype = ilb_ptyp;
|
|
p->em_opcode = opcode;
|
|
p->em_ilb = lab;
|
|
}
|
|
|
|
void EM_mknof(p, opcode, lab, off)
|
|
register p_instr p;int opcode;label lab;
|
|
arith off;
|
|
{
|
|
p->em_type = EM_MNEM;
|
|
p->em_argtype = nof_ptyp;
|
|
p->em_opcode = opcode;
|
|
p->em_dlb = lab;
|
|
p->em_off = off;
|
|
}
|
|
|
|
void EM_mksof(p, opcode, name, off)
|
|
register p_instr p;int opcode;char *name;
|
|
arith off;
|
|
{
|
|
p->em_type = EM_MNEM;
|
|
p->em_argtype = sof_ptyp;
|
|
p->em_opcode = opcode;
|
|
p->em_dnam = OO_freestr(name);
|
|
p->em_off = off;
|
|
}
|
|
|
|
void EM_mkcst(p, opcode, cst)
|
|
register p_instr p;int opcode;
|
|
arith cst;
|
|
{
|
|
p->em_type = EM_MNEM;
|
|
p->em_argtype = cst_ptyp;
|
|
p->em_opcode = opcode;
|
|
p->em_cst = cst;
|
|
}
|
|
|
|
void EM_mkpro(p, opcode, pnam)
|
|
register p_instr p;int opcode;char *pnam;
|
|
{
|
|
p->em_type = EM_MNEM;
|
|
p->em_argtype = pro_ptyp;
|
|
p->em_opcode = opcode;
|
|
p->em_pnam = OO_freestr(pnam);
|
|
}
|
|
|
|
void EM_mkdefilb(p, opcode, deflb)
|
|
register p_instr p;int opcode;label deflb;
|
|
{
|
|
p->em_type = EM_DEFILB;
|
|
p->em_opcode = opcode;
|
|
p->em_argtype = 0;
|
|
p->em_ilb = deflb;
|
|
}
|
|
|
|
void EM_Nop(opcode)
|
|
int opcode;
|
|
{
|
|
register p_instr p = GETNXTPATT();
|
|
p->em_type = EM_MNEM;
|
|
p->em_opcode = opcode;
|
|
p->em_argtype = 0;
|
|
}
|
|
|
|
void EM_Nnarg(opcode)
|
|
int opcode;
|
|
{
|
|
register p_instr p = GETNXTPATT();
|
|
p->em_type = EM_MNEM;
|
|
p->em_opcode = opcode;
|
|
p->em_argtype = 0;
|
|
p->em_cst = 0;
|
|
}
|
|
|
|
void EM_Nilb(opcode, lab)
|
|
int opcode;label lab;
|
|
{
|
|
register p_instr p = GETNXTPATT();
|
|
p->em_type = EM_MNEM;
|
|
p->em_argtype = ilb_ptyp;
|
|
p->em_opcode = opcode;
|
|
p->em_ilb = lab;
|
|
}
|
|
|
|
void EM_Nnof(opcode, lab, off)
|
|
int opcode;label lab;
|
|
arith off;
|
|
{
|
|
register p_instr p = GETNXTPATT();
|
|
p->em_type = EM_MNEM;
|
|
p->em_argtype = nof_ptyp;
|
|
p->em_opcode = opcode;
|
|
p->em_dlb = lab;
|
|
p->em_off = off;
|
|
}
|
|
|
|
void EM_Nsof(opcode, name, off)
|
|
int opcode;char *name;
|
|
arith off;
|
|
{
|
|
register p_instr p = GETNXTPATT();
|
|
p->em_type = EM_MNEM;
|
|
p->em_argtype = sof_ptyp;
|
|
p->em_opcode = opcode;
|
|
p->em_dnam = OO_freestr(name);
|
|
p->em_off = off;
|
|
}
|
|
|
|
void EM_Ncst(opcode, cst)
|
|
int opcode;
|
|
arith cst;
|
|
{
|
|
register p_instr p = GETNXTPATT();
|
|
p->em_type = EM_MNEM;
|
|
p->em_argtype = cst_ptyp;
|
|
p->em_opcode = opcode;
|
|
p->em_cst = cst;
|
|
}
|
|
|
|
void EM_Npro(opcode, pnam)
|
|
int opcode;char *pnam;
|
|
{
|
|
register p_instr p = GETNXTPATT();
|
|
p->em_type = EM_MNEM;
|
|
p->em_argtype = pro_ptyp;
|
|
p->em_opcode = opcode;
|
|
p->em_pnam = OO_freestr(pnam);
|
|
}
|
|
|
|
void EM_Ndefilb(opcode, deflb)
|
|
int opcode;label deflb;
|
|
{
|
|
register p_instr p = GETNXTPATT();
|
|
p->em_type = EM_DEFILB;
|
|
p->em_opcode = opcode;
|
|
p->em_argtype = 0;
|
|
p->em_ilb = deflb;
|
|
}
|
|
|
|
void EM_Rop(opcode)
|
|
int opcode;
|
|
{
|
|
register p_instr p = GETNXTREPL();
|
|
p->em_type = EM_MNEM;
|
|
p->em_opcode = opcode;
|
|
p->em_argtype = 0;
|
|
}
|
|
|
|
void EM_Rnarg(opcode)
|
|
int opcode;
|
|
{
|
|
register p_instr p = GETNXTREPL();
|
|
p->em_type = EM_MNEM;
|
|
p->em_opcode = opcode;
|
|
p->em_argtype = 0;
|
|
p->em_cst = 0;
|
|
}
|
|
|
|
void EM_Rilb(opcode, lab)
|
|
int opcode;label lab;
|
|
{
|
|
register p_instr p = GETNXTREPL();
|
|
p->em_type = EM_MNEM;
|
|
p->em_argtype = ilb_ptyp;
|
|
p->em_opcode = opcode;
|
|
p->em_ilb = lab;
|
|
}
|
|
|
|
void EM_Rnof(opcode, lab, off)
|
|
int opcode;label lab;
|
|
arith off;
|
|
{
|
|
register p_instr p = GETNXTREPL();
|
|
p->em_type = EM_MNEM;
|
|
p->em_argtype = nof_ptyp;
|
|
p->em_opcode = opcode;
|
|
p->em_dlb = lab;
|
|
p->em_off = off;
|
|
}
|
|
|
|
void EM_Rsof(opcode, name, off)
|
|
int opcode;char *name;
|
|
arith off;
|
|
{
|
|
register p_instr p = GETNXTREPL();
|
|
p->em_type = EM_MNEM;
|
|
p->em_argtype = sof_ptyp;
|
|
p->em_opcode = opcode;
|
|
p->em_dnam = OO_freestr(name);
|
|
p->em_off = off;
|
|
}
|
|
|
|
void EM_Rcst(opcode, cst)
|
|
int opcode;
|
|
arith cst;
|
|
{
|
|
register p_instr p = GETNXTREPL();
|
|
p->em_type = EM_MNEM;
|
|
p->em_argtype = cst_ptyp;
|
|
p->em_opcode = opcode;
|
|
p->em_cst = cst;
|
|
}
|
|
|
|
void EM_Rpro(opcode, pnam)
|
|
int opcode;char *pnam;
|
|
{
|
|
register p_instr p = GETNXTREPL();
|
|
p->em_type = EM_MNEM;
|
|
p->em_argtype = pro_ptyp;
|
|
p->em_opcode = opcode;
|
|
p->em_pnam = OO_freestr(pnam);
|
|
}
|
|
|
|
void EM_Rdefilb(opcode, deflb)
|
|
int opcode;label deflb;
|
|
{
|
|
register p_instr p = GETNXTREPL();
|
|
p->em_type = EM_DEFILB;
|
|
p->em_opcode = opcode;
|
|
p->em_argtype = 0;
|
|
p->em_ilb = deflb;
|
|
}
|