platform/upstream/nasm.git
16 years agoSwitch the preprocessor over to using the hash table library
H. Peter Anvin [Mon, 17 Sep 2007 00:57:25 +0000 (17:57 -0700)]
Switch the preprocessor over to using the hash table library

Switch the preprocessor over to using the hash table library.  On my
system, this improves the runtime of the output of test/pref/macro.pl
from over 600 seconds to 7 seconds.

Macros have an odd mix of case-sensitive and case-insensitive
behaviour, plus there are matching parameters for arguments, etc.  As
a result, we use case-insensitive hash tables and use a linked list to
store all the possible isomorphs.

16 years agoFix the handling of local labels
H. Peter Anvin [Mon, 17 Sep 2007 00:53:17 +0000 (17:53 -0700)]
Fix the handling of local labels

In converting the label system over to the new hash table library,
accidentally broke local labels by prepending the prefix twice.  Fix.

16 years agopreproc.c: remove unnecessary int64_t
H. Peter Anvin [Sat, 15 Sep 2007 01:36:01 +0000 (18:36 -0700)]
preproc.c: remove unnecessary int64_t

We hardly need to support more than 2^31 arguments to a macro.

16 years agoUse the new hash table function library to store labels
H. Peter Anvin [Sat, 15 Sep 2007 01:03:29 +0000 (18:03 -0700)]
Use the new hash table function library to store labels

Use the new hash table function library to store labels.  When
compiling on my 64-bit system, it reduces the assembly time for the
output of test/perf/label.pl from 73 to 7 seconds.

16 years agoDefine a proper hash table library
H. Peter Anvin [Fri, 14 Sep 2007 06:34:21 +0000 (23:34 -0700)]
Define a proper hash table library

Define a proper hash table library, instead of the current ad hoc stuff
used for both labels and macros.  This only implements the actual
library; it is not yet used.

We use a CRC64 as a prehash.  This is almost certainly overkill,
although it is rather efficient (except, arguably, the table lookup)
on 64-bit platforms, and not all that bad on 32-bit platforms.  All we
really need is a function which produces two independent 32-bit
results which are used as the primary and secondary hash
respectively.  Either way, the prehash function is easily replacable
if/when we have a quicker alternative.

16 years agoSimple performance benchmarks: label, macro and token lookups
H. Peter Anvin [Fri, 14 Sep 2007 01:13:20 +0000 (18:13 -0700)]
Simple performance benchmarks: label, macro and token lookups

Simple scripts to generate performance benchmarks for label,
macro and token lookups.  The label and macro lookups are simple
numerical sequences; it may be desirable to add some more
sophisticated algorithms for producing tokens in case we want to
compare different hash functions against each other.

16 years agorelease script: fix final cleanup
H. Peter Anvin [Thu, 13 Sep 2007 19:25:32 +0000 (12:25 -0700)]
release script: fix final cleanup

Make sure we're in the right place for the final cleanup.

16 years agoModify release script for a git-centric world
H. Peter Anvin [Thu, 13 Sep 2007 19:22:00 +0000 (12:22 -0700)]
Modify release script for a git-centric world

Change the release script to use git rather than CVS.
THE BEHAVIOR OF THE SCRIPT HAS CHANGED -- make sure to look at it
before use.

16 years agopptok.c: don't insist on C99 compiler behaviour
H. Peter Anvin [Thu, 13 Sep 2007 18:06:42 +0000 (11:06 -0700)]
pptok.c: don't insist on C99 compiler behaviour

Declarations that are not at the head is C99 behaviour, but it's
rather pointless for this little piece of code.  Fix to work with
older compilers.

16 years agoFix literal F2 and F3 prefixes
H. Peter Anvin [Thu, 13 Sep 2007 05:02:06 +0000 (22:02 -0700)]
Fix literal F2 and F3 prefixes

Correct literal F2 and F3 prefixes and instead use \332 and \333.
Otherwise we get the REX prefixes in the wrong place.

16 years agoAdd (untested!) SSSE3, SSE4.1, SSE4.2 instructions
H. Peter Anvin [Thu, 13 Sep 2007 04:58:51 +0000 (21:58 -0700)]
Add (untested!) SSSE3, SSE4.1, SSE4.2 instructions

Add the SSSE3, SSE4.1 and SSE4.2 instruction sets.  Change \332 to be
a literal 0xF2 prefix, by analog with \333 for 0xF3 prefix (the
previous \332 flag changed to \335).  This is necessary to get the REX
prefix in the right place for instructions that use it.

We are going to have to go in and change existing instruction patterns
which use these, as well.

16 years agoAdd support for Tejas New Instructions (SSSE3)
H. Peter Anvin [Thu, 13 Sep 2007 04:02:30 +0000 (21:02 -0700)]
Add support for Tejas New Instructions (SSSE3)

Add the SSSE3 instruction set.

16 years agoRemove $Id$ tags (useless with git)
H. Peter Anvin [Thu, 13 Sep 2007 03:41:58 +0000 (20:41 -0700)]
Remove $Id$ tags (useless with git)

Remove CVS $Id$ tags, since git doesn't use them.

16 years agoUse rm32 operands for VMREAD/VMWRITE
H. Peter Anvin [Thu, 13 Sep 2007 03:38:21 +0000 (20:38 -0700)]
Use rm32 operands for VMREAD/VMWRITE

Use rm32 instead of coding reg32 and mem32 separately.

16 years agoMacros for SSSE3/SSE4 instruction sets
H. Peter Anvin [Thu, 13 Sep 2007 03:37:32 +0000 (20:37 -0700)]
Macros for SSSE3/SSE4 instruction sets

Add instruction set flags for the SSSE3, SSE4.1 and SSE4.2 instruction
subsets.

16 years agoSupport r/m operands for non-integer types
H. Peter Anvin [Thu, 13 Sep 2007 03:32:39 +0000 (20:32 -0700)]
Support r/m operands for non-integer types

Support r/m operands for non-integer operands types, i.e. mmx or xmm
operands.  This allows mmx and xmm operands to be written more
compactly, speeding up the assembler.

16 years agoUse enumerations where practical to ease debugging
H. Peter Anvin [Thu, 13 Sep 2007 03:27:41 +0000 (20:27 -0700)]
Use enumerations where practical to ease debugging

We have a lot of enumerations; by declaring fields as such, we make it
easier when debugging, since the debugger can display the enumerations
in cleartext.  However, make sure exceptional values (like -1) are
included in the enumeration, since the compiler otherwise may not
include it in the valid range of the enumeration.

16 years agopptok.c: quick-and-dirty downcasing during prehashing
H. Peter Anvin [Wed, 12 Sep 2007 17:02:55 +0000 (17:02 +0000)]
pptok.c: quick-and-dirty downcasing during prehashing

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.)

16 years agophash: Tell the user when the graph is OK
H. Peter Anvin [Wed, 12 Sep 2007 16:55:57 +0000 (16:55 +0000)]
phash: Tell the user when the graph is OK

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."

16 years agopptok.c: handle holes in the pp_directives array
H. Peter Anvin [Wed, 12 Sep 2007 05:18:20 +0000 (05:18 +0000)]
pptok.c: handle holes in the pp_directives array

We need to fail if we land in a hole in the pp_directives array, since
we have a noncontiguous enum preproc_token now.

16 years agopreproc.c: adjust whitespace
H. Peter Anvin [Wed, 12 Sep 2007 04:20:08 +0000 (04:20 +0000)]
preproc.c: adjust whitespace

Be consistent about whitespace.

16 years agoMore automation in the preprocessor conditionals handling
H. Peter Anvin [Wed, 12 Sep 2007 04:18:37 +0000 (04:18 +0000)]
More automation in the preprocessor conditionals handling

Further automate the production of preprocessor conditionals.  Now the
code automatically folds if/elif and the negatives.

16 years agopptok.c: fix spacing
H. Peter Anvin [Wed, 12 Sep 2007 02:13:39 +0000 (02:13 +0000)]
pptok.c: fix spacing

16 years agoGenerate automatically correct tests for %if and %elif
H. Peter Anvin [Wed, 12 Sep 2007 02:12:07 +0000 (02:12 +0000)]
Generate automatically correct tests for %if and %elif

Automatically generate macros to test for %if and %elif variants, which
are guaranteed to be correct across future changes.

16 years agoRun "make alldeps"; add dependencies missing from the previous checkin
H. Peter Anvin [Wed, 12 Sep 2007 01:34:19 +0000 (01:34 +0000)]
Run "make alldeps"; add dependencies missing from the previous checkin

It helps to run "make alldeps" when the changes are actually complete...

16 years agoUse a perfect hash to look up preprocessor directives
H. Peter Anvin [Wed, 12 Sep 2007 01:29:43 +0000 (01:29 +0000)]
Use a perfect hash to look up preprocessor directives

Use a perfect hash to look up preprocessor directives, and generate
the preprocessor directive list automatically.

16 years agophash: Be a bit more aggressive about trying to make a small hash
H. Peter Anvin [Wed, 12 Sep 2007 01:27:53 +0000 (01:27 +0000)]
phash: Be a bit more aggressive about trying to make a small hash

Change the threshold to 0.7 instead of 0.8.

16 years agoAdd RCXZ as a known preprocessor condition
H. Peter Anvin [Wed, 12 Sep 2007 00:22:29 +0000 (00:22 +0000)]
Add RCXZ as a known preprocessor condition

16 years agodoc: add some cross-references
H. Peter Anvin [Tue, 11 Sep 2007 23:57:23 +0000 (23:57 +0000)]
doc: add some cross-references

16 years agoFeeble attempt at updating the documentation; remove Appendix B
H. Peter Anvin [Tue, 11 Sep 2007 23:52:01 +0000 (23:52 +0000)]
Feeble attempt at updating the documentation; remove Appendix B

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.

16 years agoHandle instructions which can have both REX.W and OSP
H. Peter Anvin [Tue, 11 Sep 2007 22:44:03 +0000 (22:44 +0000)]
Handle instructions which can have both REX.W and OSP

16 years agoUse enums to make debugging easier
H. Peter Anvin [Tue, 11 Sep 2007 22:14:18 +0000 (22:14 +0000)]
Use enums to make debugging easier

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.

16 years agondisasm: handle \366 codes, prefer unprefixed instructions
H. Peter Anvin [Tue, 11 Sep 2007 22:13:17 +0000 (22:13 +0000)]
ndisasm: handle \366 codes, prefer unprefixed instructions

- Implement \366 codes in ndisasm
- Prefer instruction patterns without loose prefixes if possible
- Fix improper initialization of operands in ndisasm

16 years agoSimplify tokens.dat slightly
H. Peter Anvin [Tue, 11 Sep 2007 22:00:34 +0000 (22:00 +0000)]
Simplify tokens.dat slightly

16 years agoQuiet gcc warning about uninitialized variables
H. Peter Anvin [Tue, 11 Sep 2007 04:26:44 +0000 (04:26 +0000)]
Quiet gcc warning about uninitialized variables

16 years agoMake the big instruction arrays "const"
H. Peter Anvin [Tue, 11 Sep 2007 04:16:57 +0000 (04:16 +0000)]
Make the big instruction arrays "const"

Make the big instruction arrays "const", so they end up in readonly
storage.  While we're at it, move their prototypes into insns.h.

16 years agoUse an actual enum for the opcode
H. Peter Anvin [Mon, 10 Sep 2007 23:32:05 +0000 (23:32 +0000)]
Use an actual enum for the opcode

Use an actual named enum for the opcode, that way it shows up in
cleartext while debugging.

16 years agoFix order of token arguments
H. Peter Anvin [Mon, 10 Sep 2007 23:30:21 +0000 (23:30 +0000)]
Fix order of token arguments

Order of token arguments was reversed, but tokens.dat wasn't updated
accordingly.  Fix.

16 years agoassemble.c: correct special handing of ESP/RSP
H. Peter Anvin [Mon, 10 Sep 2007 18:59:26 +0000 (18:59 +0000)]
assemble.c: correct special handing of ESP/RSP

Correct the special handling of ESP/RSP (must be in the base register
slot, but requires SIB.)

16 years agotokhash: correct duplicate-token test
H. Peter Anvin [Mon, 10 Sep 2007 18:59:01 +0000 (18:59 +0000)]
tokhash: correct duplicate-token test

16 years agotokhash: adjust table types to reduce size
H. Peter Anvin [Mon, 10 Sep 2007 18:58:40 +0000 (18:58 +0000)]
tokhash: adjust table types to reduce size

Adjust the sizes of data types to reduce the total size of the tokhash
data structure.

16 years agoFix the MMXREG and XMMREG flags definitions.
H. Peter Anvin [Mon, 10 Sep 2007 18:55:52 +0000 (18:55 +0000)]
Fix the MMXREG and XMMREG flags definitions.

16 years agonasm.spec.in: Copyright -> License
H. Peter Anvin [Wed, 5 Sep 2007 06:48:38 +0000 (06:48 +0000)]
nasm.spec.in: Copyright -> License

16 years agoFix "make tar"; useful for RPM testing
H. Peter Anvin [Wed, 5 Sep 2007 06:40:51 +0000 (06:40 +0000)]
Fix "make tar"; useful for RPM testing

16 years agoRemove obsolete Serial: construct; we shouldn't need it anyway.
H. Peter Anvin [Wed, 5 Sep 2007 06:24:43 +0000 (06:24 +0000)]
Remove obsolete Serial: construct; we shouldn't need it anyway.

16 years agoProvide 64-bit support for ORG directive
Chuck Crayne [Tue, 4 Sep 2007 01:29:43 +0000 (01:29 +0000)]
Provide 64-bit support for ORG directive

16 years agoFix some MMX/SSE irregularities which interact with the 64-bit support
H. Peter Anvin [Sun, 2 Sep 2007 16:37:03 +0000 (16:37 +0000)]
Fix some MMX/SSE irregularities which interact with the 64-bit support

16 years agophash.ph: yet another attempt at getting Perl to behave, arithmetically
H. Peter Anvin [Sun, 2 Sep 2007 14:46:00 +0000 (14:46 +0000)]
phash.ph: yet another attempt at getting Perl to behave, arithmetically

16 years agoSimple 64-bit org test
H. Peter Anvin [Sun, 2 Sep 2007 06:23:29 +0000 (06:23 +0000)]
Simple 64-bit org test

16 years agophash.ph: remove some stale code
H. Peter Anvin [Sun, 2 Sep 2007 06:20:15 +0000 (06:20 +0000)]
phash.ph: remove some stale code

Remove old randomization code which is no longer used.

16 years agoForce use of integer values for generating hash keys.
Chuck Crayne [Sun, 2 Sep 2007 01:00:34 +0000 (01:00 +0000)]
Force use of integer values for generating hash keys.

16 years agophash: don't rely on the build platform Perl version of rand()
H. Peter Anvin [Fri, 31 Aug 2007 18:10:23 +0000 (18:10 +0000)]
phash: don't rely on the build platform Perl version of rand()

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.

16 years agotokhash.pl: formatting changes for readability
H. Peter Anvin [Fri, 31 Aug 2007 07:31:51 +0000 (07:31 +0000)]
tokhash.pl: formatting changes for readability

No functional change

16 years agotokhash: Speed up the rejection of unhashed values
H. Peter Anvin [Fri, 31 Aug 2007 07:23:31 +0000 (07:23 +0000)]
tokhash: Speed up the rejection of unhashed values

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().

16 years agotokhash.pl: "ix" should have the same width as the "hash" arrays
H. Peter Anvin [Fri, 31 Aug 2007 06:06:17 +0000 (06:06 +0000)]
tokhash.pl: "ix" should have the same width as the "hash" arrays

For correctness in case of a very "linear" graph, "ix" needs to have
the same width as the "hash" arrays.

16 years agoAdd "do not edit" comment to tokhash.c
H. Peter Anvin [Fri, 31 Aug 2007 00:28:35 +0000 (00:28 +0000)]
Add "do not edit" comment to tokhash.c

16 years agoMake the token hash a bit smaller by using 16-bit hash tables
H. Peter Anvin [Fri, 31 Aug 2007 00:23:40 +0000 (00:23 +0000)]
Make the token hash a bit smaller by using 16-bit hash tables

16 years agoMinor cleanup; remove duplication of names.c
H. Peter Anvin [Fri, 31 Aug 2007 00:16:10 +0000 (00:16 +0000)]
Minor cleanup; remove duplication of names.c

16 years agophash.ph: use a bipartite graph to reduce the storage requirements
H. Peter Anvin [Thu, 30 Aug 2007 23:42:39 +0000 (23:42 +0000)]
phash.ph: use a bipartite graph to reduce the storage requirements

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.

16 years agoFinishing touches on perfect hash tokenizer; actually turn the thing on
H. Peter Anvin [Thu, 30 Aug 2007 22:35:34 +0000 (22:35 +0000)]
Finishing touches on perfect hash tokenizer; actually turn the thing on

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.

16 years agoMakefile rule for tokhash.c
H. Peter Anvin [Thu, 30 Aug 2007 21:50:20 +0000 (21:50 +0000)]
Makefile rule for tokhash.c

16 years agotokens.dat: Data file containing alphanumeric tokens not in other .dats
H. Peter Anvin [Thu, 30 Aug 2007 21:47:46 +0000 (21:47 +0000)]
tokens.dat: Data file containing alphanumeric tokens not in other .dats

16 years agoGenerate a perfect hash for the token parser
H. Peter Anvin [Thu, 30 Aug 2007 21:45:56 +0000 (21:45 +0000)]
Generate a perfect hash for the token parser

16 years agoFix bugs in repeated suffix handling, which led to missing r8d/r8w/r8d
H. Peter Anvin [Thu, 30 Aug 2007 21:40:08 +0000 (21:40 +0000)]
Fix bugs in repeated suffix handling, which led to missing r8d/r8w/r8d

16 years agophash.ph: more powerful prehashing
H. Peter Anvin [Thu, 30 Aug 2007 21:39:37 +0000 (21:39 +0000)]
phash.ph: more powerful prehashing

16 years agoMake the perfect hash generator an includable module
H. Peter Anvin [Thu, 30 Aug 2007 20:15:25 +0000 (20:15 +0000)]
Make the perfect hash generator an includable module

16 years agoCorrect the logic for recording fs: and gs: overrides.
H. Peter Anvin [Wed, 29 Aug 2007 20:30:31 +0000 (20:30 +0000)]
Correct the logic for recording fs: and gs: overrides.

16 years agoGenerate R_X86_64_64 relocations in elf64 output
H. Peter Anvin [Wed, 29 Aug 2007 18:20:19 +0000 (18:20 +0000)]
Generate R_X86_64_64 relocations in elf64 output

When appropriate, generate R_X86_64_64 relocations in elf64 output.

16 years agoAdd README file
H. Peter Anvin [Wed, 29 Aug 2007 17:24:03 +0000 (17:24 +0000)]
Add README file

16 years agoCreate a Perl library directory, and add the Graph module to it
H. Peter Anvin [Wed, 29 Aug 2007 17:20:09 +0000 (17:20 +0000)]
Create a Perl library directory, and add the Graph module to it

Graph-0.84 from CPAN

16 years agoPerfect hash generator, as a perl script
H. Peter Anvin [Wed, 29 Aug 2007 17:05:17 +0000 (17:05 +0000)]
Perfect hash generator, as a perl script

Requires the CPAN Graph module.

16 years agoUse standard macro for the default directive
H. Peter Anvin [Wed, 29 Aug 2007 16:41:43 +0000 (16:41 +0000)]
Use standard macro for the default directive

16 years agoAdd standard macro for [default] directive
H. Peter Anvin [Wed, 29 Aug 2007 16:40:26 +0000 (16:40 +0000)]
Add standard macro for [default] directive

16 years agoMore test cases for rel and abs addressing
H. Peter Anvin [Wed, 29 Aug 2007 16:38:47 +0000 (16:38 +0000)]
More test cases for rel and abs addressing

16 years agoAdd [default] directive
H. Peter Anvin [Wed, 29 Aug 2007 16:38:05 +0000 (16:38 +0000)]
Add [default] directive

Add the [default {abs|rel}] directive, and clean up directive parsing.

16 years agonasmlib: add bsii() case-insensitive version of bsi()
H. Peter Anvin [Wed, 29 Aug 2007 16:25:46 +0000 (16:25 +0000)]
nasmlib: add bsii() case-insensitive version of bsi()

16 years agoAdd test cases for IP-relative addressing
H. Peter Anvin [Wed, 29 Aug 2007 15:49:53 +0000 (15:49 +0000)]
Add test cases for IP-relative addressing

16 years agoSuppress IP-relative only for fs: and gs: overrides
H. Peter Anvin [Wed, 29 Aug 2007 15:19:19 +0000 (15:19 +0000)]
Suppress IP-relative only for fs: and gs: overrides

AMD has (undocumented) segment limits even in 64-bit mode, so people
may want to use cs/ds/es/ss overrides.  Since there are no bases, however,
IP-relative still applies.

See:
http://www.amd.com.hk/us-en/assets/content_type/DownloadableAssets/dwamd_kernel_summit_08_RB.pdf

16 years agoImplement REL/ABS modifiers
H. Peter Anvin [Tue, 28 Aug 2007 23:06:00 +0000 (23:06 +0000)]
Implement REL/ABS modifiers

Implement "REL" and "ABS" modifiers for offsets in 64-bit mode.  This
replaces "rip+XXX" type addressing.  The infrastructure to set the default
mode is there, but there is nothing to throw the switch just yet.

16 years agoattempt to make static makefiles aware of outelf32/outelf64
Frank Kotler [Sun, 26 Aug 2007 05:51:39 +0000 (05:51 +0000)]
attempt to make static makefiles aware of outelf32/outelf64

16 years agoadd nasm_strsep to nasmlib, for output/outmacho.c - strtok doesn't work
Frank Kotler [Sun, 26 Aug 2007 05:48:54 +0000 (05:48 +0000)]
add nasm_strsep to nasmlib, for output/outmacho.c - strtok doesn't work

16 years agoremove "#include <unistd.h> from rdoff directory - two places - it annoyed Windows...
Frank Kotler [Sun, 26 Aug 2007 05:41:33 +0000 (05:41 +0000)]
remove "#include <unistd.h> from rdoff directory - two places - it annoyed Windows users and seems unneeded

16 years agofinally commit Mike Frysinger's "elf-visibility" patch
Frank Kotler [Sun, 26 Aug 2007 05:10:24 +0000 (05:10 +0000)]
finally commit Mike Frysinger's "elf-visibility" patch

16 years agoregs.pl: handle dashed sequences with suffixes
H. Peter Anvin [Mon, 20 Aug 2007 21:03:14 +0000 (21:03 +0000)]
regs.pl: handle dashed sequences with suffixes

Handle dashed sequences with suffixes.  Use that for r8-r15[bwd].

16 years agosync.c: change ULONG_MAX to UINT32_MAX
H. Peter Anvin [Mon, 20 Aug 2007 20:10:04 +0000 (20:10 +0000)]
sync.c: change ULONG_MAX to UINT32_MAX

The value returned is uint32_t, not unsigned long.  This creates a
warning when compiling on 64-bit machines.

16 years agoAdd _MIN and _MAX macros for the fixed-size types.
H. Peter Anvin [Mon, 20 Aug 2007 20:09:11 +0000 (20:09 +0000)]
Add _MIN and _MAX macros for the fixed-size types.

16 years agoldrdf: cast output of sizeof() before passing to printf(), to avoid warning.
H. Peter Anvin [Mon, 20 Aug 2007 20:02:17 +0000 (20:02 +0000)]
ldrdf: cast output of sizeof() before passing to printf(), to avoid warning.

The C99 way of doing this would be to use %zu, but that requires intrinsic
C library support.

16 years agoFixed RIP address processing ambiguity found by Charles Crayne.
Keith Kanios [Sun, 19 Aug 2007 18:49:26 +0000 (18:49 +0000)]
Fixed RIP address processing ambiguity found by Charles Crayne.

16 years agoFixed issues with REX prefix effective address generation. Fixed XMM instruction...
Keith Kanios [Fri, 17 Aug 2007 07:37:52 +0000 (07:37 +0000)]
Fixed issues with REX prefix effective address generation. Fixed XMM instruction output.

16 years agoChanged MMXREG and XMMREG flags to help resolve invalid REX prefix generation for...
Keith Kanios [Fri, 17 Aug 2007 02:03:10 +0000 (02:03 +0000)]
Changed MMXREG and XMMREG flags to help resolve invalid REX prefix generation for MMX instructions.

16 years agoMore int/int32_t confusion
H. Peter Anvin [Sat, 7 Jul 2007 02:01:08 +0000 (02:01 +0000)]
More int/int32_t confusion

16 years agoregflag() should return int32_t.
H. Peter Anvin [Sat, 7 Jul 2007 01:59:52 +0000 (01:59 +0000)]
regflag() should return int32_t.

16 years agoDetect missing <inttypes.h> and include ersatz version if missing
H. Peter Anvin [Thu, 21 Jun 2007 19:00:12 +0000 (19:00 +0000)]
Detect missing <inttypes.h> and include ersatz version if missing

16 years agointtypes.h: for older preprocessors, specify L and LL as appropriate
H. Peter Anvin [Thu, 21 Jun 2007 06:24:23 +0000 (06:24 +0000)]
inttypes.h: for older preprocessors, specify L and LL as appropriate

16 years agointtypes.h: Fix spelling of SHRT_MAX
H. Peter Anvin [Thu, 21 Jun 2007 06:20:43 +0000 (06:20 +0000)]
inttypes.h: Fix spelling of SHRT_MAX

16 years agointtypes.h: do a single ersatz <inttypes.h> based on <limits.h>
H. Peter Anvin [Thu, 21 Jun 2007 06:15:42 +0000 (06:15 +0000)]
inttypes.h: do a single ersatz <inttypes.h> based on <limits.h>

17 years agoSupport 32-bit direct addressing in 64-bit mode without base or index regs
Chuck Crayne [Sun, 3 Jun 2007 02:42:41 +0000 (02:42 +0000)]
Support 32-bit direct addressing in 64-bit mode without base or index regs

17 years agoFix the [U]INT*_C() creation macros
H. Peter Anvin [Sat, 2 Jun 2007 02:26:21 +0000 (02:26 +0000)]
Fix the [U]INT*_C() creation macros

The [U]INT*_C() macros were broken, because ## takes precedence over
macro resolution.

17 years agoFor platforms that don't have them, provide <inttypes.h> for common models.
H. Peter Anvin [Sat, 2 Jun 2007 00:05:35 +0000 (00:05 +0000)]
For platforms that don't have them, provide <inttypes.h> for common models.

Apparently, some platforms (*cough* MSVC *cough*) haven't figured out what
year it is and are behind the curve.  Provide <inttypes.h> for common
memory models.  We can add more if there are odd platforms which don't
have "long long" for 64 bits, too.

17 years agoFix the handling of the \313 code.
H. Peter Anvin [Wed, 30 May 2007 22:21:11 +0000 (22:21 +0000)]
Fix the handling of the \313 code.

\313 indicates a fixed 64-bit address size.  It was incorrectly
documented and incorrectly implemented in the assembler, and was
unimplemented in the disassembler.