added stackheight message handling

This commit is contained in:
eck 1990-07-18 14:53:19 +00:00
parent adfec1c0ef
commit 4ef2c70ed3
28 changed files with 321 additions and 60 deletions

View file

@ -16,11 +16,11 @@ CDIR=$(EMHOME)/mach/proto/ncg
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
@ -43,6 +43,8 @@ gencode.o: $(CDIR)/gencode.c
$(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
@ -97,6 +99,7 @@ compute.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
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
@ -130,6 +133,10 @@ glosym.o: $(CDIR)/glosym.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

View file

@ -16,11 +16,11 @@ CDIR=$(EMHOME)/mach/proto/ncg
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
@ -43,6 +43,8 @@ gencode.o: $(CDIR)/gencode.c
$(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
@ -97,6 +99,7 @@ compute.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
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
@ -130,6 +133,10 @@ glosym.o: $(CDIR)/glosym.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

View file

@ -16,11 +16,11 @@ CDIR=$(EMHOME)/mach/proto/ncg
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
@ -43,6 +43,8 @@ gencode.o: $(CDIR)/gencode.c
$(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
@ -97,6 +99,7 @@ compute.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
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
@ -130,6 +133,10 @@ glosym.o: $(CDIR)/glosym.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

View file

@ -16,11 +16,11 @@ CDIR=$(EMHOME)/mach/proto/ncg
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
@ -43,6 +43,8 @@ gencode.o: $(CDIR)/gencode.c
$(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
@ -97,6 +99,7 @@ compute.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
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
@ -130,6 +133,10 @@ glosym.o: $(CDIR)/glosym.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

View file

@ -16,11 +16,11 @@ CDIR=$(EMHOME)/mach/proto/ncg
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
@ -43,6 +43,8 @@ gencode.o: $(CDIR)/gencode.c
$(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
@ -97,6 +99,7 @@ compute.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
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
@ -130,6 +133,10 @@ glosym.o: $(CDIR)/glosym.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

View file

@ -16,11 +16,11 @@ CDIR=$(EMHOME)/mach/proto/ncg
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
@ -43,6 +43,8 @@ gencode.o: $(CDIR)/gencode.c
$(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
@ -97,6 +99,7 @@ compute.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
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
@ -130,6 +133,10 @@ glosym.o: $(CDIR)/glosym.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

View file

@ -16,11 +16,11 @@ CDIR=$(EMHOME)/mach/proto/ncg
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
@ -43,6 +43,8 @@ gencode.o: $(CDIR)/gencode.c
$(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
@ -97,6 +99,7 @@ compute.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
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
@ -130,6 +133,10 @@ glosym.o: $(CDIR)/glosym.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

View file

@ -16,11 +16,11 @@ CDIR=$(EMHOME)/mach/proto/ncg
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
@ -43,6 +43,8 @@ gencode.o: $(CDIR)/gencode.c
$(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
@ -97,6 +99,7 @@ compute.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
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
@ -130,6 +133,10 @@ glosym.o: $(CDIR)/glosym.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

View file

@ -16,11 +16,11 @@ CDIR=$(EMHOME)/mach/proto/ncg
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
@ -43,6 +43,8 @@ gencode.o: $(CDIR)/gencode.c
$(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
@ -97,6 +99,7 @@ compute.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
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
@ -130,6 +133,10 @@ glosym.o: $(CDIR)/glosym.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

View file

@ -16,11 +16,11 @@ CDIR=$(EMHOME)/mach/proto/ncg
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
@ -43,6 +43,8 @@ gencode.o: $(CDIR)/gencode.c
$(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
@ -97,6 +99,7 @@ compute.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
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
@ -130,6 +133,10 @@ glosym.o: $(CDIR)/glosym.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

View file

@ -16,11 +16,11 @@ CDIR=$(EMHOME)/mach/proto/ncg
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
@ -43,6 +43,8 @@ gencode.o: $(CDIR)/gencode.c
$(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
@ -97,6 +99,7 @@ compute.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
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
@ -130,6 +133,10 @@ glosym.o: $(CDIR)/glosym.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

View file

@ -849,6 +849,19 @@ normalfailed: if (stackpad!=tokpatlen) {
level--;
#endif
return(totalcost);
#ifdef USE_SHC
case DO_LABDEF: {
int index;
DEBUG("LABDEF");
if (toplevel) {
getint(index,codep);
printlabel(index);
}
break;
}
#endif
}
}
doreturn:

View file

@ -11,6 +11,10 @@ static char rcsid[] = "$Header$";
#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.
@ -72,6 +76,10 @@ char opdesc[] = {
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();
@ -376,5 +384,27 @@ result_t compute(node) register node_p node; {
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
}
}

View file

@ -127,6 +127,13 @@ fillemlines() {
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:
@ -169,6 +176,11 @@ fillemlines() {
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);
@ -201,6 +213,7 @@ dopseudo() {
error("No table entry for %d",emlines[0].em_instr);
nextispseu=0;
switch(savetab1) {
#ifndef USE_SHC
case sp_ilb1:
case sp_ilb2:
swtxt();
@ -215,6 +228,7 @@ dopseudo() {
}
#endif
return;
#endif
case sp_dlb1:
case sp_dlb2:
case sp_dnam:
@ -296,6 +310,16 @@ dopseudo() {
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));
@ -365,6 +389,9 @@ dopseudo() {
break;
case ps_end:
getarg(cst_ptyp | ptyp(sp_cend));
#ifdef USE_SHC
kill_labels();
#endif
cleanregs();
#ifdef REGVARS
unlinkregs();

View file

@ -11,6 +11,9 @@ static char rcsid[] = "$Header$";
#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.
@ -139,3 +142,11 @@ prtoken(tp,leadingchar) token_p tp; {
}
}
}
#ifdef USE_SHC
printlabel(labnum)
int labnum;
{
newilb(dollar[labnum].e_v.e_addr.ea_str);
}
#endif

48
mach/proto/ncg/label.c Normal file
View file

@ -0,0 +1,48 @@
#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

17
mach/proto/ncg/label.h Normal file
View file

@ -0,0 +1,17 @@
/*
* 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();

View file

@ -64,7 +64,12 @@ byte *trypat(bp,len) register byte *bp; {
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);
}

View file

@ -15,6 +15,8 @@
#define MAXROM 3
#define op_lab (sp_lmnem+1)
/*
* Tunable constants
*/

View file

@ -38,7 +38,7 @@ int Xstackflag=0; /* set in coercions, moves, and tests. %1 means something
*/
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();
@ -71,6 +71,7 @@ iocc_t iops[20];
%token TESTS
%token STACKINGRULES COERCIONS
%token INSTRUCTIONS
%token STACKHEIGHT FALLTHROUGH LABELDEF
%token PROC CALL EXAMPLE
%token FROM TO
%token TEST MOVE STACK RETURN
@ -844,6 +845,8 @@ gen_instruction
{ $$ = gen_move($2,$4); }
| TEST tokeninstance
{ $$ = gen_test($2);}
| LABELDEF emarg
{ $$ = gen_label($2-1); use_shc++; }
| RETURN
{ $$ = gen_preturn(); }
;
@ -1009,6 +1012,10 @@ expr
{ $$ = 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 ')'

View file

@ -110,6 +110,15 @@ struct varinfo *gen_test(from) iocc_t from; {
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;

View file

@ -25,6 +25,7 @@ initemhash() {
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; {

View file

@ -36,6 +36,7 @@ extern int maxmembers;
extern int regclass;
extern int maxtokensize;
extern int nprocargs, maxprocargs;
extern int use_shc;
extern char *mystrcpy();
extern char *myalloc();

View file

@ -206,6 +206,3 @@ instalookup(insta,filled) inst_t insta; {
l_instances[i] = insta;
return(i);
}

View file

@ -20,12 +20,14 @@ cost COST
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
@ -41,6 +43,7 @@ reusing REUSING
rom ROM
samesign SAMESIGN
sfit SFIT
stackheight STACKHEIGHT
test TEST
to TO
ufit UFIT

View file

@ -11,6 +11,7 @@ int code_in_c=1; /* put code in "tables.c" */
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";
@ -592,6 +593,8 @@ outdefs() {
}
if (tabledebug)
cdef("TABLEDEBUG",1);
if (use_shc)
cdef("USE_SHC",1);
}
outars() {
@ -826,6 +829,12 @@ varinfo *kills,*allocates,*generates,*yields,*leaving;
codeint(vp->vi_int[1]);
codenl();
break;
case INSLABDEF:
cocono = 0;
code8(DO_LABDEF);
codeint(vp->vi_int[1]);
codenl();
break;
}
}
codecoco(cocono);

View file

@ -48,3 +48,6 @@
#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)

View file

@ -11,3 +11,4 @@
#define INSSETCC (-5)
#define INSERASE (-6)
#define INSREMOVE (-7)
#define INSLABDEF (-8)