ref: 309c0ba8273d4cebb693fb9470196169cbcb1472
parent: e13b3ed9d70a4eba35702e0205ec9810b32e6213
author: Sigrid Solveig Haflínudóttir <sigrid@ftrv.se>
date: Tue Mar 7 16:50:54 EST 2023
quick & dirty arm64 support
--- a/llt/dtypes.h
+++ b/llt/dtypes.h
@@ -34,7 +34,7 @@
#endif
#if defined(OPENBSD) || defined(FREEBSD) || defined(NETBSD) || defined(__plan9__)
-#if defined(__x86_64__) || defined(__amd64__)
+#if defined(__x86_64__) || defined(__amd64__) || defined(__arm64__)
# define __SIZEOF_POINTER__ 8
#else
# define __SIZEOF_POINTER__ 4
--- a/llt/utils.h
+++ b/llt/utils.h
@@ -23,6 +23,9 @@
#elif defined( __i386__ )//gnu c
# define ARCH_X86
# define __CPU__ 386
+#elif defined( __arm64__ )
+# define ARCH_ARM64
+# define __CPU__ arm64
#else
# error "unknown architecture"
#endif
@@ -32,7 +35,7 @@
int str2int(char *str, size_t len, int64_t *res, uint32_t base);
int isdigit_base(char c, int base);
-#ifdef ARCH_X86_64
+#if defined(ARCH_X86_64) || defined(ARCH_ARM64)
# define LEGACY_REGS "=Q"
#else
# define LEGACY_REGS "=q"