Commit Graph

922 Commits

Author SHA1 Message Date
H. Peter Anvin
3e30d5aefe Give an example on how Unix and Win64 count argument differently 2007-11-29 17:17:35 -08:00
H. Peter Anvin
52b4d6d7b0 Allow numbers to be sorted separately from letters
Allow numbers to be sorted separately from letters.
2007-11-29 17:10:04 -08:00
H. Peter Anvin
540f903928 nasmdoc.src: editorial changes 2007-11-29 17:07:53 -08:00
H. Peter Anvin
2fd420d330 CHANGES that were missed... 2007-11-29 17:05:55 -08:00
H. Peter Anvin
c2f77475fa Update COPYING file with the latest edition of LGPL 2.1
Not a new license, just editorial changes like the FSF address
changed.
2007-11-29 14:51:47 -08:00
H. Peter Anvin
c780557e15 %ixdefine, not %xidefine
The docs had %xidefine, the code has %ixdefine.  The code wins.
2007-11-29 13:10:08 -08:00
H. Peter Anvin
501735eecb NASM 2.00 2007-11-28 13:14:43 -08:00
H. Peter Anvin
1d32090469 Add macho support to CHANGES 2007-11-28 10:46:15 -08:00
H. Peter Anvin
212f67d472 Add OS/2 build instructions since our binaries don't work. 2007-11-28 10:42:21 -08:00
H. Peter Anvin
7061ad73fe BR 852464: Fix memory leak in %if/%elseif 2007-11-26 22:03:53 -08:00
H. Peter Anvin
00927db7e2 Additional CHANGES 2007-11-26 21:43:55 -08:00
Charles Crayne
f2098e9935 Documention Changes for Release 2.00
modified:   CHANGES
	modified:   ChangeLog
	modified:   doc/nasmdoc.src
2007-11-25 14:25:13 -08:00
H. Peter Anvin
21eed86871 Typo fixes in documentation
Typo fixes in documentation, including BR 1836379
2007-11-24 16:31:48 -08:00
H. Peter Anvin
3c832be508 NASM 2.00rc3 2007-11-20 23:37:46 -08:00
H. Peter Anvin
15c1e5aa4d Unbreak CMPSW/CMPSD/CMPSQ
The CMPSW/CMPSD/CMPSQ instructions were broken by checkin
a30cc07224 due to an incorrect removal
of \1 (should only have been removed after \144-147 and \154-157).  I
have verified that no other instructions were affected.
2007-11-20 21:45:16 -08:00
H. Peter Anvin
2e188be556 Merge branch 'master' of git+ssh://repo.or.cz/srv/git/nasm 2007-11-20 13:23:34 -08:00
H. Peter Anvin
49da468830 ndisasm: handle the case of "no more sync points"
Handle the case of "no more sync points" explicitly, instead of saying
the next sync point is at UINT32_MAX.
2007-11-20 13:22:58 -08:00
H. Peter Anvin
a057a993cf NASM 2.00rc2 2007-11-19 23:09:31 -08:00
H. Peter Anvin
d0d760e4e3 tag-release: a simple script to tag the repository for release 2007-11-19 23:09:24 -08:00
H. Peter Anvin
2a15e69ebe Slightly faster implementation of the deadman counter
Count down to zero instead of up to a constant...
2007-11-19 13:14:59 -08:00
H. Peter Anvin
cb1cf59312 BR 812417: Deadman counter for macro expansion
Per BR 812417, certain macro expansions can hang NASM.  Allow a
deadman counter (currently set to 2^20) to fail out if it gets
ridiculous.
2007-11-19 12:26:50 -08:00
H. Peter Anvin
a27ccb9f61 BR 877583: Fix RAA memory leak
raa_free() didn't actually do the proper job; it would only free leaf
nodes, not internal nodes.
2007-11-19 12:02:38 -08:00
H. Peter Anvin
6178374251 BR 863173: Fix offsets of TIMES/INCBIN in list file
Correct the emission of offsets for TIMES/INCBIN in the list file.
2007-11-19 11:53:18 -08:00
H. Peter Anvin
70c0bf22a2 BR 1834731: Remove redundant error messages for no input file
Avoid redundant error messages:

./nasm
nasm: error: no input file specified
nasm: fatal: file `' is both input and output file
type `nasm -h' for help

... which is more than a wee bit confusing to the user.
2007-11-19 11:45:40 -08:00
H. Peter Anvin
f096968998 insns.pl: remove debugging output
Remove debugging output which was never meant to be checked in.
2007-11-19 11:44:05 -08:00
H. Peter Anvin
682221438e Clean up remaining build warnings
Clean up remaining build warnings.  None of this should affect code
operations.  The only warnings which were actually relevant might have
been the ones in ldrdf.c, but it's not clear if anyone ever uses that.
2007-11-18 22:18:09 -08:00
H. Peter Anvin
a30cc07224 BR 1834292: Fix multiple disassembler bugs
- Correct the building on the disassembler decision tree.
- Handle SSE instructions with F2 prefix (\332) correctly.
- Mark instructions which are now used as prefixes with ND.
  (In a future version when we have better CPU version handling,
  we should probably build the decision tree at runtime based on
  the selected CPU feature sets.)
- Sanitize the handling of \144-147 and \154-157 in both the assembler
  and disassembler.  They take an opcode byte as argument; don't
  pretend they don't.
2007-11-18 21:55:26 -08:00
H. Peter Anvin
d0378fb1ed BR 1834056: Remove warnings in rdoff/rdoff.c
Remove warnings, especially the alias warnings in rdoff/rdoff.c.
2007-11-18 12:01:05 -08:00
H. Peter Anvin
dc24271fae BR 1091926: Bounds checking for command line parsing
Avoid failure if the command line has doctored arguments.
2007-11-18 11:55:10 -08:00
H. Peter Anvin
24588d35e7 Remove FIXME from documentation
This better work now, we're in release candidate mode.
2007-11-17 21:21:18 -08:00
Charles Crayne
db90f35d89 Check in Keith's Fixes
1. Don't warn on 32-bit overflow
2. Change EM64T to Intel 64 in Defining CPU Dependencies
   section of documentation.
2007-11-17 21:08:33 -08:00
H. Peter Anvin
c9588ea1bc Make the definition for float_const() match the prototype
The definition for float_const() had int32_t, the prototype had only
int.  We only care about the sign, so int makes more sense.
2007-11-17 14:35:19 -08:00
H. Peter Anvin
b284e48ae2 NASM 2.00rc1 2007-11-16 00:03:02 -08:00
H. Peter Anvin
423e381dd7 Clean up the command-line parsing; make -w/-W match others
Clean up the command-line parsing and make -w/-W match the behaviour
of all the other options with regards to arguments.
2007-11-15 17:12:29 -08:00
H. Peter Anvin
7812644665 BR 993895: Support zero-operand floating-point insn
Support the zero-operand form of floating-point instructions.  Note
that in most cases, the form generated is actually the "popping" form,
e.g. "FADD" becomes "FADDP st0,st1".  This is in accordance with the
Intel documentation.  "FADDP" is also supported.
2007-11-15 14:38:19 -08:00
H. Peter Anvin
428fd671ec Remove some vestiges of "native" RESW/RESD support
We now internally convert all RESx opcodes to RESB, so we don't need
support for that in the assembler.
2007-11-15 10:25:52 -08:00
H. Peter Anvin
604a3f4e21 outbin.c: fix one missed change from type -> size
Fix one missed change from "type" to "size".  May want to look through
all the other backends as well for similar issues.

This would generate the wrong section lengths, with obviously bad results.
2007-11-15 10:24:55 -08:00
root
dbb1828ad5 Support setting OSABI value in ELF header. 2007-11-13 19:52:54 -08:00
H. Peter Anvin
c68ec01277 Enable a few warnings by default; clean up warning descriptions 2007-11-13 11:34:34 -08:00
H. Peter Anvin
b030c92fee Add gcc-style -W/-Wno- warning selections; -Wall; -Werror
Add gcc-style -Wxxx -Wno-xxx warning selection as an alternative to
-w+xxx/-w-xxx.

Add "all" as an alias for all (actual) warnings.

Add "error" to treat warnings as errors.
2007-11-13 11:31:15 -08:00
H. Peter Anvin
c170867864 Clean up the fwrite*() function definitions somewhat
Slight cleanup of the fwrite*() functions.  This actually helps gcc
generate better code on i386, for no apparent reason.
2007-11-13 10:37:23 -08:00
H. Peter Anvin
4095197f6c Cast 64-bit switch expressions to (int) to keep OpenWatcom happy
Our size arguments are 64-bit values, but we don't need that range for
anywhere where we need a switch.  OpenWatcom can't deal with them
(sigh), so cast them to (int) for now.
2007-11-13 09:49:51 -08:00
H. Peter Anvin
d13f30e08f x86-host-specific performance improvement
If we're on an x86 host, we can do unaligned littleendian memory
references directly.  Just do'em.
2007-11-13 09:46:38 -08:00
H. Peter Anvin
d1fb15c154 Address data is int64_t; simplify writing an address object
Address data is always int64_t even if the size itself is smaller;
this was broken on bigendian hosts (still need testing!)

Create simple "write sized object" macros.
2007-11-13 09:37:59 -08:00
H. Peter Anvin
a5fb90834a ndisasm: factor out the common operand-extraction code
Factor out the common operand-extraction code in the disassembler, as
previously done in the assembler.
2007-11-12 23:00:31 -08:00
H. Peter Anvin
bb72f7f111 Un-special-case "xchg rax,rax"; disassemble o64
Un-special-case "xchg rax,rax"; allow it to be encoded as 48 90 for
orthogonality's sake.  It's a no-op, to be sure, but so are many other
instructions.

"xchg eax,eax" is still special-cased in 64-bit mode since it is not a
no-op; unadorned opcode 90 is now simply "nop" and nothing else.

Make the disassembler detect unused REX.W and display them as an "o64"
prefix.
2007-11-12 22:56:07 -08:00
H. Peter Anvin
fb0c90cdbe BR 1709392: Fix alignment handling in Mach-O format
Fix alignment handling in the Mach-O format.  The patch is from the
bug report, mangled to apply to the current source base.  I have no
way to test this, so I'm going to have to assume it's correct.
2007-11-12 22:11:46 -08:00
H. Peter Anvin
4b3390eb47 BR 1828866: fix handling of LAR/LSL
Fix handling of LAR/LSL with various sized operands
2007-11-12 22:05:31 -08:00
H. Peter Anvin
e8cdcdcc37 Better (but not *good!*) handling of 64-bit addressing in ndisasm
More correct -- but not fully correct -- handing of 64-bit addressing
in ndisasm.  In particular, we need to generate "a32" versus "dword"
where applicable.
2007-11-12 21:57:00 -08:00
H. Peter Anvin
2344010d26 Fix disassembly of XCHG
"REX.B 90" in 64-bit mode is "xchg eax,r8d" not "nop"; equivalent
situation for "REX.WB 90" (xchg rax,r8).
2007-11-12 21:02:33 -08:00