added stackheight message handling
This commit is contained in:
parent
adfec1c0ef
commit
4ef2c70ed3
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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
48
mach/proto/ncg/label.c
Normal 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
17
mach/proto/ncg/label.h
Normal 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();
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
|
||||
#define MAXROM 3
|
||||
|
||||
#define op_lab (sp_lmnem+1)
|
||||
|
||||
/*
|
||||
* Tunable constants
|
||||
*/
|
||||
|
|
|
@ -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 ')'
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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; {
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -206,6 +206,3 @@ instalookup(insta,filled) inst_t insta; {
|
|||
l_instances[i] = insta;
|
||||
return(i);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -11,3 +11,4 @@
|
|||
#define INSSETCC (-5)
|
||||
#define INSERASE (-6)
|
||||
#define INSREMOVE (-7)
|
||||
#define INSLABDEF (-8)
|
||||
|
|
Loading…
Reference in a new issue