0
0
mirror of https://github.com/netwide-assembler/nasm.git synced 2025-09-22 10:43:39 -04:00

Use a perfect hash to look up preprocessor directives

Use a perfect hash to look up preprocessor directives, and generate
the preprocessor directive list automatically.
This commit is contained in:
H. Peter Anvin
2007-09-12 01:29:43 +00:00
parent cdea6f96b6
commit 4169a47bd9
26 changed files with 423 additions and 241 deletions

View File

@@ -57,7 +57,8 @@ NASM = nasm.$(O) nasmlib.$(O) float.$(O) insnsa.$(O) assemble.$(O) \
output/outelf32.$(O) output/outelf64.$(O) \
output/outobj.$(O) output/outas86.$(O) output/outrdf2.$(O) \
output/outdbg.$(O) output/outieee.$(O) output/outmacho.$(O) \
preproc.$(O) listing.$(O) eval.$(O) stdscan.$(O) tokhash.$(O)
preproc.$(O) pptok.$(O) \
listing.$(O) eval.$(O) stdscan.$(O) tokhash.$(O)
NDISASM = ndisasm.$(O) disasm.$(O) sync.$(O) nasmlib.$(O) insnsd.$(O)
@@ -112,16 +113,22 @@ regvals.c: regs.dat regs.pl
regs.h: regs.dat regs.pl
$(PERL) $(srcdir)/regs.pl h $(srcdir)/regs.dat > regs.h
# Token hash
# Assembler token hash
tokhash.c: insns.dat regs.dat tokens.dat tokhash.pl perllib/phash.ph
$(PERL) $(srcdir)/tokhash.pl $(srcdir)/insns.dat $(srcdir)/regs.dat \
$(srcdir)/tokens.dat > tokhash.c
# Preprocessor token hash
pptok.h: pptok.dat pptok.pl perllib/phash.ph
$(PERL) $(srcdir)/pptok.pl h $(srcdir)/pptok.dat pptok.h
pptok.c: pptok.dat pptok.pl perllib/phash.ph
$(PERL) $(srcdir)/pptok.pl c $(srcdir)/pptok.dat pptok.c
# This target generates all files that require perl.
# This allows easier generation of distribution (see dist target).
PERLREQ = macros.c insnsa.c insnsd.c insnsi.h insnsn.c \
regs.c regs.h regflags.c regdis.c regvals.c tokhash.c \
version.h version.mac
version.h version.mac pptok.h pptok.c
perlreq: $(PERLREQ)
install: nasm$(X) ndisasm$(X)
@@ -200,8 +207,8 @@ alldeps: perlreq
# @object-ending: ".$(O)"
# @path-separator: "/"
#-- Everything below is generated by mkdep.pl - do not edit --#
assemble.$(O): assemble.c preproc.h insns.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h regvals.c assemble.h insnsi.h
assemble.$(O): assemble.c preproc.h insns.h pptok.h regs.h regflags.c \
config.h version.h nasmlib.h nasm.h regvals.c assemble.h insnsi.h
disasm.$(O): disasm.c insns.h sync.h regdis.c regs.h config.h regs.c \
version.h nasm.h insnsn.c names.c insnsi.h disasm.h
eval.$(O): eval.c labels.h eval.h regs.h config.h version.h nasmlib.h nasm.h
@@ -213,11 +220,11 @@ labels.$(O): labels.c regs.h config.h version.h nasmlib.h nasm.h
listing.$(O): listing.c regs.h config.h version.h nasmlib.h nasm.h listing.h
macros.$(O): macros.c
names.$(O): names.c regs.c insnsn.c
nasm.$(O): nasm.c labels.h preproc.h insns.h parser.h eval.h regs.h \
nasm.$(O): nasm.c labels.h preproc.h insns.h parser.h eval.h pptok.h regs.h \
outform.h config.h version.h nasmlib.h nasm.h stdscan.h assemble.h insnsi.h \
listing.h
nasmlib.$(O): nasmlib.c insns.h regs.h config.h regs.c version.h nasmlib.h \
nasm.h insnsn.c names.c insnsi.h
nasmlib.$(O): nasmlib.c insns.h regs.h config.h version.h nasmlib.h nasm.h \
insnsi.h
ndisasm.$(O): ndisasm.c insns.h sync.h regs.h config.h version.h nasmlib.h \
nasm.h insnsi.h disasm.h
outform.$(O): outform.c regs.h config.h outform.h version.h nasm.h
@@ -247,7 +254,9 @@ output/outrdf2.$(O): output/outrdf2.c rdoff/rdoff.h regs.h outform.h \
config.h version.h nasmlib.h nasm.h
parser.$(O): parser.c insns.h parser.h float.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h stdscan.h insnsi.h
preproc.$(O): preproc.c macros.c regs.h config.h version.h nasmlib.h nasm.h
pptok.$(O): pptok.c
preproc.$(O): preproc.c preproc.h macros.c pptok.h regs.h config.h version.h \
nasmlib.h nasm.h
regdis.$(O): regdis.c
regflags.$(O): regflags.c
regs.$(O): regs.c

View File

@@ -173,8 +173,8 @@ clean:
# @object-ending: ".$(OBJ)"
# @path-separator: "\"
#-- Everything below is generated by mkdep.pl - do not edit --#
assemble.$(OBJ): assemble.c preproc.h insns.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h regvals.c insnsi.h assemble.h
assemble.$(OBJ): assemble.c preproc.h insns.h pptok.h regs.h regflags.c \
config.h version.h nasmlib.h nasm.h regvals.c insnsi.h assemble.h
disasm.$(OBJ): disasm.c insns.h sync.h regdis.c regs.h config.h regs.c \
version.h nasm.h insnsn.c names.c insnsi.h disasm.h
eval.$(OBJ): eval.c labels.h eval.h regs.h config.h version.h nasmlib.h \
@@ -188,11 +188,11 @@ listing.$(OBJ): listing.c regs.h config.h version.h nasmlib.h nasm.h \
listing.h
macros.$(OBJ): macros.c
names.$(OBJ): names.c regs.c insnsn.c
nasm.$(OBJ): nasm.c labels.h preproc.h insns.h parser.h eval.h regs.h \
outform.h config.h version.h nasmlib.h nasm.h stdscan.h assemble.h insnsi.h \
listing.h
nasmlib.$(OBJ): nasmlib.c insns.h regs.h config.h regs.c version.h nasmlib.h \
nasm.h insnsn.c names.c insnsi.h
nasm.$(OBJ): nasm.c labels.h preproc.h insns.h parser.h eval.h pptok.h \
regs.h outform.h config.h version.h nasmlib.h nasm.h stdscan.h assemble.h \
insnsi.h listing.h
nasmlib.$(OBJ): nasmlib.c insns.h regs.h config.h version.h nasmlib.h nasm.h \
insnsi.h
ndisasm.$(OBJ): ndisasm.c insns.h sync.h regs.h config.h version.h nasmlib.h \
nasm.h insnsi.h disasm.h
outform.$(OBJ): outform.c regs.h config.h outform.h version.h nasm.h
@@ -222,8 +222,9 @@ output\outrdf2.$(OBJ): output\outrdf2.c rdoff\rdoff.h regs.h outform.h \
config.h version.h nasmlib.h nasm.h
parser.$(OBJ): parser.c insns.h parser.h float.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h stdscan.h insnsi.h
preproc.$(OBJ): preproc.c macros.c regs.h config.h version.h nasmlib.h \
nasm.h
pptok.$(OBJ): pptok.c
preproc.$(OBJ): preproc.c preproc.h macros.c pptok.h regs.h config.h \
version.h nasmlib.h nasm.h
regdis.$(OBJ): regdis.c
regflags.$(OBJ): regflags.c
regs.$(OBJ): regs.c

View File

@@ -133,8 +133,8 @@ clean :
# @object-ending: ".$(OBJ)"
# @path-separator: "\\"
#-- Everything below is generated by mkdep.pl - do not edit --#
assemble.$(OBJ): assemble.c preproc.h insns.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h regvals.c insnsi.h assemble.h
assemble.$(OBJ): assemble.c preproc.h insns.h pptok.h regs.h regflags.c \
config.h version.h nasmlib.h nasm.h regvals.c insnsi.h assemble.h
disasm.$(OBJ): disasm.c insns.h sync.h regdis.c regs.h config.h regs.c \
version.h nasm.h insnsn.c names.c insnsi.h disasm.h
eval.$(OBJ): eval.c labels.h eval.h regs.h config.h version.h nasmlib.h \
@@ -148,11 +148,11 @@ listing.$(OBJ): listing.c regs.h config.h version.h nasmlib.h nasm.h \
listing.h
macros.$(OBJ): macros.c
names.$(OBJ): names.c regs.c insnsn.c
nasm.$(OBJ): nasm.c labels.h preproc.h insns.h parser.h eval.h regs.h \
outform.h config.h version.h nasmlib.h nasm.h stdscan.h assemble.h insnsi.h \
listing.h
nasmlib.$(OBJ): nasmlib.c insns.h regs.h config.h regs.c version.h nasmlib.h \
nasm.h insnsn.c names.c insnsi.h
nasm.$(OBJ): nasm.c labels.h preproc.h insns.h parser.h eval.h pptok.h \
regs.h outform.h config.h version.h nasmlib.h nasm.h stdscan.h assemble.h \
insnsi.h listing.h
nasmlib.$(OBJ): nasmlib.c insns.h regs.h config.h version.h nasmlib.h nasm.h \
insnsi.h
ndisasm.$(OBJ): ndisasm.c insns.h sync.h regs.h config.h version.h nasmlib.h \
nasm.h insnsi.h disasm.h
outform.$(OBJ): outform.c regs.h config.h outform.h version.h nasm.h
@@ -182,8 +182,9 @@ output\\outrdf2.$(OBJ): output\\outrdf2.c rdoff\\rdoff.h regs.h outform.h \
config.h version.h nasmlib.h nasm.h
parser.$(OBJ): parser.c insns.h parser.h float.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h stdscan.h insnsi.h
preproc.$(OBJ): preproc.c macros.c regs.h config.h version.h nasmlib.h \
nasm.h
pptok.$(OBJ): pptok.c
preproc.$(OBJ): preproc.c preproc.h macros.c pptok.h regs.h config.h \
version.h nasmlib.h nasm.h
regdis.$(OBJ): regdis.c
regflags.$(OBJ): regflags.c
regs.$(OBJ): regs.c

View File

@@ -62,8 +62,8 @@ clean :
# @object-ending: ".$(OBJ)"
# @path-separator: "/" # Is this really right? -hpa
#-- Everything below is generated by mkdep.pl - do not edit --#
assemble.$(OBJ): assemble.c preproc.h insns.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h regvals.c insnsi.h assemble.h
assemble.$(OBJ): assemble.c preproc.h insns.h pptok.h regs.h regflags.c \
config.h version.h nasmlib.h nasm.h regvals.c insnsi.h assemble.h
disasm.$(OBJ): disasm.c insns.h sync.h regdis.c regs.h config.h regs.c \
version.h nasm.h insnsn.c names.c insnsi.h disasm.h
eval.$(OBJ): eval.c labels.h eval.h regs.h config.h version.h nasmlib.h \
@@ -77,11 +77,11 @@ listing.$(OBJ): listing.c regs.h config.h version.h nasmlib.h nasm.h \
listing.h
macros.$(OBJ): macros.c
names.$(OBJ): names.c regs.c insnsn.c
nasm.$(OBJ): nasm.c labels.h preproc.h insns.h parser.h eval.h regs.h \
outform.h config.h version.h nasmlib.h nasm.h stdscan.h assemble.h insnsi.h \
listing.h
nasmlib.$(OBJ): nasmlib.c insns.h regs.h config.h regs.c version.h nasmlib.h \
nasm.h insnsn.c names.c insnsi.h
nasm.$(OBJ): nasm.c labels.h preproc.h insns.h parser.h eval.h pptok.h \
regs.h outform.h config.h version.h nasmlib.h nasm.h stdscan.h assemble.h \
insnsi.h listing.h
nasmlib.$(OBJ): nasmlib.c insns.h regs.h config.h version.h nasmlib.h nasm.h \
insnsi.h
ndisasm.$(OBJ): ndisasm.c insns.h sync.h regs.h config.h version.h nasmlib.h \
nasm.h insnsi.h disasm.h
outform.$(OBJ): outform.c regs.h config.h outform.h version.h nasm.h
@@ -111,8 +111,9 @@ output/outrdf2.$(OBJ): output/outrdf2.c rdoff/rdoff.h regs.h outform.h \
config.h version.h nasmlib.h nasm.h
parser.$(OBJ): parser.c insns.h parser.h float.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h stdscan.h insnsi.h
preproc.$(OBJ): preproc.c macros.c regs.h config.h version.h nasmlib.h \
nasm.h
pptok.$(OBJ): pptok.c
preproc.$(OBJ): preproc.c preproc.h macros.c pptok.h regs.h config.h \
version.h nasmlib.h nasm.h
regdis.$(OBJ): regdis.c
regflags.$(OBJ): regflags.c
regs.$(OBJ): regs.c

View File

@@ -157,7 +157,7 @@ regs.o: regs.c
regvals.o: regvals.c
sync.o: sync.c sync.h
#-- Everything below is generated by mkdep.pl - do not edit --#
assemble.o: assemble.c preproc.h insns.h regs.h regflags.c config.h \
assemble.o: assemble.c preproc.h insns.h pptok.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h regvals.c insnsi.h assemble.h
disasm.o: disasm.c insns.h sync.h regdis.c regs.h config.h regs.c version.h \
nasm.h insnsn.c names.c insnsi.h disasm.h
@@ -170,10 +170,11 @@ labels.o: labels.c regs.h config.h version.h nasmlib.h nasm.h
listing.o: listing.c regs.h config.h version.h nasmlib.h nasm.h listing.h
macros.o: macros.c
names.o: names.c regs.c insnsn.c
nasm.o: nasm.c labels.h preproc.h insns.h parser.h eval.h regs.h outform.h \
config.h version.h nasmlib.h nasm.h stdscan.h assemble.h insnsi.h listing.h
nasmlib.o: nasmlib.c insns.h regs.h config.h regs.c version.h nasmlib.h \
nasm.h insnsn.c names.c insnsi.h
nasm.o: nasm.c labels.h preproc.h insns.h parser.h eval.h pptok.h regs.h \
outform.h config.h version.h nasmlib.h nasm.h stdscan.h assemble.h insnsi.h \
listing.h
nasmlib.o: nasmlib.c insns.h regs.h config.h version.h nasmlib.h nasm.h \
insnsi.h
ndisasm.o: ndisasm.c insns.h sync.h regs.h config.h version.h nasmlib.h \
nasm.h insnsi.h disasm.h
outform.o: outform.c regs.h config.h outform.h version.h nasm.h
@@ -203,7 +204,9 @@ output/outrdf2.o: output/outrdf2.c rdoff/rdoff.h regs.h outform.h config.h \
version.h nasmlib.h nasm.h
parser.o: parser.c insns.h parser.h float.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h stdscan.h insnsi.h
preproc.o: preproc.c macros.c regs.h config.h version.h nasmlib.h nasm.h
pptok.o: pptok.c
preproc.o: preproc.c preproc.h macros.c pptok.h regs.h config.h version.h \
nasmlib.h nasm.h
regdis.o: regdis.c
regflags.o: regflags.c
regs.o: regs.c

View File

@@ -86,7 +86,7 @@ clean:
# @object-ending: ".o"
# @path-separator: "/"
#-- Everything below is generated by mkdep.pl - do not edit --#
assemble.o: assemble.c preproc.h insns.h regs.h regflags.c config.h \
assemble.o: assemble.c preproc.h insns.h pptok.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h regvals.c insnsi.h assemble.h
disasm.o: disasm.c insns.h sync.h regdis.c regs.h config.h regs.c version.h \
nasm.h insnsn.c names.c insnsi.h disasm.h
@@ -99,10 +99,11 @@ labels.o: labels.c regs.h config.h version.h nasmlib.h nasm.h
listing.o: listing.c regs.h config.h version.h nasmlib.h nasm.h listing.h
macros.o: macros.c
names.o: names.c regs.c insnsn.c
nasm.o: nasm.c labels.h preproc.h insns.h parser.h eval.h regs.h outform.h \
config.h version.h nasmlib.h nasm.h stdscan.h assemble.h insnsi.h listing.h
nasmlib.o: nasmlib.c insns.h regs.h config.h regs.c version.h nasmlib.h \
nasm.h insnsn.c names.c insnsi.h
nasm.o: nasm.c labels.h preproc.h insns.h parser.h eval.h pptok.h regs.h \
outform.h config.h version.h nasmlib.h nasm.h stdscan.h assemble.h insnsi.h \
listing.h
nasmlib.o: nasmlib.c insns.h regs.h config.h version.h nasmlib.h nasm.h \
insnsi.h
ndisasm.o: ndisasm.c insns.h sync.h regs.h config.h version.h nasmlib.h \
nasm.h insnsi.h disasm.h
outform.o: outform.c regs.h config.h outform.h version.h nasm.h
@@ -132,7 +133,9 @@ output/outrdf2.o: output/outrdf2.c rdoff/rdoff.h regs.h outform.h config.h \
version.h nasmlib.h nasm.h
parser.o: parser.c insns.h parser.h float.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h stdscan.h insnsi.h
preproc.o: preproc.c macros.c regs.h config.h version.h nasmlib.h nasm.h
pptok.o: pptok.c
preproc.o: preproc.c preproc.h macros.c pptok.h regs.h config.h version.h \
nasmlib.h nasm.h
regdis.o: regdis.c
regflags.o: regflags.c
regs.o: regs.c

View File

@@ -93,7 +93,7 @@ clean:
# @object-ending: ".o"
# @path-separator: "/"
#-- Everything below is generated by mkdep.pl - do not edit --#
assemble.o: assemble.c preproc.h insns.h regs.h regflags.c config.h \
assemble.o: assemble.c preproc.h insns.h pptok.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h regvals.c insnsi.h assemble.h
disasm.o: disasm.c insns.h sync.h regdis.c regs.h config.h regs.c version.h \
nasm.h insnsn.c names.c insnsi.h disasm.h
@@ -106,10 +106,11 @@ labels.o: labels.c regs.h config.h version.h nasmlib.h nasm.h
listing.o: listing.c regs.h config.h version.h nasmlib.h nasm.h listing.h
macros.o: macros.c
names.o: names.c regs.c insnsn.c
nasm.o: nasm.c labels.h preproc.h insns.h parser.h eval.h regs.h outform.h \
config.h version.h nasmlib.h nasm.h stdscan.h assemble.h insnsi.h listing.h
nasmlib.o: nasmlib.c insns.h regs.h config.h regs.c version.h nasmlib.h \
nasm.h insnsn.c names.c insnsi.h
nasm.o: nasm.c labels.h preproc.h insns.h parser.h eval.h pptok.h regs.h \
outform.h config.h version.h nasmlib.h nasm.h stdscan.h assemble.h insnsi.h \
listing.h
nasmlib.o: nasmlib.c insns.h regs.h config.h version.h nasmlib.h nasm.h \
insnsi.h
ndisasm.o: ndisasm.c insns.h sync.h regs.h config.h version.h nasmlib.h \
nasm.h insnsi.h disasm.h
outform.o: outform.c regs.h config.h outform.h version.h nasm.h
@@ -139,7 +140,9 @@ output/outrdf2.o: output/outrdf2.c rdoff/rdoff.h regs.h outform.h config.h \
version.h nasmlib.h nasm.h
parser.o: parser.c insns.h parser.h float.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h stdscan.h insnsi.h
preproc.o: preproc.c macros.c regs.h config.h version.h nasmlib.h nasm.h
pptok.o: pptok.c
preproc.o: preproc.c preproc.h macros.c pptok.h regs.h config.h version.h \
nasmlib.h nasm.h
regdis.o: regdis.c
regflags.o: regflags.c
regs.o: regs.c

View File

@@ -47,8 +47,8 @@ clean :
# @object-ending: ".$(OBJ)"
# @path-separator: "/"
#-- Everything below is generated by mkdep.pl - do not edit --#
assemble.$(OBJ): assemble.c preproc.h insns.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h regvals.c insnsi.h assemble.h
assemble.$(OBJ): assemble.c preproc.h insns.h pptok.h regs.h regflags.c \
config.h version.h nasmlib.h nasm.h regvals.c insnsi.h assemble.h
disasm.$(OBJ): disasm.c insns.h sync.h regdis.c regs.h config.h regs.c \
version.h nasm.h insnsn.c names.c insnsi.h disasm.h
eval.$(OBJ): eval.c labels.h eval.h regs.h config.h version.h nasmlib.h \
@@ -62,11 +62,11 @@ listing.$(OBJ): listing.c regs.h config.h version.h nasmlib.h nasm.h \
listing.h
macros.$(OBJ): macros.c
names.$(OBJ): names.c regs.c insnsn.c
nasm.$(OBJ): nasm.c labels.h preproc.h insns.h parser.h eval.h regs.h \
outform.h config.h version.h nasmlib.h nasm.h stdscan.h assemble.h insnsi.h \
listing.h
nasmlib.$(OBJ): nasmlib.c insns.h regs.h config.h regs.c version.h nasmlib.h \
nasm.h insnsn.c names.c insnsi.h
nasm.$(OBJ): nasm.c labels.h preproc.h insns.h parser.h eval.h pptok.h \
regs.h outform.h config.h version.h nasmlib.h nasm.h stdscan.h assemble.h \
insnsi.h listing.h
nasmlib.$(OBJ): nasmlib.c insns.h regs.h config.h version.h nasmlib.h nasm.h \
insnsi.h
ndisasm.$(OBJ): ndisasm.c insns.h sync.h regs.h config.h version.h nasmlib.h \
nasm.h insnsi.h disasm.h
outform.$(OBJ): outform.c regs.h config.h outform.h version.h nasm.h
@@ -96,8 +96,9 @@ output/outrdf2.$(OBJ): output/outrdf2.c rdoff/rdoff.h regs.h outform.h \
config.h version.h nasmlib.h nasm.h
parser.$(OBJ): parser.c insns.h parser.h float.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h stdscan.h insnsi.h
preproc.$(OBJ): preproc.c macros.c regs.h config.h version.h nasmlib.h \
nasm.h
pptok.$(OBJ): pptok.c
preproc.$(OBJ): preproc.c preproc.h macros.c pptok.h regs.h config.h \
version.h nasmlib.h nasm.h
regdis.$(OBJ): regdis.c
regflags.$(OBJ): regflags.c
regs.$(OBJ): regs.c

View File

@@ -60,8 +60,8 @@ clean :
# @object-ending: ".$(OBJ)"
# @path-separator: "/"
#-- Everything below is generated by mkdep.pl - do not edit --#
assemble.$(OBJ): assemble.c preproc.h insns.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h regvals.c insnsi.h assemble.h
assemble.$(OBJ): assemble.c preproc.h insns.h pptok.h regs.h regflags.c \
config.h version.h nasmlib.h nasm.h regvals.c insnsi.h assemble.h
disasm.$(OBJ): disasm.c insns.h sync.h regdis.c regs.h config.h regs.c \
version.h nasm.h insnsn.c names.c insnsi.h disasm.h
eval.$(OBJ): eval.c labels.h eval.h regs.h config.h version.h nasmlib.h \
@@ -75,11 +75,11 @@ listing.$(OBJ): listing.c regs.h config.h version.h nasmlib.h nasm.h \
listing.h
macros.$(OBJ): macros.c
names.$(OBJ): names.c regs.c insnsn.c
nasm.$(OBJ): nasm.c labels.h preproc.h insns.h parser.h eval.h regs.h \
outform.h config.h version.h nasmlib.h nasm.h stdscan.h assemble.h insnsi.h \
listing.h
nasmlib.$(OBJ): nasmlib.c insns.h regs.h config.h regs.c version.h nasmlib.h \
nasm.h insnsn.c names.c insnsi.h
nasm.$(OBJ): nasm.c labels.h preproc.h insns.h parser.h eval.h pptok.h \
regs.h outform.h config.h version.h nasmlib.h nasm.h stdscan.h assemble.h \
insnsi.h listing.h
nasmlib.$(OBJ): nasmlib.c insns.h regs.h config.h version.h nasmlib.h nasm.h \
insnsi.h
ndisasm.$(OBJ): ndisasm.c insns.h sync.h regs.h config.h version.h nasmlib.h \
nasm.h insnsi.h disasm.h
outform.$(OBJ): outform.c regs.h config.h outform.h version.h nasm.h
@@ -109,8 +109,9 @@ output/outrdf2.$(OBJ): output/outrdf2.c rdoff/rdoff.h regs.h outform.h \
config.h version.h nasmlib.h nasm.h
parser.$(OBJ): parser.c insns.h parser.h float.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h stdscan.h insnsi.h
preproc.$(OBJ): preproc.c macros.c regs.h config.h version.h nasmlib.h \
nasm.h
pptok.$(OBJ): pptok.c
preproc.$(OBJ): preproc.c preproc.h macros.c pptok.h regs.h config.h \
version.h nasmlib.h nasm.h
regdis.$(OBJ): regdis.c
regflags.$(OBJ): regflags.c
regs.$(OBJ): regs.c

View File

@@ -143,7 +143,7 @@ install_everything: everything install install_doc install_rdf
# @object-ending: ".o"
# @path-separator: "/"
#-- Everything below is generated by mkdep.pl - do not edit --#
assemble.o: assemble.c preproc.h insns.h regs.h regflags.c config.h \
assemble.o: assemble.c preproc.h insns.h pptok.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h regvals.c insnsi.h assemble.h
disasm.o: disasm.c insns.h sync.h regdis.c regs.h config.h regs.c version.h \
nasm.h insnsn.c names.c insnsi.h disasm.h
@@ -156,10 +156,11 @@ labels.o: labels.c regs.h config.h version.h nasmlib.h nasm.h
listing.o: listing.c regs.h config.h version.h nasmlib.h nasm.h listing.h
macros.o: macros.c
names.o: names.c regs.c insnsn.c
nasm.o: nasm.c labels.h preproc.h insns.h parser.h eval.h regs.h outform.h \
config.h version.h nasmlib.h nasm.h stdscan.h assemble.h insnsi.h listing.h
nasmlib.o: nasmlib.c insns.h regs.h config.h regs.c version.h nasmlib.h \
nasm.h insnsn.c names.c insnsi.h
nasm.o: nasm.c labels.h preproc.h insns.h parser.h eval.h pptok.h regs.h \
outform.h config.h version.h nasmlib.h nasm.h stdscan.h assemble.h insnsi.h \
listing.h
nasmlib.o: nasmlib.c insns.h regs.h config.h version.h nasmlib.h nasm.h \
insnsi.h
ndisasm.o: ndisasm.c insns.h sync.h regs.h config.h version.h nasmlib.h \
nasm.h insnsi.h disasm.h
outform.o: outform.c regs.h config.h outform.h version.h nasm.h
@@ -189,7 +190,9 @@ output/outrdf2.o: output/outrdf2.c rdoff/rdoff.h regs.h outform.h config.h \
version.h nasmlib.h nasm.h
parser.o: parser.c insns.h parser.h float.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h stdscan.h insnsi.h
preproc.o: preproc.c macros.c regs.h config.h version.h nasmlib.h nasm.h
pptok.o: pptok.c
preproc.o: preproc.c preproc.h macros.c pptok.h regs.h config.h version.h \
nasmlib.h nasm.h
regdis.o: regdis.c
regflags.o: regflags.c
regs.o: regs.c

View File

@@ -113,8 +113,8 @@ clean:
# @object-ending: ".${OBJ}"
# @path-separator: "/"
#-- Everything below is generated by mkdep.pl - do not edit --#
assemble.${OBJ}: assemble.c preproc.h insns.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h regvals.c insnsi.h assemble.h
assemble.${OBJ}: assemble.c preproc.h insns.h pptok.h regs.h regflags.c \
config.h version.h nasmlib.h nasm.h regvals.c insnsi.h assemble.h
disasm.${OBJ}: disasm.c insns.h sync.h regdis.c regs.h config.h regs.c \
version.h nasm.h insnsn.c names.c insnsi.h disasm.h
eval.${OBJ}: eval.c labels.h eval.h regs.h config.h version.h nasmlib.h \
@@ -128,11 +128,11 @@ listing.${OBJ}: listing.c regs.h config.h version.h nasmlib.h nasm.h \
listing.h
macros.${OBJ}: macros.c
names.${OBJ}: names.c regs.c insnsn.c
nasm.${OBJ}: nasm.c labels.h preproc.h insns.h parser.h eval.h regs.h \
outform.h config.h version.h nasmlib.h nasm.h stdscan.h assemble.h insnsi.h \
listing.h
nasmlib.${OBJ}: nasmlib.c insns.h regs.h config.h regs.c version.h nasmlib.h \
nasm.h insnsn.c names.c insnsi.h
nasm.${OBJ}: nasm.c labels.h preproc.h insns.h parser.h eval.h pptok.h \
regs.h outform.h config.h version.h nasmlib.h nasm.h stdscan.h assemble.h \
insnsi.h listing.h
nasmlib.${OBJ}: nasmlib.c insns.h regs.h config.h version.h nasmlib.h nasm.h \
insnsi.h
ndisasm.${OBJ}: ndisasm.c insns.h sync.h regs.h config.h version.h nasmlib.h \
nasm.h insnsi.h disasm.h
outform.${OBJ}: outform.c regs.h config.h outform.h version.h nasm.h
@@ -162,8 +162,9 @@ output/outrdf2.${OBJ}: output/outrdf2.c rdoff/rdoff.h regs.h outform.h \
config.h version.h nasmlib.h nasm.h
parser.${OBJ}: parser.c insns.h parser.h float.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h stdscan.h insnsi.h
preproc.${OBJ}: preproc.c macros.c regs.h config.h version.h nasmlib.h \
nasm.h
pptok.${OBJ}: pptok.c
preproc.${OBJ}: preproc.c preproc.h macros.c pptok.h regs.h config.h \
version.h nasmlib.h nasm.h
regdis.${OBJ}: regdis.c
regflags.${OBJ}: regflags.c
regs.${OBJ}: regs.c

View File

@@ -156,8 +156,8 @@ spotless: clean
# @object-ending: ".$(OBJ)"
# @path-separator: "\"
#-- Everything below is generated by mkdep.pl - do not edit --#
assemble.$(OBJ): assemble.c preproc.h insns.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h regvals.c insnsi.h assemble.h
assemble.$(OBJ): assemble.c preproc.h insns.h pptok.h regs.h regflags.c \
config.h version.h nasmlib.h nasm.h regvals.c insnsi.h assemble.h
disasm.$(OBJ): disasm.c insns.h sync.h regdis.c regs.h config.h regs.c \
version.h nasm.h insnsn.c names.c insnsi.h disasm.h
eval.$(OBJ): eval.c labels.h eval.h regs.h config.h version.h nasmlib.h \
@@ -171,11 +171,11 @@ listing.$(OBJ): listing.c regs.h config.h version.h nasmlib.h nasm.h \
listing.h
macros.$(OBJ): macros.c
names.$(OBJ): names.c regs.c insnsn.c
nasm.$(OBJ): nasm.c labels.h preproc.h insns.h parser.h eval.h regs.h \
outform.h config.h version.h nasmlib.h nasm.h stdscan.h assemble.h insnsi.h \
listing.h
nasmlib.$(OBJ): nasmlib.c insns.h regs.h config.h regs.c version.h nasmlib.h \
nasm.h insnsn.c names.c insnsi.h
nasm.$(OBJ): nasm.c labels.h preproc.h insns.h parser.h eval.h pptok.h \
regs.h outform.h config.h version.h nasmlib.h nasm.h stdscan.h assemble.h \
insnsi.h listing.h
nasmlib.$(OBJ): nasmlib.c insns.h regs.h config.h version.h nasmlib.h nasm.h \
insnsi.h
ndisasm.$(OBJ): ndisasm.c insns.h sync.h regs.h config.h version.h nasmlib.h \
nasm.h insnsi.h disasm.h
outform.$(OBJ): outform.c regs.h config.h outform.h version.h nasm.h
@@ -205,8 +205,9 @@ output\outrdf2.$(OBJ): output\outrdf2.c rdoff\rdoff.h regs.h outform.h \
config.h version.h nasmlib.h nasm.h
parser.$(OBJ): parser.c insns.h parser.h float.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h stdscan.h insnsi.h
preproc.$(OBJ): preproc.c macros.c regs.h config.h version.h nasmlib.h \
nasm.h
pptok.$(OBJ): pptok.c
preproc.$(OBJ): preproc.c preproc.h macros.c pptok.h regs.h config.h \
version.h nasmlib.h nasm.h
regdis.$(OBJ): regdis.c
regflags.$(OBJ): regflags.c
regs.$(OBJ): regs.c

View File

@@ -107,8 +107,8 @@ clean :
# @object-ending: ".$(OBJ)"
# @path-separator: "\\"
#-- Everything below is generated by mkdep.pl - do not edit --#
assemble.$(OBJ): assemble.c preproc.h insns.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h regvals.c insnsi.h assemble.h
assemble.$(OBJ): assemble.c preproc.h insns.h pptok.h regs.h regflags.c \
config.h version.h nasmlib.h nasm.h regvals.c insnsi.h assemble.h
disasm.$(OBJ): disasm.c insns.h sync.h regdis.c regs.h config.h regs.c \
version.h nasm.h insnsn.c names.c insnsi.h disasm.h
eval.$(OBJ): eval.c labels.h eval.h regs.h config.h version.h nasmlib.h \
@@ -122,11 +122,11 @@ listing.$(OBJ): listing.c regs.h config.h version.h nasmlib.h nasm.h \
listing.h
macros.$(OBJ): macros.c
names.$(OBJ): names.c regs.c insnsn.c
nasm.$(OBJ): nasm.c labels.h preproc.h insns.h parser.h eval.h regs.h \
outform.h config.h version.h nasmlib.h nasm.h stdscan.h assemble.h insnsi.h \
listing.h
nasmlib.$(OBJ): nasmlib.c insns.h regs.h config.h regs.c version.h nasmlib.h \
nasm.h insnsn.c names.c insnsi.h
nasm.$(OBJ): nasm.c labels.h preproc.h insns.h parser.h eval.h pptok.h \
regs.h outform.h config.h version.h nasmlib.h nasm.h stdscan.h assemble.h \
insnsi.h listing.h
nasmlib.$(OBJ): nasmlib.c insns.h regs.h config.h version.h nasmlib.h nasm.h \
insnsi.h
ndisasm.$(OBJ): ndisasm.c insns.h sync.h regs.h config.h version.h nasmlib.h \
nasm.h insnsi.h disasm.h
outform.$(OBJ): outform.c regs.h config.h outform.h version.h nasm.h
@@ -156,8 +156,9 @@ output\\outrdf2.$(OBJ): output\\outrdf2.c rdoff\\rdoff.h regs.h outform.h \
config.h version.h nasmlib.h nasm.h
parser.$(OBJ): parser.c insns.h parser.h float.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h stdscan.h insnsi.h
preproc.$(OBJ): preproc.c macros.c regs.h config.h version.h nasmlib.h \
nasm.h
pptok.$(OBJ): pptok.c
preproc.$(OBJ): preproc.c preproc.h macros.c pptok.h regs.h config.h \
version.h nasmlib.h nasm.h
regdis.$(OBJ): regdis.c
regflags.$(OBJ): regflags.c
regs.$(OBJ): regs.c

View File

@@ -89,8 +89,8 @@ clean :
# @object-ending: ".$(OBJ)"
# @path-separator: "/"
#-- Everything below is generated by mkdep.pl - do not edit --#
assemble.$(OBJ): assemble.c preproc.h insns.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h regvals.c insnsi.h assemble.h
assemble.$(OBJ): assemble.c preproc.h insns.h pptok.h regs.h regflags.c \
config.h version.h nasmlib.h nasm.h regvals.c insnsi.h assemble.h
disasm.$(OBJ): disasm.c insns.h sync.h regdis.c regs.h config.h regs.c \
version.h nasm.h insnsn.c names.c insnsi.h disasm.h
eval.$(OBJ): eval.c labels.h eval.h regs.h config.h version.h nasmlib.h \
@@ -104,11 +104,11 @@ listing.$(OBJ): listing.c regs.h config.h version.h nasmlib.h nasm.h \
listing.h
macros.$(OBJ): macros.c
names.$(OBJ): names.c regs.c insnsn.c
nasm.$(OBJ): nasm.c labels.h preproc.h insns.h parser.h eval.h regs.h \
outform.h config.h version.h nasmlib.h nasm.h stdscan.h assemble.h insnsi.h \
listing.h
nasmlib.$(OBJ): nasmlib.c insns.h regs.h config.h regs.c version.h nasmlib.h \
nasm.h insnsn.c names.c insnsi.h
nasm.$(OBJ): nasm.c labels.h preproc.h insns.h parser.h eval.h pptok.h \
regs.h outform.h config.h version.h nasmlib.h nasm.h stdscan.h assemble.h \
insnsi.h listing.h
nasmlib.$(OBJ): nasmlib.c insns.h regs.h config.h version.h nasmlib.h nasm.h \
insnsi.h
ndisasm.$(OBJ): ndisasm.c insns.h sync.h regs.h config.h version.h nasmlib.h \
nasm.h insnsi.h disasm.h
outform.$(OBJ): outform.c regs.h config.h outform.h version.h nasm.h
@@ -138,8 +138,9 @@ output/outrdf2.$(OBJ): output/outrdf2.c rdoff/rdoff.h regs.h outform.h \
config.h version.h nasmlib.h nasm.h
parser.$(OBJ): parser.c insns.h parser.h float.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h stdscan.h insnsi.h
preproc.$(OBJ): preproc.c macros.c regs.h config.h version.h nasmlib.h \
nasm.h
pptok.$(OBJ): pptok.c
preproc.$(OBJ): preproc.c preproc.h macros.c pptok.h regs.h config.h \
version.h nasmlib.h nasm.h
regdis.$(OBJ): regdis.c
regflags.$(OBJ): regflags.c
regs.$(OBJ): regs.c

View File

@@ -86,8 +86,8 @@ clean :
# @object-ending: ".$(OBJ)"
# @path-separator: "/"
#-- Everything below is generated by mkdep.pl - do not edit --#
assemble.$(OBJ): assemble.c preproc.h insns.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h regvals.c insnsi.h assemble.h
assemble.$(OBJ): assemble.c preproc.h insns.h pptok.h regs.h regflags.c \
config.h version.h nasmlib.h nasm.h regvals.c insnsi.h assemble.h
disasm.$(OBJ): disasm.c insns.h sync.h regdis.c regs.h config.h regs.c \
version.h nasm.h insnsn.c names.c insnsi.h disasm.h
eval.$(OBJ): eval.c labels.h eval.h regs.h config.h version.h nasmlib.h \
@@ -101,11 +101,11 @@ listing.$(OBJ): listing.c regs.h config.h version.h nasmlib.h nasm.h \
listing.h
macros.$(OBJ): macros.c
names.$(OBJ): names.c regs.c insnsn.c
nasm.$(OBJ): nasm.c labels.h preproc.h insns.h parser.h eval.h regs.h \
outform.h config.h version.h nasmlib.h nasm.h stdscan.h assemble.h insnsi.h \
listing.h
nasmlib.$(OBJ): nasmlib.c insns.h regs.h config.h regs.c version.h nasmlib.h \
nasm.h insnsn.c names.c insnsi.h
nasm.$(OBJ): nasm.c labels.h preproc.h insns.h parser.h eval.h pptok.h \
regs.h outform.h config.h version.h nasmlib.h nasm.h stdscan.h assemble.h \
insnsi.h listing.h
nasmlib.$(OBJ): nasmlib.c insns.h regs.h config.h version.h nasmlib.h nasm.h \
insnsi.h
ndisasm.$(OBJ): ndisasm.c insns.h sync.h regs.h config.h version.h nasmlib.h \
nasm.h insnsi.h disasm.h
outform.$(OBJ): outform.c regs.h config.h outform.h version.h nasm.h
@@ -135,8 +135,9 @@ output/outrdf2.$(OBJ): output/outrdf2.c rdoff/rdoff.h regs.h outform.h \
config.h version.h nasmlib.h nasm.h
parser.$(OBJ): parser.c insns.h parser.h float.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h stdscan.h insnsi.h
preproc.$(OBJ): preproc.c macros.c regs.h config.h version.h nasmlib.h \
nasm.h
pptok.$(OBJ): pptok.c
preproc.$(OBJ): preproc.c preproc.h macros.c pptok.h regs.h config.h \
version.h nasmlib.h nasm.h
regdis.$(OBJ): regdis.c
regflags.$(OBJ): regflags.c
regs.$(OBJ): regs.c

View File

@@ -113,7 +113,7 @@ rdf_install install_rdf:
# @object-ending: ".o"
# @path-separator: "/"
#-- Everything below is generated by mkdep.pl - do not edit --#
assemble.o: assemble.c preproc.h insns.h regs.h regflags.c config.h \
assemble.o: assemble.c preproc.h insns.h pptok.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h regvals.c insnsi.h assemble.h
disasm.o: disasm.c insns.h sync.h regdis.c regs.h config.h regs.c version.h \
nasm.h insnsn.c names.c insnsi.h disasm.h
@@ -126,10 +126,11 @@ labels.o: labels.c regs.h config.h version.h nasmlib.h nasm.h
listing.o: listing.c regs.h config.h version.h nasmlib.h nasm.h listing.h
macros.o: macros.c
names.o: names.c regs.c insnsn.c
nasm.o: nasm.c labels.h preproc.h insns.h parser.h eval.h regs.h outform.h \
config.h version.h nasmlib.h nasm.h stdscan.h assemble.h insnsi.h listing.h
nasmlib.o: nasmlib.c insns.h regs.h config.h regs.c version.h nasmlib.h \
nasm.h insnsn.c names.c insnsi.h
nasm.o: nasm.c labels.h preproc.h insns.h parser.h eval.h pptok.h regs.h \
outform.h config.h version.h nasmlib.h nasm.h stdscan.h assemble.h insnsi.h \
listing.h
nasmlib.o: nasmlib.c insns.h regs.h config.h version.h nasmlib.h nasm.h \
insnsi.h
ndisasm.o: ndisasm.c insns.h sync.h regs.h config.h version.h nasmlib.h \
nasm.h insnsi.h disasm.h
outform.o: outform.c regs.h config.h outform.h version.h nasm.h
@@ -159,7 +160,9 @@ output/outrdf2.o: output/outrdf2.c rdoff/rdoff.h regs.h outform.h config.h \
version.h nasmlib.h nasm.h
parser.o: parser.c insns.h parser.h float.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h stdscan.h insnsi.h
preproc.o: preproc.c macros.c regs.h config.h version.h nasmlib.h nasm.h
pptok.o: pptok.c
preproc.o: preproc.c preproc.h macros.c pptok.h regs.h config.h version.h \
nasmlib.h nasm.h
regdis.o: regdis.c
regflags.o: regflags.c
regs.o: regs.c

View File

@@ -101,8 +101,8 @@ clean :
# @object-ending: ".$(OBJ)"
# @path-separator: "/"
#-- Everything below is generated by mkdep.pl - do not edit --#
assemble.$(OBJ): assemble.c preproc.h insns.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h regvals.c insnsi.h assemble.h
assemble.$(OBJ): assemble.c preproc.h insns.h pptok.h regs.h regflags.c \
config.h version.h nasmlib.h nasm.h regvals.c insnsi.h assemble.h
disasm.$(OBJ): disasm.c insns.h sync.h regdis.c regs.h config.h regs.c \
version.h nasm.h insnsn.c names.c insnsi.h disasm.h
eval.$(OBJ): eval.c labels.h eval.h regs.h config.h version.h nasmlib.h \
@@ -116,11 +116,11 @@ listing.$(OBJ): listing.c regs.h config.h version.h nasmlib.h nasm.h \
listing.h
macros.$(OBJ): macros.c
names.$(OBJ): names.c regs.c insnsn.c
nasm.$(OBJ): nasm.c labels.h preproc.h insns.h parser.h eval.h regs.h \
outform.h config.h version.h nasmlib.h nasm.h stdscan.h assemble.h insnsi.h \
listing.h
nasmlib.$(OBJ): nasmlib.c insns.h regs.h config.h regs.c version.h nasmlib.h \
nasm.h insnsn.c names.c insnsi.h
nasm.$(OBJ): nasm.c labels.h preproc.h insns.h parser.h eval.h pptok.h \
regs.h outform.h config.h version.h nasmlib.h nasm.h stdscan.h assemble.h \
insnsi.h listing.h
nasmlib.$(OBJ): nasmlib.c insns.h regs.h config.h version.h nasmlib.h nasm.h \
insnsi.h
ndisasm.$(OBJ): ndisasm.c insns.h sync.h regs.h config.h version.h nasmlib.h \
nasm.h insnsi.h disasm.h
outform.$(OBJ): outform.c regs.h config.h outform.h version.h nasm.h
@@ -150,8 +150,9 @@ output/outrdf2.$(OBJ): output/outrdf2.c rdoff/rdoff.h regs.h outform.h \
config.h version.h nasmlib.h nasm.h
parser.$(OBJ): parser.c insns.h parser.h float.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h stdscan.h insnsi.h
preproc.$(OBJ): preproc.c macros.c regs.h config.h version.h nasmlib.h \
nasm.h
pptok.$(OBJ): pptok.c
preproc.$(OBJ): preproc.c preproc.h macros.c pptok.h regs.h config.h \
version.h nasmlib.h nasm.h
regdis.$(OBJ): regdis.c
regflags.$(OBJ): regflags.c
regs.$(OBJ): regs.c

View File

@@ -103,8 +103,8 @@ clean :
# @object-ending: ".$(OBJ)"
# @path-separator: "/"
#-- Everything below is generated by mkdep.pl - do not edit --#
assemble.$(OBJ): assemble.c preproc.h insns.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h regvals.c insnsi.h assemble.h
assemble.$(OBJ): assemble.c preproc.h insns.h pptok.h regs.h regflags.c \
config.h version.h nasmlib.h nasm.h regvals.c insnsi.h assemble.h
disasm.$(OBJ): disasm.c insns.h sync.h regdis.c regs.h config.h regs.c \
version.h nasm.h insnsn.c names.c insnsi.h disasm.h
eval.$(OBJ): eval.c labels.h eval.h regs.h config.h version.h nasmlib.h \
@@ -118,11 +118,11 @@ listing.$(OBJ): listing.c regs.h config.h version.h nasmlib.h nasm.h \
listing.h
macros.$(OBJ): macros.c
names.$(OBJ): names.c regs.c insnsn.c
nasm.$(OBJ): nasm.c labels.h preproc.h insns.h parser.h eval.h regs.h \
outform.h config.h version.h nasmlib.h nasm.h stdscan.h assemble.h insnsi.h \
listing.h
nasmlib.$(OBJ): nasmlib.c insns.h regs.h config.h regs.c version.h nasmlib.h \
nasm.h insnsn.c names.c insnsi.h
nasm.$(OBJ): nasm.c labels.h preproc.h insns.h parser.h eval.h pptok.h \
regs.h outform.h config.h version.h nasmlib.h nasm.h stdscan.h assemble.h \
insnsi.h listing.h
nasmlib.$(OBJ): nasmlib.c insns.h regs.h config.h version.h nasmlib.h nasm.h \
insnsi.h
ndisasm.$(OBJ): ndisasm.c insns.h sync.h regs.h config.h version.h nasmlib.h \
nasm.h insnsi.h disasm.h
outform.$(OBJ): outform.c regs.h config.h outform.h version.h nasm.h
@@ -152,8 +152,9 @@ output/outrdf2.$(OBJ): output/outrdf2.c rdoff/rdoff.h regs.h outform.h \
config.h version.h nasmlib.h nasm.h
parser.$(OBJ): parser.c insns.h parser.h float.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h stdscan.h insnsi.h
preproc.$(OBJ): preproc.c macros.c regs.h config.h version.h nasmlib.h \
nasm.h
pptok.$(OBJ): pptok.c
preproc.$(OBJ): preproc.c preproc.h macros.c pptok.h regs.h config.h \
version.h nasmlib.h nasm.h
regdis.$(OBJ): regdis.c
regflags.$(OBJ): regflags.c
regs.$(OBJ): regs.c

View File

@@ -88,8 +88,8 @@ clean : .SYMBOLIC
# @object-ending: ".$(OBJ)"
# @path-separator: "" # This means kill the path completely
#-- Everything below is generated by mkdep.pl - do not edit --#
assemble.$(OBJ): assemble.c preproc.h insns.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h regvals.c insnsi.h assemble.h
assemble.$(OBJ): assemble.c preproc.h insns.h pptok.h regs.h regflags.c \
config.h version.h nasmlib.h nasm.h regvals.c insnsi.h assemble.h
disasm.$(OBJ): disasm.c insns.h sync.h regdis.c regs.h config.h regs.c \
version.h nasm.h insnsn.c names.c insnsi.h disasm.h
eval.$(OBJ): eval.c labels.h eval.h regs.h config.h version.h nasmlib.h \
@@ -103,11 +103,11 @@ listing.$(OBJ): listing.c regs.h config.h version.h nasmlib.h nasm.h \
listing.h
macros.$(OBJ): macros.c
names.$(OBJ): names.c regs.c insnsn.c
nasm.$(OBJ): nasm.c labels.h preproc.h insns.h parser.h eval.h regs.h \
outform.h config.h version.h nasmlib.h nasm.h stdscan.h assemble.h insnsi.h \
listing.h
nasmlib.$(OBJ): nasmlib.c insns.h regs.h config.h regs.c version.h nasmlib.h \
nasm.h insnsn.c names.c insnsi.h
nasm.$(OBJ): nasm.c labels.h preproc.h insns.h parser.h eval.h pptok.h \
regs.h outform.h config.h version.h nasmlib.h nasm.h stdscan.h assemble.h \
insnsi.h listing.h
nasmlib.$(OBJ): nasmlib.c insns.h regs.h config.h version.h nasmlib.h nasm.h \
insnsi.h
ndisasm.$(OBJ): ndisasm.c insns.h sync.h regs.h config.h version.h nasmlib.h \
nasm.h insnsi.h disasm.h
outform.$(OBJ): outform.c regs.h config.h outform.h version.h nasm.h
@@ -135,8 +135,9 @@ outrdf2.$(OBJ): outrdf2.c rdoff.h regs.h outform.h config.h version.h \
nasmlib.h nasm.h
parser.$(OBJ): parser.c insns.h parser.h float.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h stdscan.h insnsi.h
preproc.$(OBJ): preproc.c macros.c regs.h config.h version.h nasmlib.h \
nasm.h
pptok.$(OBJ): pptok.c
preproc.$(OBJ): preproc.c preproc.h macros.c pptok.h regs.h config.h \
version.h nasmlib.h nasm.h
regdis.$(OBJ): regdis.c
regflags.$(OBJ): regflags.c
regs.$(OBJ): regs.c

View File

@@ -103,8 +103,8 @@ clean :
# @object-ending: ".$(OBJ)"
# @path-separator: "/"
#-- Everything below is generated by mkdep.pl - do not edit --#
assemble.$(OBJ): assemble.c preproc.h insns.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h regvals.c insnsi.h assemble.h
assemble.$(OBJ): assemble.c preproc.h insns.h pptok.h regs.h regflags.c \
config.h version.h nasmlib.h nasm.h regvals.c insnsi.h assemble.h
disasm.$(OBJ): disasm.c insns.h sync.h regdis.c regs.h config.h regs.c \
version.h nasm.h insnsn.c names.c insnsi.h disasm.h
eval.$(OBJ): eval.c labels.h eval.h regs.h config.h version.h nasmlib.h \
@@ -118,11 +118,11 @@ listing.$(OBJ): listing.c regs.h config.h version.h nasmlib.h nasm.h \
listing.h
macros.$(OBJ): macros.c
names.$(OBJ): names.c regs.c insnsn.c
nasm.$(OBJ): nasm.c labels.h preproc.h insns.h parser.h eval.h regs.h \
outform.h config.h version.h nasmlib.h nasm.h stdscan.h assemble.h insnsi.h \
listing.h
nasmlib.$(OBJ): nasmlib.c insns.h regs.h config.h regs.c version.h nasmlib.h \
nasm.h insnsn.c names.c insnsi.h
nasm.$(OBJ): nasm.c labels.h preproc.h insns.h parser.h eval.h pptok.h \
regs.h outform.h config.h version.h nasmlib.h nasm.h stdscan.h assemble.h \
insnsi.h listing.h
nasmlib.$(OBJ): nasmlib.c insns.h regs.h config.h version.h nasmlib.h nasm.h \
insnsi.h
ndisasm.$(OBJ): ndisasm.c insns.h sync.h regs.h config.h version.h nasmlib.h \
nasm.h insnsi.h disasm.h
outform.$(OBJ): outform.c regs.h config.h outform.h version.h nasm.h
@@ -152,8 +152,9 @@ output/outrdf2.$(OBJ): output/outrdf2.c rdoff/rdoff.h regs.h outform.h \
config.h version.h nasmlib.h nasm.h
parser.$(OBJ): parser.c insns.h parser.h float.h regs.h regflags.c config.h \
version.h nasmlib.h nasm.h stdscan.h insnsi.h
preproc.$(OBJ): preproc.c macros.c regs.h config.h version.h nasmlib.h \
nasm.h
pptok.$(OBJ): pptok.c
preproc.$(OBJ): preproc.c preproc.h macros.c pptok.h regs.h config.h \
version.h nasmlib.h nasm.h
regdis.$(OBJ): regdis.c
regflags.$(OBJ): regflags.c
regs.$(OBJ): regs.c

4
nasm.h
View File

@@ -296,7 +296,7 @@ typedef expr *(*evalfunc) (scanner sc, void *scprivate,
/*
* Preprocessors ought to look like this:
*/
typedef struct {
typedef struct preproc_ops {
/*
* Called at the start of a pass; given a file name, the number
* of the pass, an error reporting function, an evaluator
@@ -317,6 +317,8 @@ typedef struct {
void (*cleanup) (int);
} Preproc;
extern Preproc nasmpp;
/*
* ----------------------------------------------------------------
* Some lexical properties of the NASM source language, included

View File

@@ -9,6 +9,9 @@
#ifndef NASM_NASMLIB_H
#define NASM_NASMLIB_H
#include <inttypes.h>
#include <stdio.h>
/*
* If this is defined, the wrappers around malloc et al will
* transform into logging variants, which will cause NASM to create

44
pptok.dat Normal file
View File

@@ -0,0 +1,44 @@
#
# A * at the end indicates a condition; the list of conditions are
# on lines starting with *; the negatives are auto-generated
#
*
*ctx
*def
*id
*idn
*idni
*macro
*num
*str
%arg
%assign
%clear
%define
%elif*
%else
%endif
%endm
%endmacro
%endrep
%error
%exitrep
%iassign
%idefine
%if*
%imacro
%include
%ixdefine
%line
%local
%macro
%pop
%push
%rep
%repl
%rotate
%stacksize
%strlen
%substr
%undef
%xdefine

147
pptok.pl Executable file
View File

@@ -0,0 +1,147 @@
#!/usr/bin/perl
#
# Produce pptok.c and pptok.h from pptok.dat
#
require 'phash.ph';
my($what, $in, $out) = @ARGV;
#
# Read pptok.dat
#
open(IN, "< $in") or die "$0: cannot open: $in\n";
while (defined($line = <IN>)) {
chomp $line;
$line =~ s/^\s+//; # Remove leading whitespace
$line =~ s/\s*\#.*$//; # Remove comments and trailing whitespace
next if ($line eq '');
if ($line =~ /^(\%.*)\*$/) {
push(@cctok, $1);
} elsif ($line =~ /^(\%.*)$/) {
push(@pptok, $1);
} elsif ($line =~ /^\*(.*)$/) {
push(@cond, $1);
}
}
close(IN);
foreach $ct (@cctok) {
foreach $cc (@cond) {
push(@pptok, $ct.$cc);
push(@pptok, $ct.'n'.$cc);
}
}
@pptok = sort @pptok;
open(OUT, "> $out") or die "$0: cannot open: $out\n";
print OUT "/* Automatically generated from $in by $0 */\n";
print OUT "/* Do not edit */\n";
print OUT "\n";
#
# Output pptok.h
#
if ($what eq 'h') {
print OUT "enum preproc_token {\n";
foreach $pt (@pptok) {
(my $px = $pt) =~ s/\%//g;
print OUT " PP_\U$px\E,\n";
}
print OUT " PP_INVALID = -1\n";
print OUT "};\n";
}
#
# Output pptok.c
#
if ($what eq 'c') {
my %tokens = ();
my @tokendata = ();
foreach $pt (@pptok) {
(my $px = $pt) =~ s/\%//g;
$tokens{$pt} = scalar @tokendata;
push(@tokendata, $pt);
}
my @hashinfo = gen_perfect_hash(\%tokens);
if (!defined(@hashinfo)) {
die "$0: no hash found\n";
}
# Paranoia...
verify_hash_table(\%tokens, \@hashinfo);
($n, $sv, $g) = @hashinfo;
$sv2 = $sv+2;
die if ($n & ($n-1));
print OUT "#include <inttypes.h>\n";
print OUT "#include <ctype.h>\n";
print OUT "#include \"nasmlib.h\"\n";
print OUT "#include \"preproc.h\"\n";
print OUT "\n";
print OUT "#define rot(x,y) (((uint32_t)(x) << (y))+((uint32_t)(x) >> (32-(y))))\n";
print OUT "\n";
# Note that this is global.
printf OUT "const char * const pp_directives[%d] = {\n",
scalar(@tokendata);
foreach $d (@tokendata) {
print OUT " \"$d\",\n";
}
print OUT "};\n";
print OUT "enum preproc_token pp_token_hash(const char *token)\n";
print OUT "{\n";
# Put a large value in unused slots. This makes it extremely unlikely
# that any combination that involves unused slot will pass the range test.
# This speeds up rejection of unrecognized tokens, i.e. identifiers.
print OUT "#define UNUSED 16383\n";
print OUT " static const int16_t hash1[$n] = {\n";
for ($i = 0; $i < $n; $i++) {
my $h = ${$g}[$i*2+0];
print OUT " ", defined($h) ? $h : 'UNUSED', ",\n";
}
print OUT " };\n";
print OUT " static const int16_t hash2[$n] = {\n";
for ($i = 0; $i < $n; $i++) {
my $h = ${$g}[$i*2+1];
print OUT " ", defined($h) ? $h : 'UNUSED', ",\n";
}
print OUT " };\n";
print OUT " uint32_t k1 = 0, k2 = 0;\n";
print OUT " uint8_t c;\n";
# For correct overflow behavior, "ix" should be unsigned of the same
# width as the hash arrays.
print OUT " uint16_t ix;\n";
print OUT " const char *p = token;\n";
print OUT "\n";
print OUT " while ((c = *p++) != 0) {\n";
print OUT " c = tolower(c);\n";
printf OUT " uint32_t kn1 = rot(k1,%2d) - rot(k2,%2d) + c;\n", ${$sv}[0], ${$sv}[1];
printf OUT " uint32_t kn2 = rot(k2,%2d) - rot(k1,%2d) + c;\n", ${$sv}[2], ${$sv}[3];
print OUT " k1 = kn1; k2 = kn2;\n";
print OUT " }\n";
print OUT "\n";
printf OUT " ix = hash1[k1 & 0x%x] + hash2[k2 & 0x%x];\n", $n-1, $n-1;
printf OUT " if (ix >= %d)\n", scalar(@tokendata);
print OUT " return PP_INVALID;\n";
print OUT "\n";
print OUT " if (nasm_stricmp(pp_directives[ix], token))\n";
print OUT " return PP_INVALID;\n";
print OUT "\n";
print OUT " return ix;\n";
print OUT "}\n";
}

View File

@@ -45,6 +45,7 @@
#include "nasm.h"
#include "nasmlib.h"
#include "preproc.h"
typedef struct SMacro SMacro;
typedef struct MMacro MMacro;
@@ -270,45 +271,6 @@ static int inverse_ccs[] = {
/*
* Directive names.
*/
static const char *directives[] = {
"%arg",
"%assign", "%clear", "%define", "%elif", "%elifctx", "%elifdef",
"%elifid", "%elifidn", "%elifidni", "%elifmacro", "%elifn", "%elifnctx",
"%elifndef",
"%elifnid", "%elifnidn", "%elifnidni", "%elifnmacro", "%elifnnum",
"%elifnstr",
"%elifnum", "%elifstr", "%else", "%endif", "%endm", "%endmacro",
"%endrep", "%error", "%exitrep", "%iassign", "%idefine", "%if",
"%ifctx", "%ifdef", "%ifid", "%ifidn", "%ifidni", "%ifmacro",
"%ifn", "%ifnctx",
"%ifndef", "%ifnid", "%ifnidn", "%ifnidni", "%ifnmacro", "%ifnnum",
"%ifnstr", "%ifnum", "%ifstr", "%imacro", "%include",
"%ixdefine", "%line",
"%local",
"%macro", "%pop", "%push", "%rep", "%repl", "%rotate",
"%stacksize",
"%strlen", "%substr", "%undef", "%xdefine"
};
enum {
PP_ARG,
PP_ASSIGN, PP_CLEAR, PP_DEFINE, PP_ELIF, PP_ELIFCTX, PP_ELIFDEF,
PP_ELIFID, PP_ELIFIDN, PP_ELIFIDNI, PP_ELIFMACRO, PP_ELIFN, PP_ELIFNCTX,
PP_ELIFNDEF,
PP_ELIFNID, PP_ELIFNIDN, PP_ELIFNIDNI, PP_ELIFNMACRO, PP_ELIFNNUM,
PP_ELIFNSTR,
PP_ELIFNUM, PP_ELIFSTR, PP_ELSE, PP_ENDIF, PP_ENDM, PP_ENDMACRO,
PP_ENDREP, PP_ERROR, PP_EXITREP, PP_IASSIGN, PP_IDEFINE, PP_IF,
PP_IFCTX, PP_IFDEF, PP_IFID, PP_IFIDN, PP_IFIDNI, PP_IFMACRO,
PP_IFN, PP_IFNCTX,
PP_IFNDEF, PP_IFNID, PP_IFNIDN, PP_IFNIDNI, PP_IFNMACRO, PP_IFNNUM,
PP_IFNSTR, PP_IFNUM, PP_IFSTR, PP_IMACRO, PP_INCLUDE,
PP_IXDEFINE, PP_LINE,
PP_LOCAL,
PP_MACRO, PP_POP, PP_PUSH, PP_REP, PP_REPL, PP_ROTATE,
PP_STACKSIZE,
PP_STRLEN, PP_SUBSTR, PP_UNDEF, PP_XDEFINE
};
/* If this is a an IF, ELIF, ELSE or ENDIF keyword */
static int is_condition(int arg)
{
@@ -1326,7 +1288,7 @@ static int if_condition(Token * tline, int i)
skip_white_(tline);
if (!tline || tline->type != TOK_ID) {
error(ERR_NONFATAL,
"`%s' expects context identifiers", directives[i]);
"`%s' expects context identifiers", pp_directives[i]);
free_tlist(origline);
return -1;
}
@@ -1350,7 +1312,7 @@ static int if_condition(Token * tline, int i)
(tline->type != TOK_PREPROC_ID ||
tline->text[1] != '$'))) {
error(ERR_NONFATAL,
"`%s' expects macro identifiers", directives[i]);
"`%s' expects macro identifiers", pp_directives[i]);
free_tlist(origline);
return -1;
}
@@ -1378,7 +1340,7 @@ static int if_condition(Token * tline, int i)
if (!tt) {
error(ERR_NONFATAL,
"`%s' expects two comma-separated arguments",
directives[i]);
pp_directives[i]);
free_tlist(tline);
return -1;
}
@@ -1389,7 +1351,7 @@ static int if_condition(Token * tline, int i)
while ((t->type != TOK_OTHER || strcmp(t->text, ",")) && tt) {
if (tt->type == TOK_OTHER && !strcmp(tt->text, ",")) {
error(ERR_NONFATAL, "`%s': more than one comma on line",
directives[i]);
pp_directives[i]);
free_tlist(tline);
return -1;
}
@@ -1439,7 +1401,7 @@ static int if_condition(Token * tline, int i)
tline = expand_id(tline);
if (!tok_type_(tline, TOK_ID)) {
error(ERR_NONFATAL,
"`%s' expects a macro name", directives[i]);
"`%s' expects a macro name", pp_directives[i]);
return -1;
}
searching.name = nasm_strdup(tline->text);
@@ -1456,7 +1418,7 @@ static int if_condition(Token * tline, int i)
} else if (!tok_type_(tline, TOK_NUMBER)) {
error(ERR_NONFATAL,
"`%s' expects a parameter count or nothing",
directives[i]);
pp_directives[i]);
} else {
searching.nparam_min = searching.nparam_max =
readnum(tline->text, &j);
@@ -1472,7 +1434,7 @@ static int if_condition(Token * tline, int i)
else if (!tok_type_(tline, TOK_NUMBER))
error(ERR_NONFATAL,
"`%s' expects a parameter count after `-'",
directives[i]);
pp_directives[i]);
else {
searching.nparam_max = readnum(tline->text, &j);
if (j)
@@ -1569,7 +1531,7 @@ static int if_condition(Token * tline, int i)
"trailing garbage after expression ignored");
if (!is_simple(evalresult)) {
error(ERR_NONFATAL,
"non-constant value given to `%s'", directives[i]);
"non-constant value given to `%s'", pp_directives[i]);
return -1;
}
j = reloc_value(evalresult) != 0;
@@ -1579,7 +1541,7 @@ static int if_condition(Token * tline, int i)
default:
error(ERR_FATAL,
"preprocessor directive `%s' not yet implemented",
directives[i]);
pp_directives[i]);
free_tlist(origline);
return -1; /* yeah, right */
}
@@ -1611,7 +1573,9 @@ void expand_macros_in_string(char **p)
*/
static int do_directive(Token * tline)
{
int i, j, nparam, nolist;
enum preproc_token i;
int j;
int nparam, nolist;
int64_t k, m;
int offset;
char *p, *mname;
@@ -1634,25 +1598,7 @@ static int do_directive(Token * tline)
|| tline->text[1] == '!'))
return NO_DIRECTIVE_FOUND;
i = -1;
j = elements(directives);
while (j - i > 1) {
k = (j + i) / 2;
m = nasm_stricmp(tline->text, directives[k]);
if (m == 0) {
if (tasm_compatible_mode) {
i = k;
j = -2;
} else if (k != PP_ARG && k != PP_LOCAL && k != PP_STACKSIZE) {
i = k;
j = -2;
}
break;
} else if (m < 0) {
j = k;
} else
i = k;
}
i = pp_token_hash(tline->text);
/*
* If we're in a non-emitting branch of a condition construct,
@@ -1678,13 +1624,12 @@ static int do_directive(Token * tline)
return NO_DIRECTIVE_FOUND;
}
if (j != -2) {
switch (i) {
case PP_INVALID:
error(ERR_NONFATAL, "unknown preprocessor directive `%s'",
tline->text);
return NO_DIRECTIVE_FOUND; /* didn't get it */
}
switch (i) {
case PP_STACKSIZE:
/* Directive to tell NASM what the default stack size is. The
* default is for a 16-bit stack, and this can be overriden with
@@ -2063,7 +2008,7 @@ static int do_directive(Token * tline)
case PP_ELIFNUM:
case PP_ELIFSTR:
if (!istk->conds)
error(ERR_FATAL, "`%s': no matching `%%if'", directives[i]);
error(ERR_FATAL, "`%s': no matching `%%if'", pp_directives[i]);
if (emitting(istk->conds->state)
|| istk->conds->state == COND_NEVER)
istk->conds->state = COND_NEVER;
@@ -2817,7 +2762,7 @@ static int do_directive(Token * tline)
default:
error(ERR_FATAL,
"preprocessor directive `%s' not yet implemented",
directives[i]);
pp_directives[i]);
break;
}
return DIRECTIVE_FOUND;

View File

@@ -9,6 +9,11 @@
#ifndef NASM_PREPROC_H
#define NASM_PREPROC_H
#include "pptok.h"
extern const char * const pp_directives[];
enum preproc_token pp_token_hash(const char *token);
void pp_include_path(char *);
char **pp_get_include_path_ptr(char **pPrevPath);
void pp_pre_include(char *);
@@ -17,6 +22,4 @@ void pp_pre_undefine(char *);
void pp_runtime(char *);
void pp_extra_stdmac(const char **);
extern Preproc nasmpp;
#endif