mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-10 22:10:21 +02:00
VM: Define ASM_MUL on ARM only if SMULL instruction is supported.
* libguile/vm-i-scheme.c (ASM_MUL): Define only if the target architecture is known to implement the SMULL instruction.
This commit is contained in:
parent
f91a1864c3
commit
afa3c37ddc
1 changed files with 17 additions and 1 deletions
|
@ -341,7 +341,21 @@ VM_DEFINE_FUNCTION (149, ge, "ge?", 2)
|
|||
slow_sub: \
|
||||
do { } while (0)
|
||||
|
||||
# define ASM_MUL(x, y) \
|
||||
# if defined (__ARM_ARCH_3M__) || defined (__ARM_ARCH_4__) \
|
||||
|| defined (__ARM_ARCH_4T__) || defined (__ARM_ARCH_5__) \
|
||||
|| defined (__ARM_ARCH_5T__) || defined (__ARM_ARCH_5E__) \
|
||||
|| defined (__ARM_ARCH_5TE__) || defined (__ARM_ARCH_5TEJ__) \
|
||||
|| defined (__ARM_ARCH_6__) || defined (__ARM_ARCH_6J__) \
|
||||
|| defined (__ARM_ARCH_6K__) || defined (__ARM_ARCH_6Z__) \
|
||||
|| defined (__ARM_ARCH_6ZK__) || defined (__ARM_ARCH_6T2__) \
|
||||
|| defined (__ARM_ARCH_6M__) || defined (__ARM_ARCH_7__) \
|
||||
|| defined (__ARM_ARCH_7A__) || defined (__ARM_ARCH_7R__) \
|
||||
|| defined (__ARM_ARCH_7M__) || defined (__ARM_ARCH_7EM__) \
|
||||
|| defined (__ARM_ARCH_8A__)
|
||||
|
||||
/* The ARM architectures listed above support the SMULL instruction */
|
||||
|
||||
# define ASM_MUL(x, y) \
|
||||
if (SCM_LIKELY (SCM_I_INUMP (x) && SCM_I_INUMP (y))) \
|
||||
{ \
|
||||
scm_t_signed_bits rlo, rhi; \
|
||||
|
@ -354,6 +368,8 @@ VM_DEFINE_FUNCTION (149, ge, "ge?", 2)
|
|||
} \
|
||||
do { } while (0)
|
||||
|
||||
# endif
|
||||
|
||||
#endif
|
||||
|
||||
VM_DEFINE_FUNCTION (150, add, "add", 2)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue