summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2007-09-12pptok.c: quick-and-dirty downcasing during prehashingH. Peter Anvin1-1/+7
Speed up pptok.c by just doing |= 0x20 instead of calling tolower() for every character during prehashing. This is good enough for our needs, since we don't have any tokens containing the characters @ [ \ ] _ nor any high-bit characters (in which case we'd have to worry about multibyte anyway.)
2007-09-12phash: Tell the user when the graph is OKH. Peter Anvin1-2/+2
Tell the user when the graph is OK, so that we don't get quite so much of "a list of errors followed by a long pause."
2007-09-12pptok.c: handle holes in the pp_directives arrayH. Peter Anvin1-1/+1
We need to fail if we land in a hole in the pp_directives array, since we have a noncontiguous enum preproc_token now.
2007-09-12preproc.c: adjust whitespaceH. Peter Anvin1-0/+1
Be consistent about whitespace.
2007-09-12More automation in the preprocessor conditionals handlingH. Peter Anvin2-176/+131
Further automate the production of preprocessor conditionals. Now the code automatically folds if/elif and the negatives.
2007-09-12pptok.c: fix spacingH. Peter Anvin1-1/+1
2007-09-12Generate automatically correct tests for %if and %elifH. Peter Anvin2-3/+17
Automatically generate macros to test for %if and %elif variants, which are guaranteed to be correct across future changes.
2007-09-12Run "make alldeps"; add dependencies missing from the previous checkinH. Peter Anvin20-20/+20
It helps to run "make alldeps" when the changes are actually complete...
2007-09-12Use a perfect hash to look up preprocessor directivesH. Peter Anvin26-241/+423
Use a perfect hash to look up preprocessor directives, and generate the preprocessor directive list automatically.
2007-09-12phash: Be a bit more aggressive about trying to make a small hashH. Peter Anvin1-1/+1
Change the threshold to 0.7 instead of 0.8.
2007-09-12Add RCXZ as a known preprocessor conditionH. Peter Anvin1-3/+3
2007-09-11doc: add some cross-referencesH. Peter Anvin1-8/+11
2007-09-11Feeble attempt at updating the documentation; remove Appendix BH. Peter Anvin2-6750/+6803
Feeble attempt to document 64-bit support. Also, remove Appendix B since we have been utterly useless at keeping it up to date, and it's redundant with the processor manufacturer's documentation anyway.
2007-09-11Handle instructions which can have both REX.W and OSPH. Peter Anvin3-59/+90
2007-09-11Use enums to make debugging easierH. Peter Anvin3-9/+11
When we're dealing with a field which is guaranteed to have an enum type, then declare it as such so it shows up in debuggers.
2007-09-11ndisasm: handle \366 codes, prefer unprefixed instructionsH. Peter Anvin1-12/+34
- Implement \366 codes in ndisasm - Prefer instruction patterns without loose prefixes if possible - Fix improper initialization of operands in ndisasm
2007-09-11Simplify tokens.dat slightlyH. Peter Anvin1-3/+1
2007-09-11Quiet gcc warning about uninitialized variablesH. Peter Anvin1-0/+2
2007-09-11Make the big instruction arrays "const"H. Peter Anvin4-17/+17
Make the big instruction arrays "const", so they end up in readonly storage. While we're at it, move their prototypes into insns.h.
2007-09-10Use an actual enum for the opcodeH. Peter Anvin2-6/+6
Use an actual named enum for the opcode, that way it shows up in cleartext while debugging.
2007-09-10Fix order of token argumentsH. Peter Anvin1-2/+2
Order of token arguments was reversed, but tokens.dat wasn't updated accordingly. Fix.
2007-09-10assemble.c: correct special handing of ESP/RSPH. Peter Anvin1-1/+1
Correct the special handling of ESP/RSP (must be in the base register slot, but requires SIB.)
2007-09-10tokhash: correct duplicate-token testH. Peter Anvin1-1/+1
2007-09-10tokhash: adjust table types to reduce sizeH. Peter Anvin1-7/+11
Adjust the sizes of data types to reduce the total size of the tokhash data structure.
2007-09-10Fix the MMXREG and XMMREG flags definitions.H. Peter Anvin1-2/+2
2007-09-05nasm.spec.in: Copyright -> LicenseH. Peter Anvin1-1/+1
2007-09-05Fix "make tar"; useful for RPM testingH. Peter Anvin1-1/+1
2007-09-05Remove obsolete Serial: construct; we shouldn't need it anyway.H. Peter Anvin2-2/+0
2007-09-04Provide 64-bit support for ORG directiveChuck Crayne1-24/+21
2007-09-02Fix some MMX/SSE irregularities which interact with the 64-bit supportH. Peter Anvin2-12/+48
2007-09-02phash.ph: yet another attempt at getting Perl to behave, arithmeticallyH. Peter Anvin1-7/+15
2007-09-02Simple 64-bit org testH. Peter Anvin1-0/+15
2007-09-02phash.ph: remove some stale codeH. Peter Anvin1-9/+0
Remove old randomization code which is no longer used.
2007-09-02Force use of integer values for generating hash keys.Chuck Crayne1-2/+4
2007-08-31phash: don't rely on the build platform Perl version of rand()H. Peter Anvin4-61/+171
rand() in Perl can vary between platforms, so don't use it. Instead, remove a completely pointless level of indirection (it introduced a permutation which cancelled itself out) and provide a canned set of random numbers for the rest. This guarantees we will always use the same numbers.
2007-08-31tokhash.pl: formatting changes for readabilityH. Peter Anvin1-44/+41
No functional change
2007-08-31tokhash: Speed up the rejection of unhashed valuesH. Peter Anvin2-5/+18
Speed up the rejection of unhashed values (typically identifiers) by filling unused hash slots with a large value (but not so large that it is likely to overflow.) This means those values will be rejected already by the range check, not needing strcmp().
2007-08-31tokhash.pl: "ix" should have the same width as the "hash" arraysH. Peter Anvin1-1/+3
For correctness in case of a very "linear" graph, "ix" needs to have the same width as the "hash" arrays.
2007-08-31Add "do not edit" comment to tokhash.cH. Peter Anvin1-1/+6
2007-08-31Make the token hash a bit smaller by using 16-bit hash tablesH. Peter Anvin1-2/+2
2007-08-31Minor cleanup; remove duplication of names.cH. Peter Anvin2-10/+4
2007-08-30phash.ph: use a bipartite graph to reduce the storage requirementsH. Peter Anvin2-14/+20
Since we fold the f- and g-functions together, if we guarantee that g is bipartite, we can make g twice the size of f without cost. This greatly improves the odds of generating a smaller hash.
2007-08-30Finishing touches on perfect hash tokenizer; actually turn the thing onH. Peter Anvin34-379/+470
Finish the perfect hash tokenizer, and actually enable it. Move stdscan() et al to a separate file, since it's not needed in any of the clients of nasmlib other than nasm itself. Run make alldeps.
2007-08-30Makefile rule for tokhash.cH. Peter Anvin1-1/+6
2007-08-30tokens.dat: Data file containing alphanumeric tokens not in other .datsH. Peter Anvin1-0/+38
2007-08-30Generate a perfect hash for the token parserH. Peter Anvin1-0/+184
2007-08-30Fix bugs in repeated suffix handling, which led to missing r8d/r8w/r8dH. Peter Anvin1-1/+1
2007-08-30phash.ph: more powerful prehashingH. Peter Anvin1-14/+20
2007-08-30Make the perfect hash generator an includable moduleH. Peter Anvin2-252/+261
2007-08-29Correct the logic for recording fs: and gs: overrides.H. Peter Anvin1-1/+1