CGG=$(EMHOME)/lib/ncgg
CPP=$(EMHOME)/lib/cpp
CFILES=$(CDIR)/codegen.c $(CDIR)/compute.c $(CDIR)/equiv.c $(CDIR)/fillem.c \
- $(CDIR)/gencode.c $(CDIR)/glosym.c $(CDIR)/main.c $(CDIR)/move.c \
- $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c $(CDIR)/salloc.c \
- $(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.c
-OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o main.o\
- move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
+ $(CDIR)/gencode.c $(CDIR)/glosym.c $(CDIR)/label.c $(CDIR)/main.c \
+ $(CDIR)/move.c $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c \
+ $(CDIR)/salloc.c $(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.c
+OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o label.o \
+ main.o move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
all: tables.c
make "EMHOME="$(EMHOME) cg
$(CC) -c $(CFLAGS) $(CDIR)/gencode.c
glosym.o: $(CDIR)/glosym.c
$(CC) -c $(CFLAGS) $(CDIR)/glosym.c
+label.o: $(CDIR)/label.c
+ $(CC) -c $(CFLAGS) $(CDIR)/label.c
main.o: $(CDIR)/main.c
$(CC) -c $(CFLAGS) $(CDIR)/main.c
move.o: $(CDIR)/move.c
compute.o: $(CDIR)/data.h
compute.o: $(CDIR)/extern.h
compute.o: $(CDIR)/glosym.h
+compute.o: $(CDIR)/label.h
compute.o: $(CDIR)/param.h
compute.o: $(CDIR)/result.h
compute.o: tables.h
glosym.o: $(CDIR)/param.h
glosym.o: tables.h
glosym.o: $(CDIR)/types.h
+label.o: $(CDIR)/label.h
+label.o: $(CDIR)/param.h
+label.o: tables.h
+label.o: $(CDIR)/types.h
main.o: $(CDIR)/param.h
main.o: tables.h
move.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
CGG=$(EMHOME)/lib/ncgg
CPP=$(EMHOME)/lib/cpp
CFILES=$(CDIR)/codegen.c $(CDIR)/compute.c $(CDIR)/equiv.c $(CDIR)/fillem.c \
- $(CDIR)/gencode.c $(CDIR)/glosym.c $(CDIR)/main.c $(CDIR)/move.c \
- $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c $(CDIR)/salloc.c \
- $(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.c
-OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o main.o\
- move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
+ $(CDIR)/gencode.c $(CDIR)/glosym.c $(CDIR)/label.c $(CDIR)/main.c \
+ $(CDIR)/move.c $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c \
+ $(CDIR)/salloc.c $(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.c
+OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o label.o \
+ main.o move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
all: tables.c
make "EMHOME="$(EMHOME) cg
$(CC) -c $(CFLAGS) $(CDIR)/gencode.c
glosym.o: $(CDIR)/glosym.c
$(CC) -c $(CFLAGS) $(CDIR)/glosym.c
+label.o: $(CDIR)/label.c
+ $(CC) -c $(CFLAGS) $(CDIR)/label.c
main.o: $(CDIR)/main.c
$(CC) -c $(CFLAGS) $(CDIR)/main.c
move.o: $(CDIR)/move.c
compute.o: $(CDIR)/data.h
compute.o: $(CDIR)/extern.h
compute.o: $(CDIR)/glosym.h
+compute.o: $(CDIR)/label.h
compute.o: $(CDIR)/param.h
compute.o: $(CDIR)/result.h
compute.o: tables.h
glosym.o: $(CDIR)/param.h
glosym.o: tables.h
glosym.o: $(CDIR)/types.h
+label.o: $(CDIR)/label.h
+label.o: $(CDIR)/param.h
+label.o: tables.h
+label.o: $(CDIR)/types.h
main.o: $(CDIR)/param.h
main.o: tables.h
move.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
CGG=$(EMHOME)/lib/ncgg
CPP=$(EMHOME)/lib/cpp
CFILES=$(CDIR)/codegen.c $(CDIR)/compute.c $(CDIR)/equiv.c $(CDIR)/fillem.c \
- $(CDIR)/gencode.c $(CDIR)/glosym.c $(CDIR)/main.c $(CDIR)/move.c \
- $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c $(CDIR)/salloc.c \
- $(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.c
-OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o main.o\
- move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
+ $(CDIR)/gencode.c $(CDIR)/glosym.c $(CDIR)/label.c $(CDIR)/main.c \
+ $(CDIR)/move.c $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c \
+ $(CDIR)/salloc.c $(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.c
+OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o label.o \
+ main.o move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
all: tables.c
make "EMHOME="$(EMHOME) cg
$(CC) -c $(CFLAGS) $(CDIR)/gencode.c
glosym.o: $(CDIR)/glosym.c
$(CC) -c $(CFLAGS) $(CDIR)/glosym.c
+label.o: $(CDIR)/label.c
+ $(CC) -c $(CFLAGS) $(CDIR)/label.c
main.o: $(CDIR)/main.c
$(CC) -c $(CFLAGS) $(CDIR)/main.c
move.o: $(CDIR)/move.c
compute.o: $(CDIR)/data.h
compute.o: $(CDIR)/extern.h
compute.o: $(CDIR)/glosym.h
+compute.o: $(CDIR)/label.h
compute.o: $(CDIR)/param.h
compute.o: $(CDIR)/result.h
compute.o: tables.h
glosym.o: $(CDIR)/param.h
glosym.o: tables.h
glosym.o: $(CDIR)/types.h
+label.o: $(CDIR)/label.h
+label.o: $(CDIR)/param.h
+label.o: tables.h
+label.o: $(CDIR)/types.h
main.o: $(CDIR)/param.h
main.o: tables.h
move.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
CGG=$(EMHOME)/lib/ncgg
CPP=$(EMHOME)/lib/cpp
CFILES=$(CDIR)/codegen.c $(CDIR)/compute.c $(CDIR)/equiv.c $(CDIR)/fillem.c \
- $(CDIR)/gencode.c $(CDIR)/glosym.c $(CDIR)/main.c $(CDIR)/move.c \
- $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c $(CDIR)/salloc.c \
- $(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.c
-OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o main.o\
- move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
+ $(CDIR)/gencode.c $(CDIR)/glosym.c $(CDIR)/label.c $(CDIR)/main.c \
+ $(CDIR)/move.c $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c \
+ $(CDIR)/salloc.c $(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.c
+OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o label.o \
+ main.o move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
all: tables.c
make "EMHOME="$(EMHOME) cg
$(CC) -c $(CFLAGS) $(CDIR)/gencode.c
glosym.o: $(CDIR)/glosym.c
$(CC) -c $(CFLAGS) $(CDIR)/glosym.c
+label.o: $(CDIR)/label.c
+ $(CC) -c $(CFLAGS) $(CDIR)/label.c
main.o: $(CDIR)/main.c
$(CC) -c $(CFLAGS) $(CDIR)/main.c
move.o: $(CDIR)/move.c
compute.o: $(CDIR)/data.h
compute.o: $(CDIR)/extern.h
compute.o: $(CDIR)/glosym.h
+compute.o: $(CDIR)/label.h
compute.o: $(CDIR)/param.h
compute.o: $(CDIR)/result.h
compute.o: tables.h
glosym.o: $(CDIR)/param.h
glosym.o: tables.h
glosym.o: $(CDIR)/types.h
+label.o: $(CDIR)/label.h
+label.o: $(CDIR)/param.h
+label.o: tables.h
+label.o: $(CDIR)/types.h
main.o: $(CDIR)/param.h
main.o: tables.h
move.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
CGG=$(EMHOME)/lib/ncgg
CPP=$(EMHOME)/lib/cpp
CFILES=$(CDIR)/codegen.c $(CDIR)/compute.c $(CDIR)/equiv.c $(CDIR)/fillem.c \
- $(CDIR)/gencode.c $(CDIR)/glosym.c $(CDIR)/main.c $(CDIR)/move.c \
- $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c $(CDIR)/salloc.c \
- $(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.c
-OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o main.o\
- move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
+ $(CDIR)/gencode.c $(CDIR)/glosym.c $(CDIR)/label.c $(CDIR)/main.c \
+ $(CDIR)/move.c $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c \
+ $(CDIR)/salloc.c $(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.c
+OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o label.o \
+ main.o move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
all: tables.c
make "EMHOME="$(EMHOME) cg
$(CC) -c $(CFLAGS) $(CDIR)/gencode.c
glosym.o: $(CDIR)/glosym.c
$(CC) -c $(CFLAGS) $(CDIR)/glosym.c
+label.o: $(CDIR)/label.c
+ $(CC) -c $(CFLAGS) $(CDIR)/label.c
main.o: $(CDIR)/main.c
$(CC) -c $(CFLAGS) $(CDIR)/main.c
move.o: $(CDIR)/move.c
compute.o: $(CDIR)/data.h
compute.o: $(CDIR)/extern.h
compute.o: $(CDIR)/glosym.h
+compute.o: $(CDIR)/label.h
compute.o: $(CDIR)/param.h
compute.o: $(CDIR)/result.h
compute.o: tables.h
glosym.o: $(CDIR)/param.h
glosym.o: tables.h
glosym.o: $(CDIR)/types.h
+label.o: $(CDIR)/label.h
+label.o: $(CDIR)/param.h
+label.o: tables.h
+label.o: $(CDIR)/types.h
main.o: $(CDIR)/param.h
main.o: tables.h
move.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
CGG=$(EMHOME)/lib/ncgg
CPP=$(EMHOME)/lib/cpp
CFILES=$(CDIR)/codegen.c $(CDIR)/compute.c $(CDIR)/equiv.c $(CDIR)/fillem.c \
- $(CDIR)/gencode.c $(CDIR)/glosym.c $(CDIR)/main.c $(CDIR)/move.c \
- $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c $(CDIR)/salloc.c \
- $(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.c
-OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o main.o\
- move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
+ $(CDIR)/gencode.c $(CDIR)/glosym.c $(CDIR)/label.c $(CDIR)/main.c \
+ $(CDIR)/move.c $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c \
+ $(CDIR)/salloc.c $(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.c
+OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o label.o \
+ main.o move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
all: tables.c
make "EMHOME="$(EMHOME) cg
$(CC) -c $(CFLAGS) $(CDIR)/gencode.c
glosym.o: $(CDIR)/glosym.c
$(CC) -c $(CFLAGS) $(CDIR)/glosym.c
+label.o: $(CDIR)/label.c
+ $(CC) -c $(CFLAGS) $(CDIR)/label.c
main.o: $(CDIR)/main.c
$(CC) -c $(CFLAGS) $(CDIR)/main.c
move.o: $(CDIR)/move.c
compute.o: $(CDIR)/data.h
compute.o: $(CDIR)/extern.h
compute.o: $(CDIR)/glosym.h
+compute.o: $(CDIR)/label.h
compute.o: $(CDIR)/param.h
compute.o: $(CDIR)/result.h
compute.o: tables.h
glosym.o: $(CDIR)/param.h
glosym.o: tables.h
glosym.o: $(CDIR)/types.h
+label.o: $(CDIR)/label.h
+label.o: $(CDIR)/param.h
+label.o: tables.h
+label.o: $(CDIR)/types.h
main.o: $(CDIR)/param.h
main.o: tables.h
move.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
CGG=$(EMHOME)/lib/ncgg
CPP=$(EMHOME)/lib/cpp
CFILES=$(CDIR)/codegen.c $(CDIR)/compute.c $(CDIR)/equiv.c $(CDIR)/fillem.c \
- $(CDIR)/gencode.c $(CDIR)/glosym.c $(CDIR)/main.c $(CDIR)/move.c \
- $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c $(CDIR)/salloc.c \
- $(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.c
-OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o main.o\
- move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
+ $(CDIR)/gencode.c $(CDIR)/glosym.c $(CDIR)/label.c $(CDIR)/main.c \
+ $(CDIR)/move.c $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c \
+ $(CDIR)/salloc.c $(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.c
+OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o label.o \
+ main.o move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
all: tables.c
make "EMHOME="$(EMHOME) cg
$(CC) -c $(CFLAGS) $(CDIR)/gencode.c
glosym.o: $(CDIR)/glosym.c
$(CC) -c $(CFLAGS) $(CDIR)/glosym.c
+label.o: $(CDIR)/label.c
+ $(CC) -c $(CFLAGS) $(CDIR)/label.c
main.o: $(CDIR)/main.c
$(CC) -c $(CFLAGS) $(CDIR)/main.c
move.o: $(CDIR)/move.c
compute.o: $(CDIR)/data.h
compute.o: $(CDIR)/extern.h
compute.o: $(CDIR)/glosym.h
+compute.o: $(CDIR)/label.h
compute.o: $(CDIR)/param.h
compute.o: $(CDIR)/result.h
compute.o: tables.h
glosym.o: $(CDIR)/param.h
glosym.o: tables.h
glosym.o: $(CDIR)/types.h
+label.o: $(CDIR)/label.h
+label.o: $(CDIR)/param.h
+label.o: tables.h
+label.o: $(CDIR)/types.h
main.o: $(CDIR)/param.h
main.o: tables.h
move.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
CGG=$(EMHOME)/lib/ncgg
CPP=$(EMHOME)/lib/cpp
CFILES=$(CDIR)/codegen.c $(CDIR)/compute.c $(CDIR)/equiv.c $(CDIR)/fillem.c \
- $(CDIR)/gencode.c $(CDIR)/glosym.c $(CDIR)/main.c $(CDIR)/move.c \
- $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c $(CDIR)/salloc.c \
- $(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.c
-OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o main.o\
- move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
+ $(CDIR)/gencode.c $(CDIR)/glosym.c $(CDIR)/label.c $(CDIR)/main.c \
+ $(CDIR)/move.c $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c \
+ $(CDIR)/salloc.c $(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.c
+OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o label.o \
+ main.o move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
all: tables.c
make "EMHOME="$(EMHOME) cg
$(CC) -c $(CFLAGS) $(CDIR)/gencode.c
glosym.o: $(CDIR)/glosym.c
$(CC) -c $(CFLAGS) $(CDIR)/glosym.c
+label.o: $(CDIR)/label.c
+ $(CC) -c $(CFLAGS) $(CDIR)/label.c
main.o: $(CDIR)/main.c
$(CC) -c $(CFLAGS) $(CDIR)/main.c
move.o: $(CDIR)/move.c
compute.o: $(CDIR)/data.h
compute.o: $(CDIR)/extern.h
compute.o: $(CDIR)/glosym.h
+compute.o: $(CDIR)/label.h
compute.o: $(CDIR)/param.h
compute.o: $(CDIR)/result.h
compute.o: tables.h
glosym.o: $(CDIR)/param.h
glosym.o: tables.h
glosym.o: $(CDIR)/types.h
+label.o: $(CDIR)/label.h
+label.o: $(CDIR)/param.h
+label.o: tables.h
+label.o: $(CDIR)/types.h
main.o: $(CDIR)/param.h
main.o: tables.h
move.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
CGG=$(EMHOME)/lib/ncgg
CPP=$(EMHOME)/lib/cpp
CFILES=$(CDIR)/codegen.c $(CDIR)/compute.c $(CDIR)/equiv.c $(CDIR)/fillem.c \
- $(CDIR)/gencode.c $(CDIR)/glosym.c $(CDIR)/main.c $(CDIR)/move.c \
- $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c $(CDIR)/salloc.c \
- $(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.c
-OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o main.o\
- move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
+ $(CDIR)/gencode.c $(CDIR)/glosym.c $(CDIR)/label.c $(CDIR)/main.c \
+ $(CDIR)/move.c $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c \
+ $(CDIR)/salloc.c $(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.c
+OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o label.o \
+ main.o move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
all: tables.c
make "EMHOME="$(EMHOME) cg
$(CC) -c $(CFLAGS) $(CDIR)/gencode.c
glosym.o: $(CDIR)/glosym.c
$(CC) -c $(CFLAGS) $(CDIR)/glosym.c
+label.o: $(CDIR)/label.c
+ $(CC) -c $(CFLAGS) $(CDIR)/label.c
main.o: $(CDIR)/main.c
$(CC) -c $(CFLAGS) $(CDIR)/main.c
move.o: $(CDIR)/move.c
compute.o: $(CDIR)/data.h
compute.o: $(CDIR)/extern.h
compute.o: $(CDIR)/glosym.h
+compute.o: $(CDIR)/label.h
compute.o: $(CDIR)/param.h
compute.o: $(CDIR)/result.h
compute.o: tables.h
glosym.o: $(CDIR)/param.h
glosym.o: tables.h
glosym.o: $(CDIR)/types.h
+label.o: $(CDIR)/label.h
+label.o: $(CDIR)/param.h
+label.o: tables.h
+label.o: $(CDIR)/types.h
main.o: $(CDIR)/param.h
main.o: tables.h
move.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
CGG=$(EMHOME)/lib/ncgg
CPP=$(EMHOME)/lib/cpp
CFILES=$(CDIR)/codegen.c $(CDIR)/compute.c $(CDIR)/equiv.c $(CDIR)/fillem.c \
- $(CDIR)/gencode.c $(CDIR)/glosym.c $(CDIR)/main.c $(CDIR)/move.c \
- $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c $(CDIR)/salloc.c \
- $(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.c
-OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o main.o\
- move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
+ $(CDIR)/gencode.c $(CDIR)/glosym.c $(CDIR)/label.c $(CDIR)/main.c \
+ $(CDIR)/move.c $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c \
+ $(CDIR)/salloc.c $(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.c
+OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o label.o \
+ main.o move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
all: tables.c
make "EMHOME="$(EMHOME) cg
$(CC) -c $(CFLAGS) $(CDIR)/gencode.c
glosym.o: $(CDIR)/glosym.c
$(CC) -c $(CFLAGS) $(CDIR)/glosym.c
+label.o: $(CDIR)/label.c
+ $(CC) -c $(CFLAGS) $(CDIR)/label.c
main.o: $(CDIR)/main.c
$(CC) -c $(CFLAGS) $(CDIR)/main.c
move.o: $(CDIR)/move.c
compute.o: $(CDIR)/data.h
compute.o: $(CDIR)/extern.h
compute.o: $(CDIR)/glosym.h
+compute.o: $(CDIR)/label.h
compute.o: $(CDIR)/param.h
compute.o: $(CDIR)/result.h
compute.o: tables.h
glosym.o: $(CDIR)/param.h
glosym.o: tables.h
glosym.o: $(CDIR)/types.h
+label.o: $(CDIR)/label.h
+label.o: $(CDIR)/param.h
+label.o: tables.h
+label.o: $(CDIR)/types.h
main.o: $(CDIR)/param.h
main.o: tables.h
move.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
CGG=$(EMHOME)/lib/ncgg
CPP=$(EMHOME)/lib/cpp
CFILES=$(CDIR)/codegen.c $(CDIR)/compute.c $(CDIR)/equiv.c $(CDIR)/fillem.c \
- $(CDIR)/gencode.c $(CDIR)/glosym.c $(CDIR)/main.c $(CDIR)/move.c \
- $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c $(CDIR)/salloc.c \
- $(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.c
-OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o main.o\
- move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
+ $(CDIR)/gencode.c $(CDIR)/glosym.c $(CDIR)/label.c $(CDIR)/main.c \
+ $(CDIR)/move.c $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c \
+ $(CDIR)/salloc.c $(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.c
+OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o label.o \
+ main.o move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
all: tables.c
make "EMHOME="$(EMHOME) cg
$(CC) -c $(CFLAGS) $(CDIR)/gencode.c
glosym.o: $(CDIR)/glosym.c
$(CC) -c $(CFLAGS) $(CDIR)/glosym.c
+label.o: $(CDIR)/label.c
+ $(CC) -c $(CFLAGS) $(CDIR)/label.c
main.o: $(CDIR)/main.c
$(CC) -c $(CFLAGS) $(CDIR)/main.c
move.o: $(CDIR)/move.c
compute.o: $(CDIR)/data.h
compute.o: $(CDIR)/extern.h
compute.o: $(CDIR)/glosym.h
+compute.o: $(CDIR)/label.h
compute.o: $(CDIR)/param.h
compute.o: $(CDIR)/result.h
compute.o: tables.h
glosym.o: $(CDIR)/param.h
glosym.o: tables.h
glosym.o: $(CDIR)/types.h
+label.o: $(CDIR)/label.h
+label.o: $(CDIR)/param.h
+label.o: tables.h
+label.o: $(CDIR)/types.h
main.o: $(CDIR)/param.h
main.o: tables.h
move.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
level--;
#endif
return(totalcost);
+#ifdef USE_SHC
+ case DO_LABDEF: {
+ int index;
+
+ DEBUG("LABDEF");
+ if (toplevel) {
+ getint(index,codep);
+ printlabel(index);
+ }
+
+ break;
+ }
+#endif
}
}
doreturn:
#include "result.h"
#include "glosym.h"
#include "extern.h"
+#ifdef USE_SHC
+#include <stdio.h>
+#include "label.h"
+#endif
/*
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
LLDEF|RLDEF, /* EX_XOR */
LLDEF|RLDEF, /* EX_AND */
0, /* EX_ISROM */
+#ifdef USE_SHC
+ 0, /* EX_STACKHEIGHT */
+ 0, /* EX_FALLTHROUGH */
+#endif
};
string salloc(),strcpy(),strcat();
assert(leaf1.e_typ == EV_INT);
result.e_v.e_con = -leaf1.e_v.e_con;
return(result);
+#ifdef USE_SHC
+ case EX_STACKHEIGHT: /* Hans, new */
+ { register label_p lbl;
+
+ lbl = get_label(saveemp[node->ex_lnode].em_u.em_ioper);
+ if (lbl != NULL) {
+ result.e_v.e_con = lbl->lb_height;
+ } else {
+ result.e_v.e_con = 0;
+ }
+ return(result);
+ }
+ case EX_FALLTHROUGH: /* Hans, new */
+ { register label_p lbl;
+
+ lbl = get_label(saveemp[node->ex_lnode].em_u.em_ioper);
+ if (lbl != NULL) {
+ result.e_v.e_con = lbl->lb_fallthrough;
+ } else result.e_v.e_con = 0;
+ return(result);
+ }
+#endif
}
}
error("unknown instruction byte");
case sp_ilb1:
case sp_ilb2:
+#ifdef USE_SHC
+ lp->em_instr = op_lab;
+ lp->em_optyp = OPSYMBOL;
+ lp->em_soper = strarg(t);
+ lp->em_u.em_loper = argval;
+ return;
+#endif
case sp_fpseu:
case sp_dlb1:
case sp_dlb2:
continue;
case PAR_B:
t = sp_ilb2;
+#ifdef USE_SHC
+ lp->em_optyp = OPSYMBOL;
+ lp->em_u.em_loper = argval;
+ lp->em_soper = strarg(t);
+#endif
break;
case PAR_D:
assert(t == sp_cstx);
error("No table entry for %d",emlines[0].em_instr);
nextispseu=0;
switch(savetab1) {
+#ifndef USE_SHC
case sp_ilb1:
case sp_ilb2:
swtxt();
}
#endif
return;
+#endif
case sp_dlb1:
case sp_dlb2:
case sp_dnam:
fatal("bad pointer size");
if ( getarg(any_ptyp)!=sp_cend )
fatal("too many parameters");
+#ifdef USE_SHC
+ } else if (argval == ms_sth) {
+ int lbl, height, flthr;
+ getarg(ptyp(sp_cst2)); lbl = argval;
+ getarg(ptyp(sp_cst2)); height = argval;
+ getarg(ptyp(sp_cst2)); flthr = argval;
+ if ( getarg(any_ptyp)!=sp_cend )
+ fatal("too many parameters");
+ add_label(lbl,height, flthr);
+#endif
#ifdef REGVARS
} else if (argval == ms_gto) {
getarg(ptyp(sp_cend));
break;
case ps_end:
getarg(cst_ptyp | ptyp(sp_cend));
+#ifdef USE_SHC
+ kill_labels();
+#endif
cleanregs();
#ifdef REGVARS
unlinkregs();
#include "data.h"
#include "result.h"
#include "extern.h"
+#ifdef USE_SHC
+#include "mach.h"
+#endif
/*
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
}
}
}
+
+#ifdef USE_SHC
+printlabel(labnum)
+int labnum;
+{
+ newilb(dollar[labnum].e_v.e_addr.ea_str);
+}
+#endif
--- /dev/null
+#include "tables.h"
+#ifdef USE_SHC
+#include <stdio.h>
+#include "types.h"
+#include "param.h"
+#include "label.h"
+
+static label_p label_list = NULL;
+extern char *myalloc();
+
+add_label(num, height, flth)
+{
+ register label_p lbl = NULL;
+
+ if (height <= 0) return;
+ if (flth != TRUE && flth != FALSE)
+ fatal("incorrect value for fallthrough");
+
+ lbl = (label_p) myalloc(sizeof(label_t));
+ lbl->lb_next = label_list;
+ lbl->lb_number = num;
+ lbl->lb_height = height;
+ lbl->lb_fallthrough = flth;
+ label_list = lbl;
+}
+
+label_p get_label(num)
+register word num;
+{
+ register label_p tmp = label_list;
+
+ while (tmp != NULL) {
+ if (tmp->lb_number == num) return tmp;
+ tmp = tmp->lb_next;
+ }
+ return NULL;
+}
+
+kill_labels()
+{
+ label_p tmp;
+
+ while((tmp = label_list) != NULL) {
+ label_list = label_list->lb_next;
+ myfree((char *)tmp);
+ }
+}
+#endif
--- /dev/null
+/*
+ * This file contains the structures that hold information about the labels.
+ * The height and the fallthrough functions of the table.
+ *
+ * Author: Hans van Eck.
+ */
+
+typedef struct label *label_p;
+
+typedef struct label {
+ label_p lb_next;
+ word lb_number;
+ int lb_height;
+ short lb_fallthrough;
+ } label_t;
+
+extern label_p get_label();
if (Debug) {
fprintf(stderr,"Matched:");
for (i=0;i<patlen;i++) {
- fprintf(stderr," %3.3s",em_mnem[emp[i].em_instr-sp_fmnem]);
+#ifdef USE_SHC
+ if (emp[i].em_instr == op_lab)
+ fprintf(stderr," lab");
+ else
+#endif
+ fprintf(stderr," %3.3s",em_mnem[emp[i].em_instr-sp_fmnem]);
if (emp[i].em_soper)
fprintf(stderr," %s",emp[i].em_soper);
}
#define MAXROM 3
+#define op_lab (sp_lmnem+1)
+
/*
* Tunable constants
*/
*/
struct varinfo *gen_inst(),*gen_move(),*gen_test(),*gen_preturn(),*gen_tlab();
-struct varinfo *make_erase();
+struct varinfo *gen_label(), *make_erase();
expr_t make_expr(),ident_expr(),subreg_expr(),tokm_expr(),all_expr();
expr_t perc_ident_expr(),sum_expr(),regvar_expr();
%token TESTS
%token STACKINGRULES COERCIONS
%token INSTRUCTIONS
+%token STACKHEIGHT FALLTHROUGH LABELDEF
%token PROC CALL EXAMPLE
%token FROM TO
%token TEST MOVE STACK RETURN
{ $$ = gen_move($2,$4); }
| TEST tokeninstance
{ $$ = gen_test($2);}
+ | LABELDEF emarg
+ { $$ = gen_label($2-1); use_shc++; }
| RETURN
{ $$ = gen_preturn(); }
;
{ $$ = make_expr(TYPBOOL,EX_DEFINED,i_expr($3),0); }
| SAMESIGN '(' expr ',' expr ')'
{ $$ = make_expr(TYPBOOL,EX_SAMESIGN,i_expr($3),i_expr($5)); }
+ | STACKHEIGHT '(' emarg ')'
+ { $$ = make_expr(TYPINT,EX_STACKHEIGHT,$3-1,0); }
+ | FALLTHROUGH '(' emarg ')'
+ { $$ = make_expr(TYPBOOL,EX_FALLTHROUGH,$3-1,0); }
| SFIT '(' expr ',' expr ')'
{ $$ = make_expr(TYPBOOL,EX_SFIT,i_expr($3),i_expr($5)); }
| UFIT '(' expr ',' expr ')'
return(vp);
}
+struct varinfo *gen_label(arg) int arg; {
+ register struct varinfo *vp;
+
+ NEW(vp,struct varinfo);
+ vp->vi_int[0] = INSLABDEF;
+ vp->vi_int[1] = arg;
+ return(vp);
+}
+
struct varinfo *gen_preturn() {
register struct varinfo *vp;
for(i=0;i<=sp_lmnem-sp_fmnem;i++)
enter(em_mnem[i],i+sp_fmnem);
+ enter("lab", op_lab);
}
unsigned emhash(name) register char *name; {
extern int regclass;
extern int maxtokensize;
extern int nprocargs, maxprocargs;
+extern int use_shc;
extern char *mystrcpy();
extern char *myalloc();
l_instances[i] = insta;
return(i);
}
-
-
-
defined DEFINED
exact EXACT
example EXAMPLE
+fallthrough FALLTHROUGH
from FROM
gen GEN
highw HIGHW
inreg INREG
is_rom ISROM
kills KILLS
+labeldef LABELDEF
leaving LEAVING
loww LOWW
move MOVE
rom ROM
samesign SAMESIGN
sfit SFIT
+stackheight STACKHEIGHT
test TEST
to TO
ufit UFIT
int tabledebug=0; /* do not generate code for table debugging */
#endif
int verbose=0; /* print all statistics */
+int use_shc; /* use stackheight information */
char *c_file= "tables.c";
char *h_file= "tables.H";
char *cd_file= "code";
}
if (tabledebug)
cdef("TABLEDEBUG",1);
+ if (use_shc)
+ cdef("USE_SHC",1);
}
outars() {
codeint(vp->vi_int[1]);
codenl();
break;
+ case INSLABDEF:
+ cocono = 0;
+ code8(DO_LABDEF);
+ codeint(vp->vi_int[1]);
+ codenl();
+ break;
}
}
codecoco(cocono);
#define NEXT(n,max,string) (n<max? n++ : tabovf(string))
#define NEW(x,y) x=(y*)myalloc(sizeof(*(x)))
+
+#include <em_spec.h>
+#define op_lab (sp_lmnem + 1)
#define INSSETCC (-5)
#define INSERASE (-6)
#define INSREMOVE (-7)
+#define INSLABDEF (-8)