From 4342239f771ad1c832ca936a25d6ad4df827483b Mon Sep 17 00:00:00 2001 From: "H. Peter Anvin" Date: Tue, 30 Apr 2002 20:56:19 +0000 Subject: [PATCH] NASM 0.98p3.4 --- MODIFIED | 11 ++- Mkfiles/Makefile.bc2 | 48 ++++++------- Mkfiles/Makefile.bor | 44 ++++++------ Mkfiles/Makefile.dj | 48 ++++++------- Mkfiles/Makefile.djo | 187 +++++++++++++++++++++++++++++++++++++++++++++++++++ Mkfiles/Makefile.dos | 44 ++++++------ Mkfiles/Makefile.lcc | 48 ++++++------- Mkfiles/Makefile.sc | 44 ++++++------ Mkfiles/Makefile.scw | 44 ++++++------ Mkfiles/Makefile.unx | 48 ++++++------- Mkfiles/Makefile.vc | 44 ++++++------ Mkfiles/Makefile.wc | 40 +++++------ Mkfiles/Makefile.wcw | 40 +++++------ changes.asm | 32 ++++----- insns.pl | 7 +- nasm.h | 2 +- rdoff/Makefile.sc | 111 +++++++++++++++--------------- 17 files changed, 518 insertions(+), 324 deletions(-) create mode 100644 Mkfiles/Makefile.djo diff --git a/MODIFIED b/MODIFIED index 4e7b5ab..60a49e0 100644 --- a/MODIFIED +++ b/MODIFIED @@ -2,11 +2,20 @@ This is a modified version of NASM, modified and released by H. Peter Anvin ; it is not the original form released by the NASM authors. +For release 0.98p3.4: + +* Made at least an attempt to modify all the additional Makefiles (in + the Mkfiles directory). I can't test it, but this was the best I + could do. +* DOS DJGPP+"Opus Make" Makefile from John S. Fine. +* changes.asm changes from John S. Fine. + + For release 0.98p3.3: * Patch from Conan Brink to allow nesting of %rep directives. * If we're going to allow INT01 as an alias for INT1/ICEBP (one of - John's J4 changes), then we should allow INT03 as an alias for INT3 + Jules 0.98p3 changes), then we should allow INT03 as an alias for INT3 as well. * Updated changes.asm to include the latest changes. * Tried to clean up the s that had snuck in from a DOS/Windows diff --git a/Mkfiles/Makefile.bc2 b/Mkfiles/Makefile.bc2 index 92ec9d2..0e8961a 100644 --- a/Mkfiles/Makefile.bc2 +++ b/Mkfiles/Makefile.bc2 @@ -13,7 +13,7 @@ # over. # # It does show a few of my preferances, like putting the OBJ files -# in a seperat directory, but if you just set OBJD to '.', it will +# in a seperate directory, but if you just set OBJD to '.', it will # drop them all in the current directory (though you still need to # make the directory it's self). # @@ -138,50 +138,50 @@ ndisasm$(EXE): $(NDISASMOBJS) ################################################################ # Dependencies for all of NASM's obj files -$(OBJD)assemble.$(OBJ): assemble.c nasm.h assemble.h insns.h +$(OBJD)assemble.$(OBJ): assemble.c nasm.h insnsi.h assemble.h insns.h $(NASM_ASM) -$(OBJD)float.$(OBJ): float.c nasm.h +$(OBJD)float.$(OBJ): float.c nasm.h insnsi.h $(NASM_ASM) -$(OBJD)labels.$(OBJ): labels.c nasm.h nasmlib.h +$(OBJD)labels.$(OBJ): labels.c nasm.h insnsi.h nasmlib.h $(NASM_ASM) -$(OBJD)listing.$(OBJ): listing.c nasm.h nasmlib.h listing.h +$(OBJD)listing.$(OBJ): listing.c nasm.h insnsi.h nasmlib.h listing.h $(NASM_ASM) -$(OBJD)eval.$(OBJ): eval.c nasm.h nasmlib.h eval.h +$(OBJD)eval.$(OBJ): eval.c nasm.h insnsi.h nasmlib.h eval.h $(NASM_ASM) -$(OBJD)nasm.$(OBJ): nasm.c nasm.h nasmlib.h parser.h assemble.h labels.h \ +$(OBJD)nasm.$(OBJ): nasm.c nasm.h insnsi.h nasmlib.h parser.h assemble.h labels.h \ listing.h outform.h $(NASM_ASM) -$(OBJD)nasmlib.$(OBJ): nasmlib.c nasm.h nasmlib.h +$(OBJD)nasmlib.$(OBJ): nasmlib.c nasm.h insnsi.h nasmlib.h $(NASM_ASM) -$(OBJD)parser.$(OBJ): parser.c nasm.h nasmlib.h parser.h float.h names.c +$(OBJD)parser.$(OBJ): parser.c nasm.h insnsi.h nasmlib.h parser.h float.h names.c insnsn.c $(NASM_ASM) -$(OBJD)preproc.$(OBJ): preproc.c macros.c preproc.h nasm.h nasmlib.h +$(OBJD)preproc.$(OBJ): preproc.c macros.c preproc.h nasm.h insnsi.h nasmlib.h $(NASM_ASM) -$(OBJD)insnsa.$(OBJ): insnsa.c nasm.h insns.h +$(OBJD)insnsa.$(OBJ): insnsa.c nasm.h insnsi.h insns.h $(NASM_ASM) ################################################################ # Dependencies for all of NDISASM's obj files -$(OBJD)disasm.$(OBJ): disasm.c nasm.h disasm.h sync.h insns.h names.c +$(OBJD)disasm.$(OBJ): disasm.c nasm.h insnsi.h disasm.h sync.h insns.h names.c insnsn.c $(DASM_ASM) -$(OBJD)ndisasm.$(OBJ): ndisasm.c nasm.h sync.h disasm.h +$(OBJD)ndisasm.$(OBJ): ndisasm.c nasm.h insnsi.h sync.h disasm.h $(DASM_ASM) $(OBJD)sync.$(OBJ): sync.c sync.h $(DASM_ASM) -$(OBJD)insnsd.$(OBJ): insnsd.c nasm.h insns.h +$(OBJD)insnsd.$(OBJ): insnsd.c nasm.h insnsi.h insns.h $(DASM_ASM) # This is a kludge from the word go, as we can't use the nasmlib.obj compiled @@ -194,37 +194,37 @@ $(OBJD)insnsd.$(OBJ): insnsd.c nasm.h insns.h # the -o... switch tells it the name to compile the obj file to, right here # $(OBJD)nasmlibd.obj -$(OBJD)nasmlibd.$(OBJ): nasmlib.c nasm.h nasmlib.h +$(OBJD)nasmlibd.$(OBJ): nasmlib.c nasm.h insnsi.h nasmlib.h $(CC) $(DCCFLAGS) -o$(OBJD)nasmlibd.obj nasmlib.c ################################################################ # Dependencies for all of the output format's OBJ files -$(OBJD)outas86.$(OBJ): outas86.c nasm.h nasmlib.h +$(OBJD)outas86.$(OBJ): outas86.c nasm.h insnsi.h nasmlib.h $(NASM_ASM) -$(OBJD)outaout.$(OBJ): outaout.c nasm.h nasmlib.h +$(OBJD)outaout.$(OBJ): outaout.c nasm.h insnsi.h nasmlib.h $(NASM_ASM) -$(OBJD)outbin.$(OBJ): outbin.c nasm.h nasmlib.h +$(OBJD)outbin.$(OBJ): outbin.c nasm.h insnsi.h nasmlib.h $(NASM_ASM) -$(OBJD)outcoff.$(OBJ): outcoff.c nasm.h nasmlib.h +$(OBJD)outcoff.$(OBJ): outcoff.c nasm.h insnsi.h nasmlib.h $(NASM_ASM) -$(OBJD)outdbg.$(OBJ): outdbg.c nasm.h nasmlib.h +$(OBJD)outdbg.$(OBJ): outdbg.c nasm.h insnsi.h nasmlib.h $(NASM_ASM) -$(OBJD)outelf.$(OBJ): outelf.c nasm.h nasmlib.h +$(OBJD)outelf.$(OBJ): outelf.c nasm.h insnsi.h nasmlib.h $(NASM_ASM) -$(OBJD)outobj.$(OBJ): outobj.c nasm.h nasmlib.h +$(OBJD)outobj.$(OBJ): outobj.c nasm.h insnsi.h nasmlib.h $(NASM_ASM) -$(OBJD)outrdf.$(OBJ): outrdf.c nasm.h nasmlib.h +$(OBJD)outrdf.$(OBJ): outrdf.c nasm.h insnsi.h nasmlib.h $(NASM_ASM) -$(OBJD)outform.$(OBJ): outform.c outform.h nasm.h +$(OBJD)outform.$(OBJ): outform.c outform.h nasm.h insnsi.h $(NASM_ASM) ################################################################ diff --git a/Mkfiles/Makefile.bor b/Mkfiles/Makefile.bor index 90e96fb..4cdb423 100644 --- a/Mkfiles/Makefile.bor +++ b/Mkfiles/Makefile.bor @@ -51,29 +51,29 @@ ndisasm$(EXE): $(NDISASMOBJS) # $(LINK) /Fendisasm.exe $(NDISASMOBJS) $(LINK) /Tde $(NDISASMOBJS),ndisasm.exe,,cl.lib, -assemble.$(OBJ): assemble.c nasm.h assemble.h insns.h -disasm.$(OBJ): disasm.c nasm.h disasm.h sync.h insns.h names.c -eval.$(OBJ): eval.c nasm.h nasmlib.h eval.h -float.$(OBJ): float.c nasm.h -insnsa.$(OBJ): insnsa.c nasm.h insns.h -insnsd.$(OBJ): insnsd.c nasm.h insns.h -labels.$(OBJ): labels.c nasm.h nasmlib.h -listing.$(OBJ): listing.c nasm.h nasmlib.h listing.h -nasm.$(OBJ): nasm.c nasm.h nasmlib.h parser.h assemble.h labels.h \ +assemble.$(OBJ): assemble.c nasm.h insnsi.h assemble.h insns.h +disasm.$(OBJ): disasm.c nasm.h insnsi.h disasm.h sync.h insns.h names.c insnsn.c +eval.$(OBJ): eval.c nasm.h insnsi.h nasmlib.h eval.h +float.$(OBJ): float.c nasm.h insnsi.h +insnsa.$(OBJ): insnsa.c nasm.h insnsi.h insns.h +insnsd.$(OBJ): insnsd.c nasm.h insnsi.h insns.h +labels.$(OBJ): labels.c nasm.h insnsi.h nasmlib.h +listing.$(OBJ): listing.c nasm.h insnsi.h nasmlib.h listing.h +nasm.$(OBJ): nasm.c nasm.h insnsi.h nasmlib.h parser.h assemble.h labels.h \ listing.h outform.h -nasmlib.$(OBJ): nasmlib.c nasm.h nasmlib.h -ndisasm.$(OBJ): ndisasm.c nasm.h sync.h disasm.h -outas86.$(OBJ): outas86.c nasm.h nasmlib.h -outaout.$(OBJ): outaout.c nasm.h nasmlib.h -outbin.$(OBJ): outbin.c nasm.h nasmlib.h -outcoff.$(OBJ): outcoff.c nasm.h nasmlib.h -outdbg.$(OBJ): outdbg.c nasm.h nasmlib.h -outelf.$(OBJ): outelf.c nasm.h nasmlib.h -outobj.$(OBJ): outobj.c nasm.h nasmlib.h -outrdf.$(OBJ): outrdf.c nasm.h nasmlib.h -outform.$(OBJ): outform.c outform.h nasm.h -parser.$(OBJ): parser.c nasm.h nasmlib.h parser.h float.h names.c -preproc.$(OBJ): preproc.c macros.c preproc.h nasm.h nasmlib.h +nasmlib.$(OBJ): nasmlib.c nasm.h insnsi.h nasmlib.h +ndisasm.$(OBJ): ndisasm.c nasm.h insnsi.h sync.h disasm.h +outas86.$(OBJ): outas86.c nasm.h insnsi.h nasmlib.h +outaout.$(OBJ): outaout.c nasm.h insnsi.h nasmlib.h +outbin.$(OBJ): outbin.c nasm.h insnsi.h nasmlib.h +outcoff.$(OBJ): outcoff.c nasm.h insnsi.h nasmlib.h +outdbg.$(OBJ): outdbg.c nasm.h insnsi.h nasmlib.h +outelf.$(OBJ): outelf.c nasm.h insnsi.h nasmlib.h +outobj.$(OBJ): outobj.c nasm.h insnsi.h nasmlib.h +outrdf.$(OBJ): outrdf.c nasm.h insnsi.h nasmlib.h +outform.$(OBJ): outform.c outform.h nasm.h insnsi.h +parser.$(OBJ): parser.c nasm.h insnsi.h nasmlib.h parser.h float.h names.c insnsn.c +preproc.$(OBJ): preproc.c macros.c preproc.h nasm.h insnsi.h nasmlib.h sync.$(OBJ): sync.c sync.h clean : diff --git a/Mkfiles/Makefile.dj b/Mkfiles/Makefile.dj index 6d932f3..0d79a48 100644 --- a/Mkfiles/Makefile.dj +++ b/Mkfiles/Makefile.dj @@ -36,37 +36,37 @@ nasm.exe: $(NASM) ndisasm.exe: $(NDISASM) $(CC) -o $@ $(NDISASM) -assemble.o: assemble.c nasm.h nasmlib.h assemble.h insns.h -disasm.o: disasm.c nasm.h disasm.h sync.h insns.h names.c -eval.o: eval.c eval.h nasm.h nasmlib.h -float.o: float.c nasm.h -insnsa.o: insnsa.c nasm.h insns.h -insnsd.o: insnsd.c nasm.h insns.h -labels.o: labels.c nasm.h nasmlib.h -listing.o: listing.c nasm.h nasmlib.h listing.h -nasm.o: nasm.c nasm.h nasmlib.h preproc.h parser.h assemble.h labels.h \ +assemble.o: assemble.c nasm.h insnsi.h nasmlib.h assemble.h insns.h +disasm.o: disasm.c nasm.h insnsi.h disasm.h sync.h insns.h names.c insnsn.c +eval.o: eval.c eval.h nasm.h insnsi.h nasmlib.h +float.o: float.c nasm.h insnsi.h +insnsa.o: insnsa.c nasm.h insnsi.h insns.h +insnsd.o: insnsd.c nasm.h insnsi.h insns.h +labels.o: labels.c nasm.h insnsi.h nasmlib.h +listing.o: listing.c nasm.h insnsi.h nasmlib.h listing.h +nasm.o: nasm.c nasm.h insnsi.h nasmlib.h preproc.h parser.h assemble.h labels.h \ outform.h listing.h -nasmlib.o: nasmlib.c nasm.h nasmlib.h -ndisasm.o: ndisasm.c nasm.h nasmlib.h sync.h disasm.h -outaout.o: outaout.c nasm.h nasmlib.h outform.h -outas86.o: outas86.c nasm.h nasmlib.h outform.h -outbin.o: outbin.c nasm.h nasmlib.h outform.h -outcoff.o: outcoff.c nasm.h nasmlib.h outform.h -outdbg.o: outdbg.c nasm.h nasmlib.h outform.h -outelf.o: outelf.c nasm.h nasmlib.h outform.h -outform.o: outform.c outform.h nasm.h -outobj.o: outobj.c nasm.h nasmlib.h outform.h -outrdf.o: outrdf.c nasm.h nasmlib.h outform.h -parser.o: parser.c nasm.h nasmlib.h parser.h float.h names.c -preproc.o: preproc.c nasm.h nasmlib.h macros.c +nasmlib.o: nasmlib.c nasm.h insnsi.h nasmlib.h +ndisasm.o: ndisasm.c nasm.h insnsi.h nasmlib.h sync.h disasm.h +outaout.o: outaout.c nasm.h insnsi.h nasmlib.h outform.h +outas86.o: outas86.c nasm.h insnsi.h nasmlib.h outform.h +outbin.o: outbin.c nasm.h insnsi.h nasmlib.h outform.h +outcoff.o: outcoff.c nasm.h insnsi.h nasmlib.h outform.h +outdbg.o: outdbg.c nasm.h insnsi.h nasmlib.h outform.h +outelf.o: outelf.c nasm.h insnsi.h nasmlib.h outform.h +outform.o: outform.c outform.h nasm.h insnsi.h +outobj.o: outobj.c nasm.h insnsi.h nasmlib.h outform.h +outrdf.o: outrdf.c nasm.h insnsi.h nasmlib.h outform.h +parser.o: parser.c nasm.h insnsi.h nasmlib.h parser.h float.h names.c insnsn.c +preproc.o: preproc.c nasm.h insnsi.h nasmlib.h macros.c sync.o: sync.c sync.h -# These two source files are automagically generated from a single +# These source files are automagically generated from a single # instruction-table file by a Perl script. They're distributed, # though, so it isn't necessary to have Perl just to recompile NASM # from the distribution. -insnsa.c insnsd.c: insns.dat insns.pl +insnsa.c insnsd.c insnsi.h insnsn.c: insns.dat insns.pl perl insns.pl insns.dat # This source file is generated from the standard macros file diff --git a/Mkfiles/Makefile.djo b/Mkfiles/Makefile.djo new file mode 100644 index 0000000..575abdc --- /dev/null +++ b/Mkfiles/Makefile.djo @@ -0,0 +1,187 @@ +# host: dos +# target: dos 16bit and 32bit +# Makefile for the Netwide Assembler +# +# This is a modification (by John Fine) of makefile.dj +# +# It uses the syntax of "Opus Make", which is the make program I prefer. +# +# It builds five targets: +# +# nasm16.exe 16-bit built with Turbo-C +# nasm.exe 32-bit built with DJGPP +# nasmd.exe nasm.exe with debug information (for use with gdb etc.) +# nasml.exe nasm.exe with logging version of malloc (to find memory leaks) +# ndisasm.exe NASM disassembler (DJGPP version) + +.SUFFIXES: +.SUFFIXES: .exe .ol .o .obj .c .dat .pl + +# The Netwide Assembler is copyright (C) 1996 Simon Tatham and +# Julian Hall. All rights reserved. The software is +# redistributable under the licence given in the file "Licence" +# distributed in the NASM archive. + +# makefile designed for djgpp 2.xx +# djgpp is GNU C compiler ported by mighty DJ Delorie +# www.delorie.com and any simtel mirror + +CC = gcc +CFLAGS = -O3 + +.c.o: +# redir -eo $(CC) -g -c -O2 -finline-functions -Wall -ansi -pedantic $*.c >$*.err + $(CC) -g -c -O2 -finline-functions -Wall -ansi -pedantic $*.c + +.c.ol: + $(CC) -DLOGALLOC -g -c -o $*.ol $(CFLAGS) $*.c + +.c.obj: + tcc -O -Z -c -ml -d -DOF_ONLY -DOF_BIN -DOF_OBJ -If:\public\turboc -I. $*.c >$*.err + +NASM = nasm.o nasmlib.o float.o insnsa.o assemble.o labels.o \ + parser.o outform.o outbin.o outaout.o outcoff.o outelf.o \ + outobj.o outas86.o outrdf.o outrdf2.o zoutieee.o outdbg.o preproc.o listing.o \ + eval.o + +NASML = nasm.ol nasmlib.ol float.ol insnsa.ol assemble.ol labels.ol \ + parser.ol outform.ol outbin.ol outaout.ol outcoff.ol outelf.ol \ + outobj.ol outas86.ol outrdf.ol outrdf2.ol zoutieee.ol outdbg.ol preproc.ol listing.ol \ + eval.ol + +NASM16 = nasm.obj nasmlib.obj float.obj insnsa.obj assemble.obj labels.obj \ + parser.obj outform.obj outbin.obj \ + outobj.obj preproc.obj listing.obj \ + eval.obj + +NDISASM = ndisasm.o disasm.o sync.o nasmlib.o insnsd.o + +nasm.exe: $(NASM) + $(CC) @<< +-s -o $@ $(NASM) +<< + djp nasm.exe + +ndisasm.exe: $(NDISASM) + $(CC) @<< +-s -o $@ $(NDISASM) +<< + djp ndisasm.exe + +nasml.exe: $(NASML) + $(CC) @<< +-s -o $@ $(NASML) +<< + +nasm16.exe: $(NASM16) + tlink @<< +f:\public\turboc\lib\c0l.obj $(NASM16) +$@ + +f:\public\turboc\lib\cl.lib +<< > nasm16.err + + +nasmd.exe: $(NASM) + $(CC) @<< +-g -o $@ $(NASM) +<< + +assemble.o: assemble.c nasm.h insnsi.h nasmlib.h assemble.h insns.h +disasm.o: disasm.c nasm.h insnsi.h disasm.h sync.h insns.h names.c insnsn.c +eval.o: eval.c eval.h nasm.h insnsi.h nasmlib.h +float.o: float.c nasm.h insnsi.h +insnsa.o: insnsa.c nasm.h insnsi.h insns.h +insnsd.o: insnsd.c nasm.h insnsi.h insns.h +labels.o: labels.c nasm.h insnsi.h nasmlib.h +listing.o: listing.c nasm.h insnsi.h nasmlib.h listing.h +nasm.o: nasm.c nasm.h insnsi.h nasmlib.h preproc.h parser.h assemble.h labels.h \ + outform.h listing.h +nasmlib.o: nasmlib.c nasm.h insnsi.h nasmlib.h +ndisasm.o: ndisasm.c nasm.h insnsi.h nasmlib.h sync.h disasm.h +outaout.o: outaout.c nasm.h insnsi.h nasmlib.h outform.h +outas86.o: outas86.c nasm.h insnsi.h nasmlib.h outform.h +outbin.o: outbin.c nasm.h insnsi.h nasmlib.h outform.h +outcoff.o: outcoff.c nasm.h insnsi.h nasmlib.h outform.h +outdbg.o: outdbg.c nasm.h insnsi.h nasmlib.h outform.h +outelf.o: outelf.c nasm.h insnsi.h nasmlib.h outform.h +outform.o: outform.c outform.h nasm.h insnsi.h +outobj.o: outobj.c nasm.h insnsi.h nasmlib.h outform.h +outrdf.o: outrdf.c nasm.h insnsi.h nasmlib.h outform.h +outrdf2.o: outrdf2.c nasm.h insnsi.h nasmlib.h outform.h +parser.o: parser.c nasm.h insnsi.h nasmlib.h parser.h float.h names.c insnsn.c +preproc.o: preproc.c nasm.h insnsi.h nasmlib.h macros.c +sync.o: sync.c sync.h +zoutieee.o: zoutieee.c nasm.h insnsi.h nasmlib.h outform.h + +assemble.ol: assemble.c nasm.h insnsi.h nasmlib.h assemble.h insns.h +disasm.ol: disasm.c nasm.h insnsi.h disasm.h sync.h insns.h names.c insnsn.c +eval.ol: eval.c eval.h nasm.h insnsi.h nasmlib.h +float.ol: float.c nasm.h insnsi.h +insnsa.ol: insnsa.c nasm.h insnsi.h insns.h +insnsd.ol: insnsd.c nasm.h insnsi.h insns.h +labels.ol: labels.c nasm.h insnsi.h nasmlib.h +listing.ol: listing.c nasm.h insnsi.h nasmlib.h listing.h +nasm.ol: nasm.c nasm.h insnsi.h nasmlib.h preproc.h parser.h assemble.h labels.h \ + outform.h listing.h +nasmlib.ol: nasmlib.c nasm.h insnsi.h nasmlib.h +ndisasm.ol: ndisasm.c nasm.h insnsi.h nasmlib.h sync.h disasm.h +outaout.ol: outaout.c nasm.h insnsi.h nasmlib.h outform.h +outas86.ol: outas86.c nasm.h insnsi.h nasmlib.h outform.h +outbin.ol: outbin.c nasm.h insnsi.h nasmlib.h outform.h +outcoff.ol: outcoff.c nasm.h insnsi.h nasmlib.h outform.h +outdbg.ol: outdbg.c nasm.h insnsi.h nasmlib.h outform.h +outelf.ol: outelf.c nasm.h insnsi.h nasmlib.h outform.h +outform.ol: outform.c outform.h nasm.h insnsi.h +outobj.ol: outobj.c nasm.h insnsi.h nasmlib.h outform.h +outrdf.ol: outrdf.c nasm.h insnsi.h nasmlib.h outform.h +outrdf2.ol: outrdf2.c nasm.h insnsi.h nasmlib.h outform.h +parser.ol: parser.c nasm.h insnsi.h nasmlib.h parser.h float.h names.c insnsn.c +preproc.ol: preproc.c nasm.h insnsi.h nasmlib.h macros.c +sync.ol: sync.c sync.h +zoutieee.ol: zoutieee.c nasm.h insnsi.h nasmlib.h outform.h + +assemble.obj: assemble.c nasm.h insnsi.h nasmlib.h assemble.h insns.h +disasm.obj: disasm.c nasm.h insnsi.h disasm.h sync.h insns.h names.c insnsn.c +eval.obj: eval.c eval.h nasm.h insnsi.h nasmlib.h +float.obj: float.c nasm.h insnsi.h +insnsa.obj: insnsa.c nasm.h insnsi.h insns.h +insnsd.obj: insnsd.c nasm.h insnsi.h insns.h +labels.obj: labels.c nasm.h insnsi.h nasmlib.h +listing.obj: listing.c nasm.h insnsi.h nasmlib.h listing.h +nasm.obj: nasm.c nasm.h insnsi.h nasmlib.h preproc.h parser.h assemble.h labels.h \ + outform.h listing.h +nasmlib.obj: nasmlib.c nasm.h insnsi.h nasmlib.h +ndisasm.obj: ndisasm.c nasm.h insnsi.h nasmlib.h sync.h disasm.h +outaout.obj: outaout.c nasm.h insnsi.h nasmlib.h outform.h +outas86.obj: outas86.c nasm.h insnsi.h nasmlib.h outform.h +outbin.obj: outbin.c nasm.h insnsi.h nasmlib.h outform.h +outcoff.obj: outcoff.c nasm.h insnsi.h nasmlib.h outform.h +outdbg.obj: outdbg.c nasm.h insnsi.h nasmlib.h outform.h +outelf.obj: outelf.c nasm.h insnsi.h nasmlib.h outform.h +outform.obj: outform.c outform.h nasm.h insnsi.h +outobj.obj: outobj.c nasm.h insnsi.h nasmlib.h outform.h +outrdf.obj: outrdf.c nasm.h insnsi.h nasmlib.h outform.h +outrdf2.obj: outrdf2.c nasm.h insnsi.h nasmlib.h outform.h +parser.obj: parser.c nasm.h insnsi.h nasmlib.h parser.h float.h names.c insnsn.c +preproc.obj: preproc.c nasm.h insnsi.h nasmlib.h macros.c +sync.obj: sync.c sync.h +zoutieee.obj: zoutieee.c nasm.h insnsi.h nasmlib.h outform.h + +# These four source files are automagically generated from a single +# instruction-table file by a Perl script. They're distributed, +# though, so it isn't necessary to have Perl just to recompile NASM +# from the distribution. + +insnsa.c insnsd.c insnsi.h insnsn.c: insns.dat insns.pl + perl insns.pl insns.dat + +# This source file is generated from the standard macros file +# `standard.mac' by another Perl script. Again, it's part of the +# standard distribution. + +macros.c: standard.mac macros.pl + perl macros.pl standard.mac + +clean: + rm -f *.o nasm ndisasm diff --git a/Mkfiles/Makefile.dos b/Mkfiles/Makefile.dos index 94403fc..99b20d2 100644 --- a/Mkfiles/Makefile.dos +++ b/Mkfiles/Makefile.dos @@ -41,35 +41,35 @@ nasm$(EXE): $(NASMOBJS) ndisasm$(EXE): $(NDISASMOBJS) cl /Fendisasm.exe $(NDISASMOBJS) -assemble.$(OBJ): assemble.c nasm.h assemble.h insns.h -disasm.$(OBJ): disasm.c nasm.h disasm.h sync.h insns.h names.c -eval.$(OBJ): eval.c eval.h nasm.h nasmlib.h -float.$(OBJ): float.c nasm.h -labels.$(OBJ): labels.c nasm.h nasmlib.h -listing.$(OBJ): listing.c nasm.h nasmlib.h listing.h -nasm.$(OBJ): nasm.c nasm.h nasmlib.h parser.h assemble.h labels.h \ +assemble.$(OBJ): assemble.c nasm.h insnsi.h assemble.h insns.h +disasm.$(OBJ): disasm.c nasm.h insnsi.h disasm.h sync.h insns.h names.c insnsn.c +eval.$(OBJ): eval.c eval.h nasm.h insnsi.h nasmlib.h +float.$(OBJ): float.c nasm.h insnsi.h +labels.$(OBJ): labels.c nasm.h insnsi.h nasmlib.h +listing.$(OBJ): listing.c nasm.h insnsi.h nasmlib.h listing.h +nasm.$(OBJ): nasm.c nasm.h insnsi.h nasmlib.h parser.h assemble.h labels.h \ listing.h outform.h -nasmlib.$(OBJ): nasmlib.c nasm.h nasmlib.h -ndisasm.$(OBJ): ndisasm.c nasm.h sync.h disasm.h -outas86.$(OBJ): outas86.c nasm.h nasmlib.h -outaout.$(OBJ): outaout.c nasm.h nasmlib.h -outbin.$(OBJ): outbin.c nasm.h nasmlib.h -outcoff.$(OBJ): outcoff.c nasm.h nasmlib.h -outdbg.$(OBJ): outdbg.c nasm.h nasmlib.h -outelf.$(OBJ): outelf.c nasm.h nasmlib.h -outobj.$(OBJ): outobj.c nasm.h nasmlib.h -outrdf.$(OBJ): outrdf.c nasm.h nasmlib.h -outform.$(OBJ): outform.c outform.h nasm.h -parser.$(OBJ): parser.c nasm.h nasmlib.h parser.h float.h names.c -preproc.$(OBJ): preproc.c macros.c preproc.h nasm.h nasmlib.h +nasmlib.$(OBJ): nasmlib.c nasm.h insnsi.h nasmlib.h +ndisasm.$(OBJ): ndisasm.c nasm.h insnsi.h sync.h disasm.h +outas86.$(OBJ): outas86.c nasm.h insnsi.h nasmlib.h +outaout.$(OBJ): outaout.c nasm.h insnsi.h nasmlib.h +outbin.$(OBJ): outbin.c nasm.h insnsi.h nasmlib.h +outcoff.$(OBJ): outcoff.c nasm.h insnsi.h nasmlib.h +outdbg.$(OBJ): outdbg.c nasm.h insnsi.h nasmlib.h +outelf.$(OBJ): outelf.c nasm.h insnsi.h nasmlib.h +outobj.$(OBJ): outobj.c nasm.h insnsi.h nasmlib.h +outrdf.$(OBJ): outrdf.c nasm.h insnsi.h nasmlib.h +outform.$(OBJ): outform.c outform.h nasm.h insnsi.h +parser.$(OBJ): parser.c nasm.h insnsi.h nasmlib.h parser.h float.h names.c insnsn.c +preproc.$(OBJ): preproc.c macros.c preproc.h nasm.h insnsi.h nasmlib.h sync.$(OBJ): sync.c sync.h # Another grotty hack: QC is less likely to run out of memory than # CL proper; and we don't need any optimisation in these modules # since they're just data. -insnsa.$(OBJ): insnsa.c nasm.h insns.h +insnsa.$(OBJ): insnsa.c nasm.h insnsi.h insns.h $(QCL) insnsa.c -insnsd.$(OBJ): insnsd.c nasm.h insns.h +insnsd.$(OBJ): insnsd.c nasm.h insnsi.h insns.h $(QCL) insnsd.c clean : diff --git a/Mkfiles/Makefile.lcc b/Mkfiles/Makefile.lcc index 1f6fdcb..8b58e86 100644 --- a/Mkfiles/Makefile.lcc +++ b/Mkfiles/Makefile.lcc @@ -66,37 +66,37 @@ nasm: $(NASM) nasm.lnk ndisasm: $(NDISASM) ndisasm.lnk $(LD) -o ndisasm.exe @ndisasm.lnk -assemble.${OBJ}: assemble.c nasm.h nasmlib.h assemble.h insns.h -disasm.${OBJ}: disasm.c nasm.h disasm.h sync.h insns.h names.c -eval.${OBJ}: eval.c eval.h nasm.h nasmlib.h -float.${OBJ}: float.c nasm.h -insnsa.${OBJ}: insnsa.c nasm.h insns.h -insnsd.${OBJ}: insnsd.c nasm.h insns.h -labels.${OBJ}: labels.c nasm.h nasmlib.h -listing.${OBJ}: listing.c nasm.h nasmlib.h listing.h -nasm.${OBJ}: nasm.c nasm.h nasmlib.h preproc.h parser.h assemble.h labels.h \ +assemble.${OBJ}: assemble.c nasm.h insnsi.h nasmlib.h assemble.h insns.h +disasm.${OBJ}: disasm.c nasm.h insnsi.h disasm.h sync.h insns.h names.c insnsn.c +eval.${OBJ}: eval.c eval.h nasm.h insnsi.h nasmlib.h +float.${OBJ}: float.c nasm.h insnsi.h +insnsa.${OBJ}: insnsa.c nasm.h insnsi.h insns.h +insnsd.${OBJ}: insnsd.c nasm.h insnsi.h insns.h +labels.${OBJ}: labels.c nasm.h insnsi.h nasmlib.h +listing.${OBJ}: listing.c nasm.h insnsi.h nasmlib.h listing.h +nasm.${OBJ}: nasm.c nasm.h insnsi.h nasmlib.h preproc.h parser.h assemble.h labels.h \ outform.h listing.h -nasmlib.${OBJ}: nasmlib.c nasm.h nasmlib.h -ndisasm.${OBJ}: ndisasm.c nasm.h nasmlib.h sync.h disasm.h -outaout.${OBJ}: outaout.c nasm.h nasmlib.h outform.h -outas86.${OBJ}: outas86.c nasm.h nasmlib.h outform.h -outbin.${OBJ}: outbin.c nasm.h nasmlib.h outform.h -outcoff.${OBJ}: outcoff.c nasm.h nasmlib.h outform.h -outdbg.${OBJ}: outdbg.c nasm.h nasmlib.h outform.h -outelf.${OBJ}: outelf.c nasm.h nasmlib.h outform.h -outform.${OBJ}: outform.c outform.h nasm.h -outobj.${OBJ}: outobj.c nasm.h nasmlib.h outform.h -outrdf.${OBJ}: outrdf.c nasm.h nasmlib.h outform.h -parser.${OBJ}: parser.c nasm.h nasmlib.h parser.h float.h names.c -preproc.${OBJ}: preproc.c nasm.h nasmlib.h macros.c +nasmlib.${OBJ}: nasmlib.c nasm.h insnsi.h nasmlib.h +ndisasm.${OBJ}: ndisasm.c nasm.h insnsi.h nasmlib.h sync.h disasm.h +outaout.${OBJ}: outaout.c nasm.h insnsi.h nasmlib.h outform.h +outas86.${OBJ}: outas86.c nasm.h insnsi.h nasmlib.h outform.h +outbin.${OBJ}: outbin.c nasm.h insnsi.h nasmlib.h outform.h +outcoff.${OBJ}: outcoff.c nasm.h insnsi.h nasmlib.h outform.h +outdbg.${OBJ}: outdbg.c nasm.h insnsi.h nasmlib.h outform.h +outelf.${OBJ}: outelf.c nasm.h insnsi.h nasmlib.h outform.h +outform.${OBJ}: outform.c outform.h nasm.h insnsi.h +outobj.${OBJ}: outobj.c nasm.h insnsi.h nasmlib.h outform.h +outrdf.${OBJ}: outrdf.c nasm.h insnsi.h nasmlib.h outform.h +parser.${OBJ}: parser.c nasm.h insnsi.h nasmlib.h parser.h float.h names.c insnsn.c +preproc.${OBJ}: preproc.c nasm.h insnsi.h nasmlib.h macros.c sync.${OBJ}: sync.c sync.h -# These two source files are automagically generated from a single +# These source files are automagically generated from a single # instruction-table file by a Perl script. They're distributed, # though, so it isn't necessary to have Perl just to recompile NASM # from the distribution. -insnsa.c insnsd.c: insns.dat insns.pl +insnsa.c insnsd.c insnsi.h insnsn.c: insns.dat insns.pl perl insns.pl insns.dat # This source file is generated from the standard macros file diff --git a/Mkfiles/Makefile.sc b/Mkfiles/Makefile.sc index b5d0e35..c5b66fa 100644 --- a/Mkfiles/Makefile.sc +++ b/Mkfiles/Makefile.sc @@ -81,30 +81,30 @@ ndisasm.exe # modules for programs # -disasm.$(OBJ): disasm.c nasm.h disasm.h sync.h insns.h names.c -assemble.$(OBJ): assemble.c nasm.h assemble.h insns.h -eval.$(OBJ): eval.c nasm.h nasmlib.h eval.h -float.$(OBJ): float.c nasm.h -labels.$(OBJ): labels.c nasm.h nasmlib.h -listing.$(OBJ): listing.c nasm.h nasmlib.h listing.h -nasm.$(OBJ): nasm.c nasm.h nasmlib.h parser.h assemble.h labels.h \ +disasm.$(OBJ): disasm.c nasm.h insnsi.h disasm.h sync.h insns.h names.c insnsn.c +assemble.$(OBJ): assemble.c nasm.h insnsi.h assemble.h insns.h +eval.$(OBJ): eval.c nasm.h insnsi.h nasmlib.h eval.h +float.$(OBJ): float.c nasm.h insnsi.h +labels.$(OBJ): labels.c nasm.h insnsi.h nasmlib.h +listing.$(OBJ): listing.c nasm.h insnsi.h nasmlib.h listing.h +nasm.$(OBJ): nasm.c nasm.h insnsi.h nasmlib.h parser.h assemble.h labels.h \ listing.h outform.h -nasmlib.$(OBJ): nasmlib.c nasm.h nasmlib.h -ndisasm.$(OBJ): ndisasm.c nasm.h sync.h disasm.h -outas86.$(OBJ): outas86.c nasm.h nasmlib.h -outaout.$(OBJ): outaout.c nasm.h nasmlib.h -outbin.$(OBJ): outbin.c nasm.h nasmlib.h -outcoff.$(OBJ): outcoff.c nasm.h nasmlib.h -outdbg.$(OBJ): outdbg.c nasm.h nasmlib.h -outelf.$(OBJ): outelf.c nasm.h nasmlib.h -outobj.$(OBJ): outobj.c nasm.h nasmlib.h -outrdf.$(OBJ): outrdf.c nasm.h nasmlib.h -outform.$(OBJ): outform.c outform.h nasm.h -parser.$(OBJ): parser.c nasm.h nasmlib.h parser.h float.h names.c -preproc.$(OBJ): preproc.c macros.c preproc.h nasm.h nasmlib.h +nasmlib.$(OBJ): nasmlib.c nasm.h insnsi.h nasmlib.h +ndisasm.$(OBJ): ndisasm.c nasm.h insnsi.h sync.h disasm.h +outas86.$(OBJ): outas86.c nasm.h insnsi.h nasmlib.h +outaout.$(OBJ): outaout.c nasm.h insnsi.h nasmlib.h +outbin.$(OBJ): outbin.c nasm.h insnsi.h nasmlib.h +outcoff.$(OBJ): outcoff.c nasm.h insnsi.h nasmlib.h +outdbg.$(OBJ): outdbg.c nasm.h insnsi.h nasmlib.h +outelf.$(OBJ): outelf.c nasm.h insnsi.h nasmlib.h +outobj.$(OBJ): outobj.c nasm.h insnsi.h nasmlib.h +outrdf.$(OBJ): outrdf.c nasm.h insnsi.h nasmlib.h +outform.$(OBJ): outform.c outform.h nasm.h insnsi.h +parser.$(OBJ): parser.c nasm.h insnsi.h nasmlib.h parser.h float.h names.c insnsn.c +preproc.$(OBJ): preproc.c macros.c preproc.h nasm.h insnsi.h nasmlib.h sync.$(OBJ): sync.c sync.h -insnsa.$(OBJ): insnsa.c nasm.h insns.h -insnsd.$(OBJ): insnsd.c nasm.h insns.h +insnsa.$(OBJ): insnsa.c nasm.h insnsi.h insns.h +insnsd.$(OBJ): insnsd.c nasm.h insnsi.h insns.h diff --git a/Mkfiles/Makefile.scw b/Mkfiles/Makefile.scw index 6953b46..075d89a 100644 --- a/Mkfiles/Makefile.scw +++ b/Mkfiles/Makefile.scw @@ -81,30 +81,30 @@ ndisasmw.exe; # modules for programs # -disasm.$(OBJ): disasm.c nasm.h disasm.h sync.h insns.h names.c -assemble.$(OBJ): assemble.c nasm.h assemble.h insns.h -eval.$(OBJ): eval.c nasm.h nasmlib.h eval.h -float.$(OBJ): float.c nasm.h -labels.$(OBJ): labels.c nasm.h nasmlib.h -listing.$(OBJ): listing.c nasm.h nasmlib.h listing.h -nasm.$(OBJ): nasm.c nasm.h nasmlib.h parser.h assemble.h labels.h \ +disasm.$(OBJ): disasm.c nasm.h insnsi.h disasm.h sync.h insns.h names.c insnsn.c +assemble.$(OBJ): assemble.c nasm.h insnsi.h assemble.h insns.h +eval.$(OBJ): eval.c nasm.h insnsi.h nasmlib.h eval.h +float.$(OBJ): float.c nasm.h insnsi.h +labels.$(OBJ): labels.c nasm.h insnsi.h nasmlib.h +listing.$(OBJ): listing.c nasm.h insnsi.h nasmlib.h listing.h +nasm.$(OBJ): nasm.c nasm.h insnsi.h nasmlib.h parser.h assemble.h labels.h \ listing.h outform.h -nasmlib.$(OBJ): nasmlib.c nasm.h nasmlib.h -ndisasm.$(OBJ): ndisasm.c nasm.h sync.h disasm.h -outas86.$(OBJ): outas86.c nasm.h nasmlib.h -outaout.$(OBJ): outaout.c nasm.h nasmlib.h -outbin.$(OBJ): outbin.c nasm.h nasmlib.h -outcoff.$(OBJ): outcoff.c nasm.h nasmlib.h -outdbg.$(OBJ): outdbg.c nasm.h nasmlib.h -outelf.$(OBJ): outelf.c nasm.h nasmlib.h -outobj.$(OBJ): outobj.c nasm.h nasmlib.h -outrdf.$(OBJ): outrdf.c nasm.h nasmlib.h -outform.$(OBJ): outform.c outform.h nasm.h -parser.$(OBJ): parser.c nasm.h nasmlib.h parser.h float.h names.c -preproc.$(OBJ): preproc.c macros.c preproc.h nasm.h nasmlib.h +nasmlib.$(OBJ): nasmlib.c nasm.h insnsi.h nasmlib.h +ndisasm.$(OBJ): ndisasm.c nasm.h insnsi.h sync.h disasm.h +outas86.$(OBJ): outas86.c nasm.h insnsi.h nasmlib.h +outaout.$(OBJ): outaout.c nasm.h insnsi.h nasmlib.h +outbin.$(OBJ): outbin.c nasm.h insnsi.h nasmlib.h +outcoff.$(OBJ): outcoff.c nasm.h insnsi.h nasmlib.h +outdbg.$(OBJ): outdbg.c nasm.h insnsi.h nasmlib.h +outelf.$(OBJ): outelf.c nasm.h insnsi.h nasmlib.h +outobj.$(OBJ): outobj.c nasm.h insnsi.h nasmlib.h +outrdf.$(OBJ): outrdf.c nasm.h insnsi.h nasmlib.h +outform.$(OBJ): outform.c outform.h nasm.h insnsi.h +parser.$(OBJ): parser.c nasm.h insnsi.h nasmlib.h parser.h float.h names.c insnsn.c +preproc.$(OBJ): preproc.c macros.c preproc.h nasm.h insnsi.h nasmlib.h sync.$(OBJ): sync.c sync.h -insnsa.$(OBJ): insnsa.c nasm.h insns.h -insnsd.$(OBJ): insnsd.c nasm.h insns.h +insnsa.$(OBJ): insnsa.c nasm.h insnsi.h insns.h +insnsd.$(OBJ): insnsd.c nasm.h insnsi.h insns.h diff --git a/Mkfiles/Makefile.unx b/Mkfiles/Makefile.unx index f74d544..ec128f6 100644 --- a/Mkfiles/Makefile.unx +++ b/Mkfiles/Makefile.unx @@ -40,37 +40,37 @@ nasm: $(NASM) ndisasm: $(NDISASM) $(CC) -o ndisasm $(NDISASM) -assemble.o: assemble.c nasm.h nasmlib.h assemble.h insns.h -disasm.o: disasm.c nasm.h disasm.h sync.h insns.h names.c -eval.o: eval.c eval.h nasm.h nasmlib.h -float.o: float.c nasm.h -insnsa.o: insnsa.c nasm.h insns.h -insnsd.o: insnsd.c nasm.h insns.h -labels.o: labels.c nasm.h nasmlib.h -listing.o: listing.c nasm.h nasmlib.h listing.h -nasm.o: nasm.c nasm.h nasmlib.h preproc.h parser.h assemble.h labels.h \ +assemble.o: assemble.c nasm.h insnsi.h nasmlib.h assemble.h insns.h +disasm.o: disasm.c nasm.h insnsi.h disasm.h sync.h insns.h names.c insnsn.c +eval.o: eval.c eval.h nasm.h insnsi.h nasmlib.h +float.o: float.c nasm.h insnsi.h +insnsa.o: insnsa.c nasm.h insnsi.h insns.h +insnsd.o: insnsd.c nasm.h insnsi.h insns.h +labels.o: labels.c nasm.h insnsi.h nasmlib.h +listing.o: listing.c nasm.h insnsi.h nasmlib.h listing.h +nasm.o: nasm.c nasm.h insnsi.h nasmlib.h preproc.h parser.h assemble.h labels.h \ outform.h listing.h -nasmlib.o: nasmlib.c nasm.h nasmlib.h -ndisasm.o: ndisasm.c nasm.h nasmlib.h sync.h disasm.h -outaout.o: outaout.c nasm.h nasmlib.h outform.h -outas86.o: outas86.c nasm.h nasmlib.h outform.h -outbin.o: outbin.c nasm.h nasmlib.h outform.h -outcoff.o: outcoff.c nasm.h nasmlib.h outform.h -outdbg.o: outdbg.c nasm.h nasmlib.h outform.h -outelf.o: outelf.c nasm.h nasmlib.h outform.h -outform.o: outform.c outform.h nasm.h -outobj.o: outobj.c nasm.h nasmlib.h outform.h -outrdf.o: outrdf.c nasm.h nasmlib.h outform.h -parser.o: parser.c nasm.h nasmlib.h parser.h float.h names.c -preproc.o: preproc.c nasm.h nasmlib.h macros.c +nasmlib.o: nasmlib.c nasm.h insnsi.h nasmlib.h +ndisasm.o: ndisasm.c nasm.h insnsi.h nasmlib.h sync.h disasm.h +outaout.o: outaout.c nasm.h insnsi.h nasmlib.h outform.h +outas86.o: outas86.c nasm.h insnsi.h nasmlib.h outform.h +outbin.o: outbin.c nasm.h insnsi.h nasmlib.h outform.h +outcoff.o: outcoff.c nasm.h insnsi.h nasmlib.h outform.h +outdbg.o: outdbg.c nasm.h insnsi.h nasmlib.h outform.h +outelf.o: outelf.c nasm.h insnsi.h nasmlib.h outform.h +outform.o: outform.c outform.h nasm.h insnsi.h +outobj.o: outobj.c nasm.h insnsi.h nasmlib.h outform.h +outrdf.o: outrdf.c nasm.h insnsi.h nasmlib.h outform.h +parser.o: parser.c nasm.h insnsi.h nasmlib.h parser.h float.h names.c insnsn.c +preproc.o: preproc.c nasm.h insnsi.h nasmlib.h macros.c sync.o: sync.c sync.h -# These two source files are automagically generated from a single +# These source files are automagically generated from a single # instruction-table file by a Perl script. They're distributed, # though, so it isn't necessary to have Perl just to recompile NASM # from the distribution. -insnsa.c insnsd.c: insns.dat insns.pl +insnsa.c insnsd.c insnsi.h insnsn.c: insns.dat insns.pl perl insns.pl insns.dat # This source file is generated from the standard macros file diff --git a/Mkfiles/Makefile.vc b/Mkfiles/Makefile.vc index 80beba4..e100d31 100644 --- a/Mkfiles/Makefile.vc +++ b/Mkfiles/Makefile.vc @@ -40,35 +40,35 @@ nasm$(SUFFIX)$(EXE): $(NASMOBJS) ndisasm$(SUFFIX)$(EXE): $(NDISASMOBJS) cl /Fendisasm$(SUFFIX).exe $(NDISASMOBJS) -assemble.$(OBJ): assemble.c nasm.h assemble.h insns.h -disasm.$(OBJ): disasm.c nasm.h disasm.h sync.h insns.h names.c -eval.$(OBJ): eval.c nasm.h nasmlib.h eval.h -float.$(OBJ): float.c nasm.h -labels.$(OBJ): labels.c nasm.h nasmlib.h -listing.$(OBJ): listing.c nasm.h nasmlib.h listing.h -nasm.$(OBJ): nasm.c nasm.h nasmlib.h parser.h assemble.h labels.h \ +assemble.$(OBJ): assemble.c nasm.h insnsi.h assemble.h insns.h +disasm.$(OBJ): disasm.c nasm.h insnsi.h disasm.h sync.h insns.h names.c insnsn.c +eval.$(OBJ): eval.c nasm.h insnsi.h nasmlib.h eval.h +float.$(OBJ): float.c nasm.h insnsi.h +labels.$(OBJ): labels.c nasm.h insnsi.h nasmlib.h +listing.$(OBJ): listing.c nasm.h insnsi.h nasmlib.h listing.h +nasm.$(OBJ): nasm.c nasm.h insnsi.h nasmlib.h parser.h assemble.h labels.h \ listing.h outform.h -nasmlib.$(OBJ): nasmlib.c nasm.h nasmlib.h -ndisasm.$(OBJ): ndisasm.c nasm.h sync.h disasm.h -outas86.$(OBJ): outas86.c nasm.h nasmlib.h -outaout.$(OBJ): outaout.c nasm.h nasmlib.h -outbin.$(OBJ): outbin.c nasm.h nasmlib.h -outcoff.$(OBJ): outcoff.c nasm.h nasmlib.h -outdbg.$(OBJ): outdbg.c nasm.h nasmlib.h -outelf.$(OBJ): outelf.c nasm.h nasmlib.h -outobj.$(OBJ): outobj.c nasm.h nasmlib.h -outrdf.$(OBJ): outrdf.c nasm.h nasmlib.h -outform.$(OBJ): outform.c outform.h nasm.h -parser.$(OBJ): parser.c nasm.h nasmlib.h parser.h float.h names.c -preproc.$(OBJ): preproc.c macros.c preproc.h nasm.h nasmlib.h +nasmlib.$(OBJ): nasmlib.c nasm.h insnsi.h nasmlib.h +ndisasm.$(OBJ): ndisasm.c nasm.h insnsi.h sync.h disasm.h +outas86.$(OBJ): outas86.c nasm.h insnsi.h nasmlib.h +outaout.$(OBJ): outaout.c nasm.h insnsi.h nasmlib.h +outbin.$(OBJ): outbin.c nasm.h insnsi.h nasmlib.h +outcoff.$(OBJ): outcoff.c nasm.h insnsi.h nasmlib.h +outdbg.$(OBJ): outdbg.c nasm.h insnsi.h nasmlib.h +outelf.$(OBJ): outelf.c nasm.h insnsi.h nasmlib.h +outobj.$(OBJ): outobj.c nasm.h insnsi.h nasmlib.h +outrdf.$(OBJ): outrdf.c nasm.h insnsi.h nasmlib.h +outform.$(OBJ): outform.c outform.h nasm.h insnsi.h +parser.$(OBJ): parser.c nasm.h insnsi.h nasmlib.h parser.h float.h names.c insnsn.c +preproc.$(OBJ): preproc.c macros.c preproc.h nasm.h insnsi.h nasmlib.h sync.$(OBJ): sync.c sync.h # Another grotty hack: QC is less likely to run out of memory than # CL proper; and we don't need any optimisation in these modules # since they're just data. -insnsa.$(OBJ): insnsa.c nasm.h insns.h +insnsa.$(OBJ): insnsa.c nasm.h insnsi.h insns.h $(QCL) insnsa.c -insnsd.$(OBJ): insnsd.c nasm.h insns.h +insnsd.$(OBJ): insnsd.c nasm.h insnsi.h insns.h $(QCL) insnsd.c clean : diff --git a/Mkfiles/Makefile.wc b/Mkfiles/Makefile.wc index 6f0d48a..d08750a 100644 --- a/Mkfiles/Makefile.wc +++ b/Mkfiles/Makefile.wc @@ -88,27 +88,27 @@ NDISASM.LNK: makefile.wc echo F nasmlib.$(OBJ) >> NDISASM.LNK echo F insnsd.$(OBJ) >> NDISASM.LNK -assemble.$(OBJ): assemble.c nasm.h assemble.h insns.h -disasm.$(OBJ): disasm.c nasm.h disasm.h sync.h insns.h names.c -eval.$(OBJ): eval.c nasm.h nasmlib.h eval.h -float.$(OBJ): float.c nasm.h -insnsa.$(OBJ): insnsa.c nasm.h insns.h -insnsd.$(OBJ): insnsd.c nasm.h insns.h -labels.$(OBJ): labels.c nasm.h nasmlib.h -listing.$(OBJ): listing.c nasm.h nasmlib.h listing.h -nasm.$(OBJ): nasm.c nasm.h nasmlib.h parser.h assemble.h labels.h \ +assemble.$(OBJ): assemble.c nasm.h insnsi.h assemble.h insns.h +disasm.$(OBJ): disasm.c nasm.h insnsi.h disasm.h sync.h insns.h names.c insnsn.c +eval.$(OBJ): eval.c nasm.h insnsi.h nasmlib.h eval.h +float.$(OBJ): float.c nasm.h insnsi.h +insnsa.$(OBJ): insnsa.c nasm.h insnsi.h insns.h +insnsd.$(OBJ): insnsd.c nasm.h insnsi.h insns.h +labels.$(OBJ): labels.c nasm.h insnsi.h nasmlib.h +listing.$(OBJ): listing.c nasm.h insnsi.h nasmlib.h listing.h +nasm.$(OBJ): nasm.c nasm.h insnsi.h nasmlib.h parser.h assemble.h labels.h \ listing.h outform.h -nasmlib.$(OBJ): nasmlib.c nasm.h nasmlib.h -ndisasm.$(OBJ): ndisasm.c nasm.h sync.h disasm.h -outas86.$(OBJ): outas86.c nasm.h nasmlib.h -outaout.$(OBJ): outaout.c nasm.h nasmlib.h -outbin.$(OBJ): outbin.c nasm.h nasmlib.h -outcoff.$(OBJ): outcoff.c nasm.h nasmlib.h -outelf.$(OBJ): outelf.c nasm.h nasmlib.h -outobj.$(OBJ): outobj.c nasm.h nasmlib.h -outform.$(OBJ): outform.c outform.h nasm.h -parser.$(OBJ): parser.c nasm.h nasmlib.h parser.h float.h names.c -preproc.$(OBJ): preproc.c macros.c preproc.h nasm.h nasmlib.h +nasmlib.$(OBJ): nasmlib.c nasm.h insnsi.h nasmlib.h +ndisasm.$(OBJ): ndisasm.c nasm.h insnsi.h sync.h disasm.h +outas86.$(OBJ): outas86.c nasm.h insnsi.h nasmlib.h +outaout.$(OBJ): outaout.c nasm.h insnsi.h nasmlib.h +outbin.$(OBJ): outbin.c nasm.h insnsi.h nasmlib.h +outcoff.$(OBJ): outcoff.c nasm.h insnsi.h nasmlib.h +outelf.$(OBJ): outelf.c nasm.h insnsi.h nasmlib.h +outobj.$(OBJ): outobj.c nasm.h insnsi.h nasmlib.h +outform.$(OBJ): outform.c outform.h nasm.h insnsi.h +parser.$(OBJ): parser.c nasm.h insnsi.h nasmlib.h parser.h float.h names.c insnsn.c +preproc.$(OBJ): preproc.c macros.c preproc.h nasm.h insnsi.h nasmlib.h sync.$(OBJ): sync.c sync.h clean : diff --git a/Mkfiles/Makefile.wcw b/Mkfiles/Makefile.wcw index d592c69..d5d364d 100644 --- a/Mkfiles/Makefile.wcw +++ b/Mkfiles/Makefile.wcw @@ -88,27 +88,27 @@ NDISASM.LNK: makefile.wcw echo F nasmlib.$(OBJ) >> NDISASM.LNK echo F insnsd.$(OBJ) >> NDISASM.LNK -assemble.$(OBJ): assemble.c nasm.h assemble.h insns.h -disasm.$(OBJ): disasm.c nasm.h disasm.h sync.h insns.h names.c -eval.$(OBJ): eval.c nasm.h nasmlib.h eval.h -float.$(OBJ): float.c nasm.h -insnsa.$(OBJ): insnsa.c nasm.h insns.h -insnsd.$(OBJ): insnsd.c nasm.h insns.h -labels.$(OBJ): labels.c nasm.h nasmlib.h -listing.$(OBJ): listing.c nasm.h nasmlib.h listing.h -nasm.$(OBJ): nasm.c nasm.h nasmlib.h parser.h assemble.h labels.h \ +assemble.$(OBJ): assemble.c nasm.h insnsi.h assemble.h insns.h +disasm.$(OBJ): disasm.c nasm.h insnsi.h disasm.h sync.h insns.h names.c insnsn.c +eval.$(OBJ): eval.c nasm.h insnsi.h nasmlib.h eval.h +float.$(OBJ): float.c nasm.h insnsi.h +insnsa.$(OBJ): insnsa.c nasm.h insnsi.h insns.h +insnsd.$(OBJ): insnsd.c nasm.h insnsi.h insns.h +labels.$(OBJ): labels.c nasm.h insnsi.h nasmlib.h +listing.$(OBJ): listing.c nasm.h insnsi.h nasmlib.h listing.h +nasm.$(OBJ): nasm.c nasm.h insnsi.h nasmlib.h parser.h assemble.h labels.h \ listing.h outform.h -nasmlib.$(OBJ): nasmlib.c nasm.h nasmlib.h -ndisasm.$(OBJ): ndisasm.c nasm.h sync.h disasm.h -outas86.$(OBJ): outas86.c nasm.h nasmlib.h -outaout.$(OBJ): outaout.c nasm.h nasmlib.h -outbin.$(OBJ): outbin.c nasm.h nasmlib.h -outcoff.$(OBJ): outcoff.c nasm.h nasmlib.h -outelf.$(OBJ): outelf.c nasm.h nasmlib.h -outobj.$(OBJ): outobj.c nasm.h nasmlib.h -outform.$(OBJ): outform.c outform.h nasm.h -parser.$(OBJ): parser.c nasm.h nasmlib.h parser.h float.h names.c -preproc.$(OBJ): preproc.c macros.c preproc.h nasm.h nasmlib.h +nasmlib.$(OBJ): nasmlib.c nasm.h insnsi.h nasmlib.h +ndisasm.$(OBJ): ndisasm.c nasm.h insnsi.h sync.h disasm.h +outas86.$(OBJ): outas86.c nasm.h insnsi.h nasmlib.h +outaout.$(OBJ): outaout.c nasm.h insnsi.h nasmlib.h +outbin.$(OBJ): outbin.c nasm.h insnsi.h nasmlib.h +outcoff.$(OBJ): outcoff.c nasm.h insnsi.h nasmlib.h +outelf.$(OBJ): outelf.c nasm.h insnsi.h nasmlib.h +outobj.$(OBJ): outobj.c nasm.h insnsi.h nasmlib.h +outform.$(OBJ): outform.c outform.h nasm.h insnsi.h +parser.$(OBJ): parser.c nasm.h insnsi.h nasmlib.h parser.h float.h names.c insnsn.c +preproc.$(OBJ): preproc.c macros.c preproc.h nasm.h insnsi.h nasmlib.h sync.$(OBJ): sync.c sync.h clean : diff --git a/changes.asm b/changes.asm index 3c2edfd..05b6788 100644 --- a/changes.asm +++ b/changes.asm @@ -269,7 +269,20 @@ arg_example2 arg2 RETF word 4 ; note "ENTER" has not been changed yet. - + +;----------------------------------------------------------------------------- +; Enhancement by hpa in insns.dat et al +; +; Simplified adding new instructions, and added some missing instructions +; + int03 ; Instead of INT3 + ud1 ; No documented mnemonic for this one + ud2 + sysenter + sysexit + fxsave [ebx] + fxrstor [es:ebx+esi*4+0x3000] + %endif %ifdef oldcrash ;************************************************************* @@ -289,21 +302,6 @@ This_label_is_256_characters_long__There_used_to_be_a_bug_in_stdscan_which_made_ emlabel empty_macro jmp emlabel -%endif - -;----------------------------------------------------------------------------- -; Enhancement by hpa in insns.dat et al -; -; Simplified added new instructions, and added some missing instructions -; - int03 ; Instead of INT3 - ud1 ; No documented mnemonic for this one - ud2 - sysenter - sysexit - fxsave [ebx] - fxrstor [es:ebx+esi*4+0x3000] - ;----------------------------------------------------------------------------- ; Enhancement by Conan Brink in preproc.c ; @@ -314,3 +312,5 @@ emlabel empty_macro nop %endrep %endrep + +%endif diff --git a/insns.pl b/insns.pl index a61f6f9..d0407ec 100644 --- a/insns.pl +++ b/insns.pl @@ -28,11 +28,12 @@ while () { push @$aname, $formatted; } if ( $_[0] =~ /cc$/ ) { + # Conditional instruction $k_opcodes_cc{$_[0]}++; } else { + # Unconditional instruction $k_opcodes{$_[0]}++; } - $done{$_[0]} = 1 if !$done{$_[0]}; if ($formatted && !$nd) { push @big, $formatted; foreach $i (&startbyte($_[2])) { @@ -44,8 +45,8 @@ while () { close F; -@opcodes = sort keys(%k_opcodes); # Unconditional instructions -@opcodes_cc = sort keys(%k_opcodes_cc); # Conditional instructions +@opcodes = sort keys(%k_opcodes); +@opcodes_cc = sort keys(%k_opcodes_cc); print STDERR "Writing insnsa.c...\n"; diff --git a/nasm.h b/nasm.h index 833e68d..4076284 100644 --- a/nasm.h +++ b/nasm.h @@ -13,7 +13,7 @@ #define NASM_MAJOR_VER 0 #define NASM_MINOR_VER 98 -#define NASM_VER "0.98 pre-release 3.3" +#define NASM_VER "0.98 pre-release 3.4" #ifndef NULL #define NULL 0 diff --git a/rdoff/Makefile.sc b/rdoff/Makefile.sc index fca911a..f88e603 100644 --- a/rdoff/Makefile.sc +++ b/rdoff/Makefile.sc @@ -1,57 +1,54 @@ -# Makefile for RDOFF object file utils; part of the Netwide Assembler -# -# The Netwide Assembler is copyright (C) 1996 Simon Tatham and -# Julian Hall. All rights reserved. The software is -# redistributable under the licence given in the file "Licence" -# distributed in the NASM archive. -# -# This Makefile is designed for use under Unix (probably fairly -# portably). - -CC = sc -CCFLAGS = -I..\ -c -a1 -mn -Nc -w2 -w7 -o+time -5 -LINK = link -LINKFLAGS = /noi /exet:NT /su:console - -OBJ=obj -EXE=.exe - -NASMLIB = ..\nasmlib.$(OBJ) -NASMLIB_H = ..\nasmlib.h -LDRDFLIBS = rdoff.$(OBJ) $(NASMLIB) symtab.$(OBJ) collectn.$(OBJ) rdlib.$(OBJ) -RDXLIBS = rdoff.$(OBJ) rdfload.$(OBJ) symtab.$(OBJ) collectn.$(OBJ) - -.c.$(OBJ): - $(CC) $(CCFLAGS) $*.c - -all : rdfdump$(EXE) ldrdf$(EXE) rdx$(EXE) rdflib$(EXE) rdf2bin$(EXE) rdf2com$(EXE) - -rdfdump$(EXE) : rdfdump.$(OBJ) - $(LINK) $(LINKFLAGS) rdfdump.$(OBJ), rdfdump$(EXE); -ldrdf$(EXE) : ldrdf.$(OBJ) $(LDRDFLIBS) - $(LINK) $(LINKFLAGS) ldrdf.$(OBJ) $(LDRDFLIBS), ldrdf$(EXE); -rdx$(EXE) : rdx.$(OBJ) $(RDXLIBS) - $(LINK) $(LINKFLAGS) rdx.$(OBJ) $(RDXLIBS), rdx$(EXE); -rdflib$(EXE) : rdflib.$(OBJ) - $(LINK) $(LINKFLAGS) rdflib.$(OBJ), rdflib$(EXE); -rdf2bin$(EXE) : rdf2bin.$(OBJ) $(RDXLIBS) $(NASMLIB) - $(LINK) $(LINKFLAGS) rdf2bin.$(OBJ) $(RDXLIBS) $(NASMLIB), rdf2bin$(EXE); -rdf2com$(EXE) : rdf2bin$(EXE) - copy rdf2bin$(EXE) rdf2com$(EXE) - -rdf2bin.$(OBJ) : rdf2bin.c -rdfdump.$(OBJ) : rdfdump.c -rdoff.$(OBJ) : rdoff.c rdoff.h -ldrdf.$(OBJ) : ldrdf.c rdoff.h $(NASMLIB_H) symtab.h collectn.h rdlib.h -symtab.$(OBJ) : symtab.c symtab.h -collectn.$(OBJ) : collectn.c collectn.h -rdx.$(OBJ) : rdx.c rdoff.h rdfload.h symtab.h -rdfload.$(OBJ) : rdfload.c rdfload.h rdoff.h collectn.h symtab.h -rdlib.$(OBJ) : rdlib.c rdlib.h -rdflib.$(OBJ) : rdflib.c - -clean : - del *.$(OBJ) rdfdump$(EXE) ldrdf$(EXE) rdx$(EXE) rdflib$(EXE) rdf2bin$(EXE) - - - \ No newline at end of file +# Makefile for RDOFF object file utils; part of the Netwide Assembler +# +# The Netwide Assembler is copyright (C) 1996 Simon Tatham and +# Julian Hall. All rights reserved. The software is +# redistributable under the licence given in the file "Licence" +# distributed in the NASM archive. +# +# This Makefile is designed for use under Unix (probably fairly +# portably). + +CC = sc +CCFLAGS = -I..\ -c -a1 -mn -Nc -w2 -w7 -o+time -5 +LINK = link +LINKFLAGS = /noi /exet:NT /su:console + +OBJ=obj +EXE=.exe + +NASMLIB = ..\nasmlib.$(OBJ) +NASMLIB_H = ..\nasmlib.h +LDRDFLIBS = rdoff.$(OBJ) $(NASMLIB) symtab.$(OBJ) collectn.$(OBJ) rdlib.$(OBJ) +RDXLIBS = rdoff.$(OBJ) rdfload.$(OBJ) symtab.$(OBJ) collectn.$(OBJ) + +.c.$(OBJ): + $(CC) $(CCFLAGS) $*.c + +all : rdfdump$(EXE) ldrdf$(EXE) rdx$(EXE) rdflib$(EXE) rdf2bin$(EXE) rdf2com$(EXE) + +rdfdump$(EXE) : rdfdump.$(OBJ) + $(LINK) $(LINKFLAGS) rdfdump.$(OBJ), rdfdump$(EXE); +ldrdf$(EXE) : ldrdf.$(OBJ) $(LDRDFLIBS) + $(LINK) $(LINKFLAGS) ldrdf.$(OBJ) $(LDRDFLIBS), ldrdf$(EXE); +rdx$(EXE) : rdx.$(OBJ) $(RDXLIBS) + $(LINK) $(LINKFLAGS) rdx.$(OBJ) $(RDXLIBS), rdx$(EXE); +rdflib$(EXE) : rdflib.$(OBJ) + $(LINK) $(LINKFLAGS) rdflib.$(OBJ), rdflib$(EXE); +rdf2bin$(EXE) : rdf2bin.$(OBJ) $(RDXLIBS) $(NASMLIB) + $(LINK) $(LINKFLAGS) rdf2bin.$(OBJ) $(RDXLIBS) $(NASMLIB), rdf2bin$(EXE); +rdf2com$(EXE) : rdf2bin$(EXE) + copy rdf2bin$(EXE) rdf2com$(EXE) + +rdf2bin.$(OBJ) : rdf2bin.c +rdfdump.$(OBJ) : rdfdump.c +rdoff.$(OBJ) : rdoff.c rdoff.h +ldrdf.$(OBJ) : ldrdf.c rdoff.h $(NASMLIB_H) symtab.h collectn.h rdlib.h +symtab.$(OBJ) : symtab.c symtab.h +collectn.$(OBJ) : collectn.c collectn.h +rdx.$(OBJ) : rdx.c rdoff.h rdfload.h symtab.h +rdfload.$(OBJ) : rdfload.c rdfload.h rdoff.h collectn.h symtab.h +rdlib.$(OBJ) : rdlib.c rdlib.h +rdflib.$(OBJ) : rdflib.c + +clean : + del *.$(OBJ) rdfdump$(EXE) ldrdf$(EXE) rdx$(EXE) rdflib$(EXE) rdf2bin$(EXE) -- 2.7.4