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:
27
Makefile.in
27
Makefile.in
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
4
nasm.h
@@ -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
|
||||
|
@@ -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
44
pptok.dat
Normal 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
147
pptok.pl
Executable 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";
|
||||
}
|
91
preproc.c
91
preproc.c
@@ -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;
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user