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 CGG=$(EMHOME)/lib/ncgg
CPP=$(EMHOME)/lib/cpp CPP=$(EMHOME)/lib/cpp
CFILES=$(CDIR)/codegen.c $(CDIR)/compute.c $(CDIR)/equiv.c $(CDIR)/fillem.c \ 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)/gencode.c $(CDIR)/glosym.c $(CDIR)/label.c $(CDIR)/main.c \
$(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c $(CDIR)/salloc.c \ $(CDIR)/move.c $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c \
$(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.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\ OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o label.o \
move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o main.o move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
all: tables.c all: tables.c
make "EMHOME="$(EMHOME) cg make "EMHOME="$(EMHOME) cg
@ -43,6 +43,8 @@ gencode.o: $(CDIR)/gencode.c
$(CC) -c $(CFLAGS) $(CDIR)/gencode.c $(CC) -c $(CFLAGS) $(CDIR)/gencode.c
glosym.o: $(CDIR)/glosym.c glosym.o: $(CDIR)/glosym.c
$(CC) -c $(CFLAGS) $(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 main.o: $(CDIR)/main.c
$(CC) -c $(CFLAGS) $(CDIR)/main.c $(CC) -c $(CFLAGS) $(CDIR)/main.c
move.o: $(CDIR)/move.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)/data.h
compute.o: $(CDIR)/extern.h compute.o: $(CDIR)/extern.h
compute.o: $(CDIR)/glosym.h compute.o: $(CDIR)/glosym.h
compute.o: $(CDIR)/label.h
compute.o: $(CDIR)/param.h compute.o: $(CDIR)/param.h
compute.o: $(CDIR)/result.h compute.o: $(CDIR)/result.h
compute.o: tables.h compute.o: tables.h
@ -130,6 +133,10 @@ glosym.o: $(CDIR)/glosym.h
glosym.o: $(CDIR)/param.h glosym.o: $(CDIR)/param.h
glosym.o: tables.h glosym.o: tables.h
glosym.o: $(CDIR)/types.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: $(CDIR)/param.h
main.o: tables.h main.o: tables.h
move.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.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 CGG=$(EMHOME)/lib/ncgg
CPP=$(EMHOME)/lib/cpp CPP=$(EMHOME)/lib/cpp
CFILES=$(CDIR)/codegen.c $(CDIR)/compute.c $(CDIR)/equiv.c $(CDIR)/fillem.c \ 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)/gencode.c $(CDIR)/glosym.c $(CDIR)/label.c $(CDIR)/main.c \
$(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c $(CDIR)/salloc.c \ $(CDIR)/move.c $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c \
$(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.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\ OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o label.o \
move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o main.o move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
all: tables.c all: tables.c
make "EMHOME="$(EMHOME) cg make "EMHOME="$(EMHOME) cg
@ -43,6 +43,8 @@ gencode.o: $(CDIR)/gencode.c
$(CC) -c $(CFLAGS) $(CDIR)/gencode.c $(CC) -c $(CFLAGS) $(CDIR)/gencode.c
glosym.o: $(CDIR)/glosym.c glosym.o: $(CDIR)/glosym.c
$(CC) -c $(CFLAGS) $(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 main.o: $(CDIR)/main.c
$(CC) -c $(CFLAGS) $(CDIR)/main.c $(CC) -c $(CFLAGS) $(CDIR)/main.c
move.o: $(CDIR)/move.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)/data.h
compute.o: $(CDIR)/extern.h compute.o: $(CDIR)/extern.h
compute.o: $(CDIR)/glosym.h compute.o: $(CDIR)/glosym.h
compute.o: $(CDIR)/label.h
compute.o: $(CDIR)/param.h compute.o: $(CDIR)/param.h
compute.o: $(CDIR)/result.h compute.o: $(CDIR)/result.h
compute.o: tables.h compute.o: tables.h
@ -130,6 +133,10 @@ glosym.o: $(CDIR)/glosym.h
glosym.o: $(CDIR)/param.h glosym.o: $(CDIR)/param.h
glosym.o: tables.h glosym.o: tables.h
glosym.o: $(CDIR)/types.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: $(CDIR)/param.h
main.o: tables.h main.o: tables.h
move.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.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 CGG=$(EMHOME)/lib/ncgg
CPP=$(EMHOME)/lib/cpp CPP=$(EMHOME)/lib/cpp
CFILES=$(CDIR)/codegen.c $(CDIR)/compute.c $(CDIR)/equiv.c $(CDIR)/fillem.c \ 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)/gencode.c $(CDIR)/glosym.c $(CDIR)/label.c $(CDIR)/main.c \
$(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c $(CDIR)/salloc.c \ $(CDIR)/move.c $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c \
$(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.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\ OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o label.o \
move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o main.o move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
all: tables.c all: tables.c
make "EMHOME="$(EMHOME) cg make "EMHOME="$(EMHOME) cg
@ -43,6 +43,8 @@ gencode.o: $(CDIR)/gencode.c
$(CC) -c $(CFLAGS) $(CDIR)/gencode.c $(CC) -c $(CFLAGS) $(CDIR)/gencode.c
glosym.o: $(CDIR)/glosym.c glosym.o: $(CDIR)/glosym.c
$(CC) -c $(CFLAGS) $(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 main.o: $(CDIR)/main.c
$(CC) -c $(CFLAGS) $(CDIR)/main.c $(CC) -c $(CFLAGS) $(CDIR)/main.c
move.o: $(CDIR)/move.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)/data.h
compute.o: $(CDIR)/extern.h compute.o: $(CDIR)/extern.h
compute.o: $(CDIR)/glosym.h compute.o: $(CDIR)/glosym.h
compute.o: $(CDIR)/label.h
compute.o: $(CDIR)/param.h compute.o: $(CDIR)/param.h
compute.o: $(CDIR)/result.h compute.o: $(CDIR)/result.h
compute.o: tables.h compute.o: tables.h
@ -130,6 +133,10 @@ glosym.o: $(CDIR)/glosym.h
glosym.o: $(CDIR)/param.h glosym.o: $(CDIR)/param.h
glosym.o: tables.h glosym.o: tables.h
glosym.o: $(CDIR)/types.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: $(CDIR)/param.h
main.o: tables.h main.o: tables.h
move.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.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 CGG=$(EMHOME)/lib/ncgg
CPP=$(EMHOME)/lib/cpp CPP=$(EMHOME)/lib/cpp
CFILES=$(CDIR)/codegen.c $(CDIR)/compute.c $(CDIR)/equiv.c $(CDIR)/fillem.c \ 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)/gencode.c $(CDIR)/glosym.c $(CDIR)/label.c $(CDIR)/main.c \
$(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c $(CDIR)/salloc.c \ $(CDIR)/move.c $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c \
$(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.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\ OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o label.o \
move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o main.o move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
all: tables.c all: tables.c
make "EMHOME="$(EMHOME) cg make "EMHOME="$(EMHOME) cg
@ -43,6 +43,8 @@ gencode.o: $(CDIR)/gencode.c
$(CC) -c $(CFLAGS) $(CDIR)/gencode.c $(CC) -c $(CFLAGS) $(CDIR)/gencode.c
glosym.o: $(CDIR)/glosym.c glosym.o: $(CDIR)/glosym.c
$(CC) -c $(CFLAGS) $(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 main.o: $(CDIR)/main.c
$(CC) -c $(CFLAGS) $(CDIR)/main.c $(CC) -c $(CFLAGS) $(CDIR)/main.c
move.o: $(CDIR)/move.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)/data.h
compute.o: $(CDIR)/extern.h compute.o: $(CDIR)/extern.h
compute.o: $(CDIR)/glosym.h compute.o: $(CDIR)/glosym.h
compute.o: $(CDIR)/label.h
compute.o: $(CDIR)/param.h compute.o: $(CDIR)/param.h
compute.o: $(CDIR)/result.h compute.o: $(CDIR)/result.h
compute.o: tables.h compute.o: tables.h
@ -130,6 +133,10 @@ glosym.o: $(CDIR)/glosym.h
glosym.o: $(CDIR)/param.h glosym.o: $(CDIR)/param.h
glosym.o: tables.h glosym.o: tables.h
glosym.o: $(CDIR)/types.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: $(CDIR)/param.h
main.o: tables.h main.o: tables.h
move.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.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 CGG=$(EMHOME)/lib/ncgg
CPP=$(EMHOME)/lib/cpp CPP=$(EMHOME)/lib/cpp
CFILES=$(CDIR)/codegen.c $(CDIR)/compute.c $(CDIR)/equiv.c $(CDIR)/fillem.c \ 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)/gencode.c $(CDIR)/glosym.c $(CDIR)/label.c $(CDIR)/main.c \
$(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c $(CDIR)/salloc.c \ $(CDIR)/move.c $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c \
$(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.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\ OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o label.o \
move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o main.o move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
all: tables.c all: tables.c
make "EMHOME="$(EMHOME) cg make "EMHOME="$(EMHOME) cg
@ -43,6 +43,8 @@ gencode.o: $(CDIR)/gencode.c
$(CC) -c $(CFLAGS) $(CDIR)/gencode.c $(CC) -c $(CFLAGS) $(CDIR)/gencode.c
glosym.o: $(CDIR)/glosym.c glosym.o: $(CDIR)/glosym.c
$(CC) -c $(CFLAGS) $(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 main.o: $(CDIR)/main.c
$(CC) -c $(CFLAGS) $(CDIR)/main.c $(CC) -c $(CFLAGS) $(CDIR)/main.c
move.o: $(CDIR)/move.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)/data.h
compute.o: $(CDIR)/extern.h compute.o: $(CDIR)/extern.h
compute.o: $(CDIR)/glosym.h compute.o: $(CDIR)/glosym.h
compute.o: $(CDIR)/label.h
compute.o: $(CDIR)/param.h compute.o: $(CDIR)/param.h
compute.o: $(CDIR)/result.h compute.o: $(CDIR)/result.h
compute.o: tables.h compute.o: tables.h
@ -130,6 +133,10 @@ glosym.o: $(CDIR)/glosym.h
glosym.o: $(CDIR)/param.h glosym.o: $(CDIR)/param.h
glosym.o: tables.h glosym.o: tables.h
glosym.o: $(CDIR)/types.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: $(CDIR)/param.h
main.o: tables.h main.o: tables.h
move.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.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 CGG=$(EMHOME)/lib/ncgg
CPP=$(EMHOME)/lib/cpp CPP=$(EMHOME)/lib/cpp
CFILES=$(CDIR)/codegen.c $(CDIR)/compute.c $(CDIR)/equiv.c $(CDIR)/fillem.c \ 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)/gencode.c $(CDIR)/glosym.c $(CDIR)/label.c $(CDIR)/main.c \
$(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c $(CDIR)/salloc.c \ $(CDIR)/move.c $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c \
$(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.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\ OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o label.o \
move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o main.o move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
all: tables.c all: tables.c
make "EMHOME="$(EMHOME) cg make "EMHOME="$(EMHOME) cg
@ -43,6 +43,8 @@ gencode.o: $(CDIR)/gencode.c
$(CC) -c $(CFLAGS) $(CDIR)/gencode.c $(CC) -c $(CFLAGS) $(CDIR)/gencode.c
glosym.o: $(CDIR)/glosym.c glosym.o: $(CDIR)/glosym.c
$(CC) -c $(CFLAGS) $(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 main.o: $(CDIR)/main.c
$(CC) -c $(CFLAGS) $(CDIR)/main.c $(CC) -c $(CFLAGS) $(CDIR)/main.c
move.o: $(CDIR)/move.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)/data.h
compute.o: $(CDIR)/extern.h compute.o: $(CDIR)/extern.h
compute.o: $(CDIR)/glosym.h compute.o: $(CDIR)/glosym.h
compute.o: $(CDIR)/label.h
compute.o: $(CDIR)/param.h compute.o: $(CDIR)/param.h
compute.o: $(CDIR)/result.h compute.o: $(CDIR)/result.h
compute.o: tables.h compute.o: tables.h
@ -130,6 +133,10 @@ glosym.o: $(CDIR)/glosym.h
glosym.o: $(CDIR)/param.h glosym.o: $(CDIR)/param.h
glosym.o: tables.h glosym.o: tables.h
glosym.o: $(CDIR)/types.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: $(CDIR)/param.h
main.o: tables.h main.o: tables.h
move.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.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 CGG=$(EMHOME)/lib/ncgg
CPP=$(EMHOME)/lib/cpp CPP=$(EMHOME)/lib/cpp
CFILES=$(CDIR)/codegen.c $(CDIR)/compute.c $(CDIR)/equiv.c $(CDIR)/fillem.c \ 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)/gencode.c $(CDIR)/glosym.c $(CDIR)/label.c $(CDIR)/main.c \
$(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c $(CDIR)/salloc.c \ $(CDIR)/move.c $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c \
$(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.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\ OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o label.o \
move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o main.o move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
all: tables.c all: tables.c
make "EMHOME="$(EMHOME) cg make "EMHOME="$(EMHOME) cg
@ -43,6 +43,8 @@ gencode.o: $(CDIR)/gencode.c
$(CC) -c $(CFLAGS) $(CDIR)/gencode.c $(CC) -c $(CFLAGS) $(CDIR)/gencode.c
glosym.o: $(CDIR)/glosym.c glosym.o: $(CDIR)/glosym.c
$(CC) -c $(CFLAGS) $(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 main.o: $(CDIR)/main.c
$(CC) -c $(CFLAGS) $(CDIR)/main.c $(CC) -c $(CFLAGS) $(CDIR)/main.c
move.o: $(CDIR)/move.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)/data.h
compute.o: $(CDIR)/extern.h compute.o: $(CDIR)/extern.h
compute.o: $(CDIR)/glosym.h compute.o: $(CDIR)/glosym.h
compute.o: $(CDIR)/label.h
compute.o: $(CDIR)/param.h compute.o: $(CDIR)/param.h
compute.o: $(CDIR)/result.h compute.o: $(CDIR)/result.h
compute.o: tables.h compute.o: tables.h
@ -130,6 +133,10 @@ glosym.o: $(CDIR)/glosym.h
glosym.o: $(CDIR)/param.h glosym.o: $(CDIR)/param.h
glosym.o: tables.h glosym.o: tables.h
glosym.o: $(CDIR)/types.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: $(CDIR)/param.h
main.o: tables.h main.o: tables.h
move.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.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 CGG=$(EMHOME)/lib/ncgg
CPP=$(EMHOME)/lib/cpp CPP=$(EMHOME)/lib/cpp
CFILES=$(CDIR)/codegen.c $(CDIR)/compute.c $(CDIR)/equiv.c $(CDIR)/fillem.c \ 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)/gencode.c $(CDIR)/glosym.c $(CDIR)/label.c $(CDIR)/main.c \
$(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c $(CDIR)/salloc.c \ $(CDIR)/move.c $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c \
$(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.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\ OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o label.o \
move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o main.o move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
all: tables.c all: tables.c
make "EMHOME="$(EMHOME) cg make "EMHOME="$(EMHOME) cg
@ -43,6 +43,8 @@ gencode.o: $(CDIR)/gencode.c
$(CC) -c $(CFLAGS) $(CDIR)/gencode.c $(CC) -c $(CFLAGS) $(CDIR)/gencode.c
glosym.o: $(CDIR)/glosym.c glosym.o: $(CDIR)/glosym.c
$(CC) -c $(CFLAGS) $(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 main.o: $(CDIR)/main.c
$(CC) -c $(CFLAGS) $(CDIR)/main.c $(CC) -c $(CFLAGS) $(CDIR)/main.c
move.o: $(CDIR)/move.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)/data.h
compute.o: $(CDIR)/extern.h compute.o: $(CDIR)/extern.h
compute.o: $(CDIR)/glosym.h compute.o: $(CDIR)/glosym.h
compute.o: $(CDIR)/label.h
compute.o: $(CDIR)/param.h compute.o: $(CDIR)/param.h
compute.o: $(CDIR)/result.h compute.o: $(CDIR)/result.h
compute.o: tables.h compute.o: tables.h
@ -130,6 +133,10 @@ glosym.o: $(CDIR)/glosym.h
glosym.o: $(CDIR)/param.h glosym.o: $(CDIR)/param.h
glosym.o: tables.h glosym.o: tables.h
glosym.o: $(CDIR)/types.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: $(CDIR)/param.h
main.o: tables.h main.o: tables.h
move.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.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 CGG=$(EMHOME)/lib/ncgg
CPP=$(EMHOME)/lib/cpp CPP=$(EMHOME)/lib/cpp
CFILES=$(CDIR)/codegen.c $(CDIR)/compute.c $(CDIR)/equiv.c $(CDIR)/fillem.c \ 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)/gencode.c $(CDIR)/glosym.c $(CDIR)/label.c $(CDIR)/main.c \
$(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c $(CDIR)/salloc.c \ $(CDIR)/move.c $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c \
$(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.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\ OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o label.o \
move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o main.o move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
all: tables.c all: tables.c
make "EMHOME="$(EMHOME) cg make "EMHOME="$(EMHOME) cg
@ -43,6 +43,8 @@ gencode.o: $(CDIR)/gencode.c
$(CC) -c $(CFLAGS) $(CDIR)/gencode.c $(CC) -c $(CFLAGS) $(CDIR)/gencode.c
glosym.o: $(CDIR)/glosym.c glosym.o: $(CDIR)/glosym.c
$(CC) -c $(CFLAGS) $(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 main.o: $(CDIR)/main.c
$(CC) -c $(CFLAGS) $(CDIR)/main.c $(CC) -c $(CFLAGS) $(CDIR)/main.c
move.o: $(CDIR)/move.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)/data.h
compute.o: $(CDIR)/extern.h compute.o: $(CDIR)/extern.h
compute.o: $(CDIR)/glosym.h compute.o: $(CDIR)/glosym.h
compute.o: $(CDIR)/label.h
compute.o: $(CDIR)/param.h compute.o: $(CDIR)/param.h
compute.o: $(CDIR)/result.h compute.o: $(CDIR)/result.h
compute.o: tables.h compute.o: tables.h
@ -130,6 +133,10 @@ glosym.o: $(CDIR)/glosym.h
glosym.o: $(CDIR)/param.h glosym.o: $(CDIR)/param.h
glosym.o: tables.h glosym.o: tables.h
glosym.o: $(CDIR)/types.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: $(CDIR)/param.h
main.o: tables.h main.o: tables.h
move.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.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 CGG=$(EMHOME)/lib/ncgg
CPP=$(EMHOME)/lib/cpp CPP=$(EMHOME)/lib/cpp
CFILES=$(CDIR)/codegen.c $(CDIR)/compute.c $(CDIR)/equiv.c $(CDIR)/fillem.c \ 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)/gencode.c $(CDIR)/glosym.c $(CDIR)/label.c $(CDIR)/main.c \
$(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c $(CDIR)/salloc.c \ $(CDIR)/move.c $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c \
$(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.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\ OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o label.o \
move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o main.o move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
all: tables.c all: tables.c
make "EMHOME="$(EMHOME) cg make "EMHOME="$(EMHOME) cg
@ -43,6 +43,8 @@ gencode.o: $(CDIR)/gencode.c
$(CC) -c $(CFLAGS) $(CDIR)/gencode.c $(CC) -c $(CFLAGS) $(CDIR)/gencode.c
glosym.o: $(CDIR)/glosym.c glosym.o: $(CDIR)/glosym.c
$(CC) -c $(CFLAGS) $(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 main.o: $(CDIR)/main.c
$(CC) -c $(CFLAGS) $(CDIR)/main.c $(CC) -c $(CFLAGS) $(CDIR)/main.c
move.o: $(CDIR)/move.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)/data.h
compute.o: $(CDIR)/extern.h compute.o: $(CDIR)/extern.h
compute.o: $(CDIR)/glosym.h compute.o: $(CDIR)/glosym.h
compute.o: $(CDIR)/label.h
compute.o: $(CDIR)/param.h compute.o: $(CDIR)/param.h
compute.o: $(CDIR)/result.h compute.o: $(CDIR)/result.h
compute.o: tables.h compute.o: tables.h
@ -130,6 +133,10 @@ glosym.o: $(CDIR)/glosym.h
glosym.o: $(CDIR)/param.h glosym.o: $(CDIR)/param.h
glosym.o: tables.h glosym.o: tables.h
glosym.o: $(CDIR)/types.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: $(CDIR)/param.h
main.o: tables.h main.o: tables.h
move.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.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 CGG=$(EMHOME)/lib/ncgg
CPP=$(EMHOME)/lib/cpp CPP=$(EMHOME)/lib/cpp
CFILES=$(CDIR)/codegen.c $(CDIR)/compute.c $(CDIR)/equiv.c $(CDIR)/fillem.c \ 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)/gencode.c $(CDIR)/glosym.c $(CDIR)/label.c $(CDIR)/main.c \
$(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c $(CDIR)/salloc.c \ $(CDIR)/move.c $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c \
$(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.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\ OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o label.o \
move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o main.o move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
all: tables.c all: tables.c
make "EMHOME="$(EMHOME) cg make "EMHOME="$(EMHOME) cg
@ -43,6 +43,8 @@ gencode.o: $(CDIR)/gencode.c
$(CC) -c $(CFLAGS) $(CDIR)/gencode.c $(CC) -c $(CFLAGS) $(CDIR)/gencode.c
glosym.o: $(CDIR)/glosym.c glosym.o: $(CDIR)/glosym.c
$(CC) -c $(CFLAGS) $(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 main.o: $(CDIR)/main.c
$(CC) -c $(CFLAGS) $(CDIR)/main.c $(CC) -c $(CFLAGS) $(CDIR)/main.c
move.o: $(CDIR)/move.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)/data.h
compute.o: $(CDIR)/extern.h compute.o: $(CDIR)/extern.h
compute.o: $(CDIR)/glosym.h compute.o: $(CDIR)/glosym.h
compute.o: $(CDIR)/label.h
compute.o: $(CDIR)/param.h compute.o: $(CDIR)/param.h
compute.o: $(CDIR)/result.h compute.o: $(CDIR)/result.h
compute.o: tables.h compute.o: tables.h
@ -130,6 +133,10 @@ glosym.o: $(CDIR)/glosym.h
glosym.o: $(CDIR)/param.h glosym.o: $(CDIR)/param.h
glosym.o: tables.h glosym.o: tables.h
glosym.o: $(CDIR)/types.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: $(CDIR)/param.h
main.o: tables.h main.o: tables.h
move.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h move.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h

View file

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

View file

@ -11,6 +11,10 @@ static char rcsid[] = "$Header$";
#include "result.h" #include "result.h"
#include "glosym.h" #include "glosym.h"
#include "extern.h" #include "extern.h"
#ifdef USE_SHC
#include <stdio.h>
#include "label.h"
#endif
/* /*
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands. * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
@ -72,6 +76,10 @@ char opdesc[] = {
LLDEF|RLDEF, /* EX_XOR */ LLDEF|RLDEF, /* EX_XOR */
LLDEF|RLDEF, /* EX_AND */ LLDEF|RLDEF, /* EX_AND */
0, /* EX_ISROM */ 0, /* EX_ISROM */
#ifdef USE_SHC
0, /* EX_STACKHEIGHT */
0, /* EX_FALLTHROUGH */
#endif
}; };
string salloc(),strcpy(),strcat(); string salloc(),strcpy(),strcat();
@ -376,5 +384,27 @@ result_t compute(node) register node_p node; {
assert(leaf1.e_typ == EV_INT); assert(leaf1.e_typ == EV_INT);
result.e_v.e_con = -leaf1.e_v.e_con; result.e_v.e_con = -leaf1.e_v.e_con;
return(result); 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"); error("unknown instruction byte");
case sp_ilb1: case sp_ilb1:
case sp_ilb2: 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_fpseu:
case sp_dlb1: case sp_dlb1:
case sp_dlb2: case sp_dlb2:
@ -169,6 +176,11 @@ fillemlines() {
continue; continue;
case PAR_B: case PAR_B:
t = sp_ilb2; t = sp_ilb2;
#ifdef USE_SHC
lp->em_optyp = OPSYMBOL;
lp->em_u.em_loper = argval;
lp->em_soper = strarg(t);
#endif
break; break;
case PAR_D: case PAR_D:
assert(t == sp_cstx); assert(t == sp_cstx);
@ -201,6 +213,7 @@ dopseudo() {
error("No table entry for %d",emlines[0].em_instr); error("No table entry for %d",emlines[0].em_instr);
nextispseu=0; nextispseu=0;
switch(savetab1) { switch(savetab1) {
#ifndef USE_SHC
case sp_ilb1: case sp_ilb1:
case sp_ilb2: case sp_ilb2:
swtxt(); swtxt();
@ -215,6 +228,7 @@ dopseudo() {
} }
#endif #endif
return; return;
#endif
case sp_dlb1: case sp_dlb1:
case sp_dlb2: case sp_dlb2:
case sp_dnam: case sp_dnam:
@ -296,6 +310,16 @@ dopseudo() {
fatal("bad pointer size"); fatal("bad pointer size");
if ( getarg(any_ptyp)!=sp_cend ) if ( getarg(any_ptyp)!=sp_cend )
fatal("too many parameters"); 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 #ifdef REGVARS
} else if (argval == ms_gto) { } else if (argval == ms_gto) {
getarg(ptyp(sp_cend)); getarg(ptyp(sp_cend));
@ -365,6 +389,9 @@ dopseudo() {
break; break;
case ps_end: case ps_end:
getarg(cst_ptyp | ptyp(sp_cend)); getarg(cst_ptyp | ptyp(sp_cend));
#ifdef USE_SHC
kill_labels();
#endif
cleanregs(); cleanregs();
#ifdef REGVARS #ifdef REGVARS
unlinkregs(); unlinkregs();

View file

@ -11,6 +11,9 @@ static char rcsid[] = "$Header$";
#include "data.h" #include "data.h"
#include "result.h" #include "result.h"
#include "extern.h" #include "extern.h"
#ifdef USE_SHC
#include "mach.h"
#endif
/* /*
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands. * (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) { if (Debug) {
fprintf(stderr,"Matched:"); fprintf(stderr,"Matched:");
for (i=0;i<patlen;i++) { 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) if (emp[i].em_soper)
fprintf(stderr," %s",emp[i].em_soper); fprintf(stderr," %s",emp[i].em_soper);
} }

View file

@ -15,6 +15,8 @@
#define MAXROM 3 #define MAXROM 3
#define op_lab (sp_lmnem+1)
/* /*
* Tunable constants * 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 *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 make_expr(),ident_expr(),subreg_expr(),tokm_expr(),all_expr();
expr_t perc_ident_expr(),sum_expr(),regvar_expr(); expr_t perc_ident_expr(),sum_expr(),regvar_expr();
@ -71,6 +71,7 @@ iocc_t iops[20];
%token TESTS %token TESTS
%token STACKINGRULES COERCIONS %token STACKINGRULES COERCIONS
%token INSTRUCTIONS %token INSTRUCTIONS
%token STACKHEIGHT FALLTHROUGH LABELDEF
%token PROC CALL EXAMPLE %token PROC CALL EXAMPLE
%token FROM TO %token FROM TO
%token TEST MOVE STACK RETURN %token TEST MOVE STACK RETURN
@ -844,6 +845,8 @@ gen_instruction
{ $$ = gen_move($2,$4); } { $$ = gen_move($2,$4); }
| TEST tokeninstance | TEST tokeninstance
{ $$ = gen_test($2);} { $$ = gen_test($2);}
| LABELDEF emarg
{ $$ = gen_label($2-1); use_shc++; }
| RETURN | RETURN
{ $$ = gen_preturn(); } { $$ = gen_preturn(); }
; ;
@ -1009,6 +1012,10 @@ expr
{ $$ = make_expr(TYPBOOL,EX_DEFINED,i_expr($3),0); } { $$ = make_expr(TYPBOOL,EX_DEFINED,i_expr($3),0); }
| SAMESIGN '(' expr ',' expr ')' | SAMESIGN '(' expr ',' expr ')'
{ $$ = make_expr(TYPBOOL,EX_SAMESIGN,i_expr($3),i_expr($5)); } { $$ = 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 ')' | SFIT '(' expr ',' expr ')'
{ $$ = make_expr(TYPBOOL,EX_SFIT,i_expr($3),i_expr($5)); } { $$ = make_expr(TYPBOOL,EX_SFIT,i_expr($3),i_expr($5)); }
| UFIT '(' expr ',' expr ')' | UFIT '(' expr ',' expr ')'

View file

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

View file

@ -25,6 +25,7 @@ initemhash() {
for(i=0;i<=sp_lmnem-sp_fmnem;i++) for(i=0;i<=sp_lmnem-sp_fmnem;i++)
enter(em_mnem[i],i+sp_fmnem); enter(em_mnem[i],i+sp_fmnem);
enter("lab", op_lab);
} }
unsigned emhash(name) register char *name; { unsigned emhash(name) register char *name; {

View file

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

View file

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

View file

@ -20,12 +20,14 @@ cost COST
defined DEFINED defined DEFINED
exact EXACT exact EXACT
example EXAMPLE example EXAMPLE
fallthrough FALLTHROUGH
from FROM from FROM
gen GEN gen GEN
highw HIGHW highw HIGHW
inreg INREG inreg INREG
is_rom ISROM is_rom ISROM
kills KILLS kills KILLS
labeldef LABELDEF
leaving LEAVING leaving LEAVING
loww LOWW loww LOWW
move MOVE move MOVE
@ -41,6 +43,7 @@ reusing REUSING
rom ROM rom ROM
samesign SAMESIGN samesign SAMESIGN
sfit SFIT sfit SFIT
stackheight STACKHEIGHT
test TEST test TEST
to TO to TO
ufit UFIT 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 */ int tabledebug=0; /* do not generate code for table debugging */
#endif #endif
int verbose=0; /* print all statistics */ int verbose=0; /* print all statistics */
int use_shc; /* use stackheight information */
char *c_file= "tables.c"; char *c_file= "tables.c";
char *h_file= "tables.H"; char *h_file= "tables.H";
char *cd_file= "code"; char *cd_file= "code";
@ -592,6 +593,8 @@ outdefs() {
} }
if (tabledebug) if (tabledebug)
cdef("TABLEDEBUG",1); cdef("TABLEDEBUG",1);
if (use_shc)
cdef("USE_SHC",1);
} }
outars() { outars() {
@ -826,6 +829,12 @@ varinfo *kills,*allocates,*generates,*yields,*leaving;
codeint(vp->vi_int[1]); codeint(vp->vi_int[1]);
codenl(); codenl();
break; break;
case INSLABDEF:
cocono = 0;
code8(DO_LABDEF);
codeint(vp->vi_int[1]);
codenl();
break;
} }
} }
codecoco(cocono); codecoco(cocono);

View file

@ -48,3 +48,6 @@
#define NEXT(n,max,string) (n<max? n++ : tabovf(string)) #define NEXT(n,max,string) (n<max? n++ : tabovf(string))
#define NEW(x,y) x=(y*)myalloc(sizeof(*(x))) #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 INSSETCC (-5)
#define INSERASE (-6) #define INSERASE (-6)
#define INSREMOVE (-7) #define INSREMOVE (-7)
#define INSLABDEF (-8)