aboutsummaryrefslogtreecommitdiffstats
path: root/configure.py
diff options
context:
space:
mode:
authorlloyd <[email protected]>2013-07-30 18:13:00 +0000
committerlloyd <[email protected]>2013-07-30 18:13:00 +0000
commit929a271f0c8e1eed79527d0663d75cd371b9841a (patch)
treec0c4d4027ed04c53e6a425107b1b7fcd2bc04803 /configure.py
parent1e420da500081dc11d60affc73933e980285d59e (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-xconfigure.py12
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