diff options
author | lloyd <[email protected]> | 2013-07-30 18:13:00 +0000 |
---|---|---|
committer | lloyd <[email protected]> | 2013-07-30 18:13:00 +0000 |
commit | 929a271f0c8e1eed79527d0663d75cd371b9841a (patch) | |
tree | c0c4d4027ed04c53e6a425107b1b7fcd2bc04803 /configure.py | |
parent | 1e420da500081dc11d60affc73933e980285d59e (diff) |
Add a generic 64x64->128 multiplication op.
Use it to merge mp_msvc64 (was using MSVC _umul128 intrinsic) and
mp_asm64 (was using inline asm) into mp_word64, which calls the new
mul64x64_128 function. That function wraps any available compiler
intrinsics or CPU instructions.
Diffstat (limited to 'configure.py')
-rwxr-xr-x | configure.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/configure.py b/configure.py index 338af8766..87ec8aa4a 100755 --- a/configure.py +++ b/configure.py @@ -645,13 +645,17 @@ class ArchInfo(object): ['aliases', 'submodels', 'submodel_aliases', 'isa_extensions'], { 'endian': None, 'family': None, - 'unaligned': 'no' + 'unaligned': 'no', + 'wordsize': None }) self.submodel_aliases = force_to_dict(self.submodel_aliases) self.unaligned_ok = (1 if self.unaligned == 'ok' else 0) + if self.wordsize is not None: + self.wordsize = int(self.wordsize) + """ Return a list of all submodels for this arch, ordered longest to shortest @@ -697,6 +701,12 @@ class ArchInfo(object): if self.family is not None: macros.append('TARGET_CPU_IS_%s_FAMILY' % (self.family.upper())) + if self.wordsize is not None: + macros.append('TARGET_CPU_NATIVE_WORD_SIZE %d' % (self.wordsize)) + + if self.wordsize == 64: + macros.append('TARGET_CPU_HAS_NATIVE_64BIT') + macros.append('TARGET_UNALIGNED_MEMORY_ACCESS_OK %d' % (unaligned_ok)) return macros |