H. Peter Anvin
ea043ef039
nasmdoc: document the __float*__ operators
2007-09-24 12:44:38 -07:00
H. Peter Anvin
dc467ba8af
Support __float*__ for floating-point numbers in expressions
...
Add special operators to allow the use of floating-point constants in
contexts other than DW/DD/DQ/DT/DO.
As part of this checkin, make MAX_KEYWORD generated by tokhash.pl,
since it knows what all the keywords are so it can tell which one is
the longest.
2007-09-24 12:30:54 -07:00
H. Peter Anvin
5f77c031fa
eval.c: replace sequence of ifs with switch
...
Replace a sequence of "if" statements with a switch.
2007-09-24 10:51:07 -07:00
H. Peter Anvin
0c3e395cc1
tokhash: allow a bit smarter pattern matching
...
Allow constants to match only part of the token string.
2007-09-24 10:50:23 -07:00
H. Peter Anvin
fc565dd362
Implement INVLPGA according to the documentation
...
INVLPGA is defined as taking rax,ecx but "the portion of rax used to
form the address is determined by the effective address size", so it
is really ax/eax/rax.
2007-09-22 22:35:28 -07:00
H. Peter Anvin
438ed48c49
Reformat insns.dat to uniform column width
...
Add a script to reformat insns.dat to uniform width, and use it.
2007-09-22 22:02:34 -07:00
H. Peter Anvin
20dec371dc
Simple test for 0x67 prefixes
2007-09-22 21:50:03 -07:00
H. Peter Anvin
c5b9ce0a84
Auto-generate 0x67 prefixes without the need for \30x codes
...
Auto-generate 0x67 prefixes without the need for \30x codes; the
prefix is automatically added when there is a memory operand with
address size differing from the current address size (and impossible
combinations checked for.)
2007-09-22 21:49:51 -07:00
H. Peter Anvin
f04031bbd7
Make test/Makefile a bit more useful
...
Make all the tests depend on the nasm binary...
2007-09-22 21:47:13 -07:00
H. Peter Anvin
4408b6265c
Add TY_OWORD for "DO" output
2007-09-22 21:29:41 -07:00
H. Peter Anvin
8fcca64a2a
LDDQU needs \301 (BR 1103549)
2007-09-22 19:52:11 -07:00
H. Peter Anvin
dcb4b885d5
RDTSCP and INVLPGA aren't 64-bit specific
...
X64 means X86_64,LM -- long mode only.
2007-09-22 19:51:13 -07:00
H. Peter Anvin
f5c8cf0027
Cyrix GX1 instructions: BBx_RESET, CPU_READ, CPU_WRITE
2007-09-22 19:40:37 -07:00
H. Peter Anvin
763cb77c90
Centaur XSHA1, XSHA256, MONTMUL
2007-09-22 19:28:14 -07:00
H. Peter Anvin
4d283f685f
Implement Centaur's XCRYPT instructions
...
Implement Centaur's XCRYPT instruction (RFE 825529)
2007-09-22 19:20:56 -07:00
H. Peter Anvin
83828b6ce8
Add Geode LX (AMD's Cyrix-derived core) instructions
...
Add Geode's instructions: DMINT, RDM, PFRCP, PFRSQRT
2007-09-22 19:13:05 -07:00
H. Peter Anvin
48f7a93c0a
Add the GETSEC instruction for Intel SMX
2007-09-22 19:05:11 -07:00
H. Peter Anvin
4ca9d78c5f
Add the AMD SSE4a and LZCNT instructions
...
Add AMD SSE4a and LZCNT
2007-09-22 18:59:18 -07:00
H. Peter Anvin
57f38cdc0b
Tag UMOV as ND (no disassembly) to avoid collision
...
The UMOV opcodes have been recycled; tag UMOV as ND until we have a
better way to specify to the disassembler exactly how it wants
instructions interpreted.
2007-09-22 18:23:20 -07:00
H. Peter Anvin
269700972c
Disallow optimizing by less than 5 passes.
...
Disallow optimizing by less than 5 passes. If the user requests 2-4
passes, run 5 passes anyway.
2007-09-22 18:20:49 -07:00
H. Peter Anvin
25a993488c
BR 1783117: Document that %+ needs a space after it, and fix crash
...
Document that %+ needs a space after it due to collision with %+1
syntax for multiline macro arguments; make it issue an error message
rather than crashing.
2007-09-22 17:45:45 -07:00
H. Peter Anvin
441ad9d9b2
nasm.spec.in: minor fixes
...
%setup needs -n to deal with the case when nasm_version != _version
There is no standard %make macro, just use "make".
2007-09-22 16:44:56 -07:00
H. Peter Anvin
7b45fbb127
release script: handle stricter CLI parsing for "git tag"
...
The current version of "git tag" seems to demand that the options
precede arguments; the name is an argument, but the -m option and its
parameter is an option.
2007-09-22 16:38:25 -07:00
H. Peter Anvin
9b8f0ad113
Update nasm.spec.in and make it handle rc releases
...
Update nasm.spec.in to match modern conventions, and make it handle rc
releases by using the "mangled" version of the name (1.99.99.91
instead of 2.0rc1).
2007-09-22 16:35:11 -07:00
H. Peter Anvin
b10f3e2dca
version.pl: support version numbers of the form X.Y[.Z]rcW
...
Support version numbers of the form X.Y[.Z]rcW where X, Y, Z and W are
numbers. For the numeric macros, drop them down to a lower level, so
2.0rc1 is treated as version 1.99.99.91.
2007-09-22 16:19:19 -07:00
Charles Crayne
af31d43368
Merge branch 'master' of git+ssh://ccrayne@repo.or.cz/srv/git/nasm
2007-09-20 21:33:43 -07:00
Charles Crayne
bfff95a6c0
modified: misc/release to fix bug in removing .git
2007-09-20 21:12:33 -07:00
H. Peter Anvin
40838f1f6e
Merge branch 'master' of git+ssh://repo.or.cz/srv/git/nasm
2007-09-19 21:41:43 -07:00
H. Peter Anvin
d9a979559e
Update manual pages
...
Update manual pages to include 64-bit support, and remove section
about sync point limits in ndisasm.
2007-09-19 21:41:27 -07:00
H. Peter Anvin
8d024e7965
Remove limit on number of sync points
...
Make it possible for ndisasm to allocate more memory for sync points
as needed.
2007-09-19 21:41:02 -07:00
H. Peter Anvin
87f252aaa5
Make nasm_malloc() et al available from inside ndisasm
...
Clean up nasmlib to remove functions irrelevant for ndisasm; make
nasm_malloc() etc usable inside ndisasm.
2007-09-19 21:40:37 -07:00
Frank Kotler
4ff711889f
Version 0.99.03
nasm-0.99.03
2007-09-19 21:07:32 -04:00
Frank Kotler
240ffe8cc4
Merge branch 'master' of git+ssh://fbkotler@repo.or.cz/srv/git/nasm
2007-09-19 21:06:59 -04:00
H. Peter Anvin
eb49a4e1d4
Merge commit 'origin/sse5'
2007-09-19 16:22:03 -07:00
H. Peter Anvin
b4b4317878
test/Makefile: make a bit more useful
2007-09-19 16:15:22 -07:00
H. Peter Anvin
bf9a24f464
Slightly optimize the interface to nasm_token_hash()
...
Instead of returning -1 from nasm_token_hash, set tv->t_type to
TOKEN_ID and return TOKEN_ID, since that's what stdscan.c wants to do
with it anyway. This allows us to simply tailcall nasm_token_hash().
2007-09-18 22:54:40 -07:00
Frank Kotler
577f5ea592
Merge branch 'master' of git+ssh://fbkotler@repo.or.cz/srv/git/nasm
2007-09-19 01:34:55 -04:00
H. Peter Anvin
69db8c6963
Merge commit 'origin/master' into sse5
2007-09-18 22:23:42 -07:00
H. Peter Anvin
9b0d41ddd4
elf64: fix 32-bit truncations
...
Fix 32-bit truncations, as evidenced by the following test program:
mov rax, 8080808080808080h
2007-09-18 22:22:49 -07:00
H. Peter Anvin
8084f105a2
Document Infinity and NaN
...
Add __Infinity__, __QNaN__, and __SNaN__ to the documentation.
2007-09-18 22:08:04 -07:00
H. Peter Anvin
f48bc6fb48
Support generating NaNs and infinities
...
Support generating NaNs and infinities as part of floating-point
constants.
2007-09-18 21:55:56 -07:00
H. Peter Anvin
5107d672a0
Update documentation
...
Document new floating-point capabilities, and clean up the discussion
about BITS 64 and REX prefixes.
2007-09-18 19:12:26 -07:00
H. Peter Anvin
72ac77bb0b
Simple test for hexadecimal floating-point numbers
...
Very trivial test for hexadecimal floating-point numbers
2007-09-18 18:37:36 -07:00
H. Peter Anvin
26976a187f
Fix error-reporting in hexadecimal floating-point numbers
2007-09-18 18:33:17 -07:00
H. Peter Anvin
fe2177fe42
Support C99-style hexadecimal floating point.
...
Add support for C99-style hexadecimal floating point. The format is
0x <hexadecimal mantissa> p <binary exponent>. 0x1.0e+1 thus is the
same as 2.0.
2007-09-18 18:31:26 -07:00
H. Peter Anvin
e31747e95b
Unify all standard IEEE floating-point formats; add 128-bit
...
Unify all the standard IEEE formats into one function, add support for
IEEE standard 128-bit floating point numbers.
The 80-bit format is still special since it explicitly represents the
integer portion.
2007-09-18 17:50:34 -07:00
H. Peter Anvin
cfbe7c3cc2
Fix handling of DO; support unary + for floating-point numbers
...
Floating-point users generally expect to be able to use a unary plus.
Fix support for the DO instruction in several places.
2007-09-18 17:49:09 -07:00
H. Peter Anvin
141d7cf68d
Support 16-bit IEEE floating point; used in SSE5
...
SSE5 supports standard IEEE 16-bit floating point, so we should
support that too.
2007-09-18 16:39:03 -07:00
H. Peter Anvin
510a2508e6
Merge commit 'origin/master' into sse5
2007-09-18 15:43:40 -07:00
H. Peter Anvin
eef59fc328
Add NOP with argument to the instruction list
...
0F 1F /0 is documented as an EA-taking NOP since the P6.
0F 18..1F + EA are all "hinting nops" (instructions which, when
unimplemented, have no effect rather than #UD) but 0F 1F /0
specifically has no operation whatsoever.
2007-09-18 15:43:08 -07:00