summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* 64-bit addressing and prefix handling changesnewaddrH. Peter Anvin2007-10-286-225/+345
| | | | | | | | | | Revamp the address- and prefix-handling code to make more sense in 64-bit mode. We are now a lot closer to where we want to be, but we're not there yet. ndisasm is broken with these changes. Some of the changes to the prefix handling may have to be rethought. Checking this in as a branch so people can mess with it.
* readnum(): handle prefix-suffix collision like "0h"H. Peter Anvin2007-10-262-16/+15
| | | | | Suffixed versions of zero will look like both a prefix and a suffix. Reject the prefixed version as being too short to decode.
* Better handling of platforms which hide "extended" functionalityH. Peter Anvin2007-10-262-5/+30
| | | | | | | | Some platforms apparently feel -std=c99, which defines __STRICT_ANSI__, should also hide a bunch of function prototypes. This rather sucks. At least try to deal with it. MinGW and DJGPP both have this problem, in particular.
* Merge branch 'master' of /home/chuck/development/gitnasm/Charles Crayne2007-10-243-23/+107
|\
| * Fix the handling of floating-point tokens in the preprocessorH. Peter Anvin2007-10-243-23/+107
| | | | | | | | | | | | Correct the handling of floating-point tokens in the preprocessor. The preprocessor scanner and the main scanner really are painfully divergent for no good reason.
* | Update sections about debug info formatsCharles Crayne2007-10-241-4/+12
|/
* Fix bugs item #1817677Charles Crayne2007-10-231-0/+1
|
* Slightly simplify the radix-detection codeH. Peter Anvin2007-10-231-2/+4
| | | | | | | | (pradix && pradix > sradix) etc. is unnecessary since pradix and sradix cannot be negative, so zero is always the smallest value. Put in a comment explaining why making the default radix == 10 doesn't need any additional error checking.
* Unbreak particularly tricky hex constantsH. Peter Anvin2007-10-222-7/+29
| | | | | Unbreak hex constants which contain 'b' or 'd' in potentially tricky places.
* Decimal floating point can also start with 0. 0e 0EH. Peter Anvin2007-10-221-9/+2
| | | | | | A floating point number starting with 0. 0e or 0E is still decimal. Make it easier by falling back to the standard decimal conversion routine for anything not recognized as a radix prefix.
* Support binary and octal floating-pointH. Peter Anvin2007-10-223-26/+73
| | | | | | For consistency, support binary and octal floating-point, and accept a "0d" or "0t" prefix for decimal floating-point. However, we do not accept a binary exponent (p) for a decimal mantissa, or vice versa.
* More consistent handling of radix lettersH. Peter Anvin2007-10-225-23/+235
| | | | | | | | | | Allow any radix letter from the set [bydtoqhx] to be used either "Intel-style" (0...x) or "C-style" (0x...). In Intel style, the leading 0 remains optional as long as the first digit is in the range 0-9. As a consequence, allow the prefix "0h" for hexadecimal floating point.
* float.c: correct exponent cappingH. Peter Anvin2007-10-211-4/+3
| | | | | | | | | | | Actually enforce the exponent capping, as opposed to only enforcing it to within a factor of 10. Furthermore, continue to scan the string in order to check for invalid characters. Finally, 16384 is too tight of a bound for a binary exponent: it's a tight bound, but the shift added due to the digit string can move the cap into the active region (±16383). Thus, change it to 20000 to be on the safe side.
* Clean up elf symbol table sectionCharles Crayne2007-10-212-24/+24
|
* Allow $-prefixed hexadecimal FP as an alternative to 0xH. Peter Anvin2007-10-193-1/+174
| | | | | | Since we allow the prefix $ instead of 0x for integer constants, do the same for floating point. No suffix support at this time; we may want to consider if that would be appropriate.
* Scripts to remove stealth whitespaceH. Peter Anvin2007-10-192-0/+434
| | | | | Scripts to remove stealth whitespace from files and patches, respectively.
* Formatting: kill off "stealth whitespace"H. Peter Anvin2007-10-1944-245/+235
| | | | | "Stealth whitespace" makes it harder to read diffs, and just generally cause unwanted weirdness. Do a source-wide pass to get rid of it.
* test/floatx.asm: fix test caseH. Peter Anvin2007-10-191-1/+1
| | | | "dq" should have been "dt"
* uscore.asm: Fix test caseH. Peter Anvin2007-10-191-1/+1
| | | | "$1e+16" was missing, instead "$1e16" was duplicated
* float.c: mark read_exponent() staticH. Peter Anvin2007-10-191-1/+1
| | | | read_exponent() is not used outside float.c; mark static
* Don't confuse suffixed hexadecimal with floating-pointH. Peter Anvin2007-10-192-3/+24
| | | | | | | 1e30 is a floating-point constant, but 1e30h is not. The scanner won't know that until it sees the "h", so make sure we keep enough state to be able to distinguish "1e30" (a possible hex constant) from "1.e30", "1e+30" or "1.0" (unabiguously floating-point.)
* Anchor filename locations in .gitignoreH. Peter Anvin2007-10-191-46/+46
| | | | In particular, "Makefile" matched "test/Makefile" without the anchor.
* test/Makefile: Use -Ox instead of -O999H. Peter Anvin2007-10-191-1/+1
|
* Test of underscored constantsH. Peter Anvin2007-10-191-0/+10
|
* Allow underscores in numbers; better detection of FPH. Peter Anvin2007-10-193-78/+110
| | | | | | | | | - Allow underscores as group separators in numbers, for example: 0x1234_5678 is now a legal number. The underscore is just ignored, it adds no meaning. - Recognize dotless floating-point numbers, such as "1e30". This entails distinguishing hexadecimal numbers in the scanner, since e.g. 0x1e30 is a perfectly legitimate hex constant.
* Modernize nasm.spec.in and make it closer to the Fedora versionH. Peter Anvin2007-10-191-33/+32
|
* Suppress datarootdir warnings from configureCharles Crayne2007-10-183-0/+3
|
* Suppress signedness warnings in disassemblerCharles Crayne2007-10-182-5/+5
|
* Cleaner solution for MinGW handling of __STRICT_ANSI__H. Peter Anvin2007-10-182-3/+5
| | | | If MinGW is detected, undefine __STRICT_ANSI__ in compiler.h instead.
* configure: Undefine __STRICT_ANSI__ for mingw's benefitH. Peter Anvin2007-10-181-0/+3
| | | | | | mingw makes a bunch of prototypes unavailable if __STRICT_ANSI__ is defined. However, they are still detected by configure, which causes us pain.
* Fix invocation of readnum()H. Peter Anvin2007-10-182-12/+12
| | | | readnum() takes a boolean for error.
* Suppress a few signedness warningsCharles Crayne2007-10-183-5/+5
|
* Avoid unnecessary warning on redefinition of section (bug 801180)root2007-10-182-5/+11
|
* Generate stabs entries for any executable sectionCharles Crayne2007-10-172-14/+14
|
* NASM 0.99.05nasm-0.99.05H. Peter Anvin2007-10-161-1/+1
|
* Tests of obscenely large exponentsH. Peter Anvin2007-10-161-14/+24
|
* Comma-separate contents of __FLOAT__H. Peter Anvin2007-10-161-1/+1
|
* Implement floating-point option control directiveH. Peter Anvin2007-10-165-4/+98
| | | | | New directive [FLOAT] with associated standard macros; allows the setting to be saved and restored.
* Floating-point warning fixes; fix round-to-overflowH. Peter Anvin2007-10-163-13/+40
| | | | | | | | Actually generate the appropriate floating-point warnings, and only one per assembly, pretty please. Correct the round-to-overflow condition; as written all numbers with a positive exponent were considered overflows!
* Handle rounding of denorms correctly; make fp overflow a warningH. Peter Anvin2007-10-164-26/+59
| | | | | | - Handle rounding of denorms correctly - Make fp overflow a warning, not an error (produces Inf) - Make fp warnings controllable
* Additional entries for .gitignoreH. Peter Anvin2007-10-161-2/+10
|
* Refactor floating-point formatting code; fix 80-bit denormsH. Peter Anvin2007-10-161-181/+152
| | | | | | Refactor the floating-point formatting code so that the 80-bit format can be supported with common code. This fixes 80-bit denorms as a side effect; the shift value in 80-bit denorms was completely wrong.
* Add 1.5 as a test case: representative of an exact fractionH. Peter Anvin2007-10-161-0/+15
| | | | 1.5 is an exactly representable fraction, useful for test.
* Recognize 'd', 't' and 'y' as radix suffixesH. Peter Anvin2007-10-151-1/+3
| | | | 'd', 't' and 'y' now recognized as radix suffixes.
* Fix FISTTP opcodes (BR 689695)H. Peter Anvin2007-10-151-3/+3
|
* New floating-point conversion routinesH. Peter Anvin2007-10-152-303/+536
| | | | | | | Substitute in nasm64developer's "acfloat4" routine. This floating-point conversion routine is not perfect (it gets a fair number of LSB errors), but the old NASM code was just plain broken. nasm64developer's code at least gets within ±1 LSB.
* Add testnos3 from the gdtoa package (floating-point test)H. Peter Anvin2007-10-151-0/+972
|
* .gitignore file doesn't need to be in the release fileH. Peter Anvin2007-10-131-1/+1
|
* Add .gitignore file so "git status" produces something saneH. Peter Anvin2007-10-131-0/+49
| | | | | Add .gitignore file to tell git about files that don't need to be tracked.
* autoconf: drop AC_USE_SYSTEM_EXTENSIONS to support autoconf 2.59H. Peter Anvin2007-10-131-3/+5
| | | | | | AC_USE_SYSTEM_EXTENSIONS requires autoconf 2.61, which is still a little too new, apparently. Unless we have a specific reason to include it, don't.