adapted to new em_code module
authorceriel <none@none>
Thu, 14 Jan 1988 13:19:32 +0000 (13:19 +0000)
committerceriel <none@none>
Thu, 14 Jan 1988 13:19:32 +0000 (13:19 +0000)
modules/src/read_em/.distr
modules/src/read_em/Makefile
modules/src/read_em/m_C_mnem
modules/src/read_em/mkcalls.c

index 82e6343..a221e0c 100644 (file)
@@ -4,7 +4,6 @@ argtype
 em_comp.h
 m_C_mnem
 m_C_mnem_na
-m_C_funcs
 mkcalls.c
 read_em.3
 read_em.c
index d397600..4f9396d 100644 (file)
@@ -48,13 +48,13 @@ cmp:                all
                $(COMPARE) man/read_em.3
 
 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:
                make pr | opr
 
 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)
                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
                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
                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
                mv mkcalls.o makecallsV.o
 
@@ -94,10 +94,7 @@ C_mnem:              m_C_mnem argtype
 C_mnem_narg:   m_C_mnem_na argtype
                sh m_C_mnem_na > C_mnem_narg
 
-C_funcs:       m_C_funcs argtype
-               sh m_C_funcs > C_funcs
-
-lintlib:       C_mnem C_mnem_narg C_funcs
+lintlib:       C_mnem C_mnem_narg
                lint $(INCLUDES) $(DEFINES) -DCOMPACT -DCHECKING -Cread_emkV $(KSRCFILES)
                lint $(INCLUDES) $(DEFINES) -DCHECKING -Cread_emeV $(ESRCFILES)
                mv llib-lread_emeV.ln llib-lread_emkV.ln $(MODULES)/lib
index 479da76..fdd52f6 100755 (executable)
@@ -1,6 +1,5 @@
 EM_TABLE=../../../etc/em_table
 echo "switch(p->em_opcode) {"
-echo ' default: EM_error = "Illegal mnemonic"; break;'
 for i in - cdflnorswz p b
 do
        list=`./argtype $i $EM_TABLE`
@@ -26,19 +25,22 @@ do
        esac
        for i in $list
        do
-               echo "  case op_$i:"
+               cat << EOF
+       case op_$i:
+               C_$i$args;
+               break;
+EOF
        done
-       echo "          (*C_funcs[p->em_opcode])$args; break;"
 done
 list=`./argtype g $EM_TABLE`
-for i in $list
-do
-       echo "  case op_$i:"
-done
 cat << 'EOF'
-       /* a "g" argument */
+       default:
+/* a "g" argument */
                if (p->em_argtype == nof_ptyp) {
                        switch(p->em_opcode) {
+                               default:
+                                       EM_error = "Illegal mnemonic";
+                                       break;
 EOF
 for i in $list
 do
@@ -53,6 +55,9 @@ cat << 'EOF'
                }
                else if (p->em_argtype == sof_ptyp) {
                        switch(p->em_opcode) {
+                               default:
+                                       EM_error = "Illegal mnemonic";
+                                       break;
 EOF
 for i in $list
 do
@@ -66,8 +71,21 @@ cat << 'EOF'
                        }
                }
                else /*argtype == cst_ptyp */ {
-                       (*C_funcs[p->em_opcode])(p->em_cst);
-                       break;
+                       switch(p->em_opcode) {
+                               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
index 016b32a..9ea5942 100644 (file)
@@ -21,8 +21,6 @@
 extern char em_flag[]; /* One per EM instruction: indicates parameter kind */
 extern short em_ptyp[];        /* One per parameter kind: indicates parameter type */
 
-#include "C_funcs"
-
 static int listtype = 0;       /* indicates pseudo when generating code for
                                   variable length argument lists
                                   (only for MES)