adapted to new em_code module
This commit is contained in:
parent
d5c423adaf
commit
629fc3f824
|
@ -4,7 +4,6 @@ argtype
|
||||||
em_comp.h
|
em_comp.h
|
||||||
m_C_mnem
|
m_C_mnem
|
||||||
m_C_mnem_na
|
m_C_mnem_na
|
||||||
m_C_funcs
|
|
||||||
mkcalls.c
|
mkcalls.c
|
||||||
read_em.3
|
read_em.3
|
||||||
read_em.c
|
read_em.c
|
||||||
|
|
|
@ -48,13 +48,13 @@ cmp: all
|
||||||
$(COMPARE) man/read_em.3
|
$(COMPARE) man/read_em.3
|
||||||
|
|
||||||
pr:
|
pr:
|
||||||
@pr Makefile m_C_funcs m_C_mnem m_C_mnem_na argtype $(SRCFILES)
|
@pr Makefile m_C_mnem m_C_mnem_na argtype $(SRCFILES)
|
||||||
|
|
||||||
opr:
|
opr:
|
||||||
make pr | opr
|
make pr | opr
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f *.o *.a C_funcs C_mnem C_mnem_narg
|
rm -f *.o *.a C_mnem C_mnem_narg
|
||||||
|
|
||||||
libread_emk.a: $(K_OFILES)
|
libread_emk.a: $(K_OFILES)
|
||||||
ar r libread_emk.a $(K_OFILES)
|
ar r libread_emk.a $(K_OFILES)
|
||||||
|
@ -80,11 +80,11 @@ read_emeV.o: read_em.c em_comp.h reade.c
|
||||||
$(CC) -c $(CFLAGS) -DCHECKING read_em.c
|
$(CC) -c $(CFLAGS) -DCHECKING read_em.c
|
||||||
mv read_em.o read_emeV.o
|
mv read_em.o read_emeV.o
|
||||||
|
|
||||||
makecalls.o: C_funcs C_mnem C_mnem_narg em_comp.h mkcalls.c
|
makecalls.o: C_mnem C_mnem_narg em_comp.h mkcalls.c
|
||||||
$(CC) -c $(CFLAGS) mkcalls.c
|
$(CC) -c $(CFLAGS) mkcalls.c
|
||||||
mv mkcalls.o makecalls.o
|
mv mkcalls.o makecalls.o
|
||||||
|
|
||||||
makecallsV.o: C_funcs C_mnem C_mnem_narg em_comp.h mkcalls.c
|
makecallsV.o: C_mnem C_mnem_narg em_comp.h mkcalls.c
|
||||||
$(CC) -c $(CFLAGS) -DCHECKING mkcalls.c
|
$(CC) -c $(CFLAGS) -DCHECKING mkcalls.c
|
||||||
mv mkcalls.o makecallsV.o
|
mv mkcalls.o makecallsV.o
|
||||||
|
|
||||||
|
@ -94,10 +94,7 @@ C_mnem: m_C_mnem argtype
|
||||||
C_mnem_narg: m_C_mnem_na argtype
|
C_mnem_narg: m_C_mnem_na argtype
|
||||||
sh m_C_mnem_na > C_mnem_narg
|
sh m_C_mnem_na > C_mnem_narg
|
||||||
|
|
||||||
C_funcs: m_C_funcs argtype
|
lintlib: C_mnem C_mnem_narg
|
||||||
sh m_C_funcs > C_funcs
|
|
||||||
|
|
||||||
lintlib: C_mnem C_mnem_narg C_funcs
|
|
||||||
lint $(INCLUDES) $(DEFINES) -DCOMPACT -DCHECKING -Cread_emkV $(KSRCFILES)
|
lint $(INCLUDES) $(DEFINES) -DCOMPACT -DCHECKING -Cread_emkV $(KSRCFILES)
|
||||||
lint $(INCLUDES) $(DEFINES) -DCHECKING -Cread_emeV $(ESRCFILES)
|
lint $(INCLUDES) $(DEFINES) -DCHECKING -Cread_emeV $(ESRCFILES)
|
||||||
mv llib-lread_emeV.ln llib-lread_emkV.ln $(MODULES)/lib
|
mv llib-lread_emeV.ln llib-lread_emkV.ln $(MODULES)/lib
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
EM_TABLE=../../../etc/em_table
|
EM_TABLE=../../../etc/em_table
|
||||||
echo "switch(p->em_opcode) {"
|
echo "switch(p->em_opcode) {"
|
||||||
echo ' default: EM_error = "Illegal mnemonic"; break;'
|
|
||||||
for i in - cdflnorswz p b
|
for i in - cdflnorswz p b
|
||||||
do
|
do
|
||||||
list=`./argtype $i $EM_TABLE`
|
list=`./argtype $i $EM_TABLE`
|
||||||
|
@ -26,19 +25,22 @@ do
|
||||||
esac
|
esac
|
||||||
for i in $list
|
for i in $list
|
||||||
do
|
do
|
||||||
echo " case op_$i:"
|
cat << EOF
|
||||||
|
case op_$i:
|
||||||
|
C_$i$args;
|
||||||
|
break;
|
||||||
|
EOF
|
||||||
done
|
done
|
||||||
echo " (*C_funcs[p->em_opcode])$args; break;"
|
|
||||||
done
|
done
|
||||||
list=`./argtype g $EM_TABLE`
|
list=`./argtype g $EM_TABLE`
|
||||||
for i in $list
|
|
||||||
do
|
|
||||||
echo " case op_$i:"
|
|
||||||
done
|
|
||||||
cat << 'EOF'
|
cat << 'EOF'
|
||||||
/* a "g" argument */
|
default:
|
||||||
|
/* a "g" argument */
|
||||||
if (p->em_argtype == nof_ptyp) {
|
if (p->em_argtype == nof_ptyp) {
|
||||||
switch(p->em_opcode) {
|
switch(p->em_opcode) {
|
||||||
|
default:
|
||||||
|
EM_error = "Illegal mnemonic";
|
||||||
|
break;
|
||||||
EOF
|
EOF
|
||||||
for i in $list
|
for i in $list
|
||||||
do
|
do
|
||||||
|
@ -53,6 +55,9 @@ cat << 'EOF'
|
||||||
}
|
}
|
||||||
else if (p->em_argtype == sof_ptyp) {
|
else if (p->em_argtype == sof_ptyp) {
|
||||||
switch(p->em_opcode) {
|
switch(p->em_opcode) {
|
||||||
|
default:
|
||||||
|
EM_error = "Illegal mnemonic";
|
||||||
|
break;
|
||||||
EOF
|
EOF
|
||||||
for i in $list
|
for i in $list
|
||||||
do
|
do
|
||||||
|
@ -66,8 +71,21 @@ cat << 'EOF'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else /*argtype == cst_ptyp */ {
|
else /*argtype == cst_ptyp */ {
|
||||||
(*C_funcs[p->em_opcode])(p->em_cst);
|
switch(p->em_opcode) {
|
||||||
break;
|
default:
|
||||||
|
EM_error = "Illegal mnemonic";
|
||||||
|
break;
|
||||||
|
EOF
|
||||||
|
for i in $list
|
||||||
|
do
|
||||||
|
cat << EOF
|
||||||
|
case op_$i:
|
||||||
|
C_$i(p->em_cst);
|
||||||
|
break;
|
||||||
|
EOF
|
||||||
|
done
|
||||||
|
cat << 'EOF'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
|
|
|
@ -21,8 +21,6 @@
|
||||||
extern char em_flag[]; /* One per EM instruction: indicates parameter kind */
|
extern char em_flag[]; /* One per EM instruction: indicates parameter kind */
|
||||||
extern short em_ptyp[]; /* One per parameter kind: indicates parameter type */
|
extern short em_ptyp[]; /* One per parameter kind: indicates parameter type */
|
||||||
|
|
||||||
#include "C_funcs"
|
|
||||||
|
|
||||||
static int listtype = 0; /* indicates pseudo when generating code for
|
static int listtype = 0; /* indicates pseudo when generating code for
|
||||||
variable length argument lists
|
variable length argument lists
|
||||||
(only for MES)
|
(only for MES)
|
||||||
|
|
Loading…
Reference in a new issue