summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2007-09-24Support __float*__ for floating-point numbers in expressionsH. Peter Anvin8-132/+597
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-24eval.c: replace sequence of ifs with switchH. Peter Anvin1-9/+21
Replace a sequence of "if" statements with a switch.
2007-09-24tokhash: allow a bit smarter pattern matchingH. Peter Anvin1-0/+12
Allow constants to match only part of the token string.
2007-09-22Implement INVLPGA according to the documentationH. Peter Anvin2-0/+11
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-22Reformat insns.dat to uniform column widthH. Peter Anvin2-1864/+1897
Add a script to reformat insns.dat to uniform width, and use it.
2007-09-22Simple test for 0x67 prefixesH. Peter Anvin1-0/+35
2007-09-22Auto-generate 0x67 prefixes without the need for \30x codesH. Peter Anvin3-953/+1008
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-22Make test/Makefile a bit more usefulH. Peter Anvin1-6/+6
Make all the tests depend on the nasm binary...
2007-09-22Add TY_OWORD for "DO" outputH. Peter Anvin2-0/+4
2007-09-22LDDQU needs \301 (BR 1103549)H. Peter Anvin1-1/+1
2007-09-22RDTSCP and INVLPGA aren't 64-bit specificH. Peter Anvin1-2/+2
X64 means X86_64,LM -- long mode only.
2007-09-22Cyrix GX1 instructions: BBx_RESET, CPU_READ, CPU_WRITEH. Peter Anvin1-0/+4
2007-09-22Centaur XSHA1, XSHA256, MONTMULH. Peter Anvin2-1/+4
2007-09-22Implement Centaur's XCRYPT instructionsH. Peter Anvin2-8/+14
Implement Centaur's XCRYPT instruction (RFE 825529)
2007-09-22Add Geode LX (AMD's Cyrix-derived core) instructionsH. Peter Anvin1-0/+6
Add Geode's instructions: DMINT, RDM, PFRCP, PFRSQRT
2007-09-22Add the GETSEC instruction for Intel SMXH. Peter Anvin1-0/+3
2007-09-22Add the AMD SSE4a and LZCNT instructionsH. Peter Anvin2-2/+16
Add AMD SSE4a and LZCNT
2007-09-22Tag UMOV as ND (no disassembly) to avoid collisionH. Peter Anvin1-12/+12
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-22Disallow optimizing by less than 5 passes.H. Peter Anvin1-2/+6
Disallow optimizing by less than 5 passes. If the user requests 2-4 passes, run 5 passes anyway.
2007-09-22BR 1783117: Document that %+ needs a space after it, and fix crashH. Peter Anvin2-9/+19
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-22nasm.spec.in: minor fixesH. Peter Anvin1-2/+2
%setup needs -n to deal with the case when nasm_version != _version There is no standard %make macro, just use "make".
2007-09-22release script: handle stricter CLI parsing for "git tag"H. Peter Anvin1-1/+1
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-22Update nasm.spec.in and make it handle rc releasesH. Peter Anvin3-26/+41
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-22version.pl: support version numbers of the form X.Y[.Z]rcWH. Peter Anvin1-6/+26
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-20Merge branch 'master' of git+ssh://ccrayne@repo.or.cz/srv/git/nasmCharles Crayne29-851/+1840
2007-09-20 modified: misc/release to fix bug in removing .gitCharles Crayne1-1/+1
2007-09-19Merge branch 'master' of git+ssh://repo.or.cz/srv/git/nasmH. Peter Anvin2-2/+2
2007-09-19Update manual pagesH. Peter Anvin2-10/+7
Update manual pages to include 64-bit support, and remove section about sync point limits in ndisasm.
2007-09-19Remove limit on number of sync pointsH. Peter Anvin1-23/+9
Make it possible for ndisasm to allocate more memory for sync points as needed.
2007-09-19Make nasm_malloc() et al available from inside ndisasmH. Peter Anvin7-228/+253
Clean up nasmlib to remove functions irrelevant for ndisasm; make nasm_malloc() etc usable inside ndisasm.
2007-09-19Version 0.99.03Frank Kotler1-1/+1
2007-09-19Merge branch 'master' of git+ssh://fbkotler@repo.or.cz/srv/git/nasmFrank Kotler18-588/+1569
2007-09-19Merge commit 'origin/sse5'H. Peter Anvin17-587/+1547
2007-09-19test/Makefile: make a bit more usefulH. Peter Anvin1-1/+22
2007-09-18Slightly optimize the interface to nasm_token_hash()H. Peter Anvin2-7/+3
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-19Merge branch 'master' of git+ssh://fbkotler@repo.or.cz/srv/git/nasmFrank Kotler11-141/+220
2007-09-18Merge commit 'origin/master' into sse5H. Peter Anvin1-4/+4
2007-09-18elf64: fix 32-bit truncationsH. Peter Anvin1-4/+4
Fix 32-bit truncations, as evidenced by the following test program: mov rax, 8080808080808080h
2007-09-18Document Infinity and NaNH. Peter Anvin1-0/+10
Add __Infinity__, __QNaN__, and __SNaN__ to the documentation.
2007-09-18Support generating NaNs and infinitiesH. Peter Anvin4-62/+160
Support generating NaNs and infinities as part of floating-point constants.
2007-09-18Update documentationH. Peter Anvin1-26/+35
Document new floating-point capabilities, and clean up the discussion about BITS 64 and REX prefixes.
2007-09-18Simple test for hexadecimal floating-point numbersH. Peter Anvin1-0/+125
Very trivial test for hexadecimal floating-point numbers
2007-09-18Fix error-reporting in hexadecimal floating-point numbersH. Peter Anvin1-1/+1
2007-09-18Support C99-style hexadecimal floating point.H. Peter Anvin2-1/+94
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-18Unify all standard IEEE floating-point formats; add 128-bitH. Peter Anvin2-142/+167
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-18Fix handling of DO; support unary + for floating-point numbersH. Peter Anvin2-11/+20
Floating-point users generally expect to be able to use a unary plus. Fix support for the DO instruction in several places.
2007-09-18Support 16-bit IEEE floating point; used in SSE5H. Peter Anvin2-13/+82
SSE5 supports standard IEEE 16-bit floating point, so we should support that too.
2007-09-18Merge commit 'origin/master' into sse5H. Peter Anvin1-0/+3
2007-09-18Add NOP with argument to the instruction listH. Peter Anvin1-0/+3
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-18Remove 0FC2 from list of instruction prefixesH. Peter Anvin1-1/+1
0FC2 is not really an instruction prefix; it's the opcode for CMPPS/CMPSS, which takes a control immediate which Intel chose to have opcode aliases for. However, we can't dispatch on a tail byte, so it's useless.