]> git.ipfire.org Git - thirdparty/LuaJIT.git/commitdiff
Merge branch 'master' into v2.1
authorMike Pall <mike>
Sat, 9 Sep 2023 21:20:57 +0000 (23:20 +0200)
committerMike Pall <mike>
Sat, 9 Sep 2023 21:20:57 +0000 (23:20 +0200)
1  2 
src/Makefile
src/lj_arch.h

diff --cc src/Makefile
Simple merge
diff --cc src/lj_arch.h
index 6e22b1b2ad4e293fe79e6eb7c337198be889a9ae,e77865d9e4157e0940a4a6cb60b85300dde85556..3e920f2a070c9721bbe98df3d9501e78aaa8d482
  #define LUAJIT_TARGET LUAJIT_ARCH_X64
  #elif defined(__arm__) || defined(__arm) || defined(__ARM__) || defined(__ARM)
  #define LUAJIT_TARGET LUAJIT_ARCH_ARM
 +#elif defined(__aarch64__)
 +#define LUAJIT_TARGET LUAJIT_ARCH_ARM64
  #elif defined(__ppc__) || defined(__ppc) || defined(__PPC__) || defined(__PPC) || defined(__powerpc__) || defined(__powerpc) || defined(__POWERPC__) || defined(__POWERPC) || defined(_M_PPC)
 -#ifdef __NO_FPRS__
 -#define LUAJIT_TARGET LUAJIT_ARCH_PPCSPE
 -#else
  #define LUAJIT_TARGET LUAJIT_ARCH_PPC
 -#endif
 +#elif defined(__mips64__) || defined(__mips64) || defined(__MIPS64__) || defined(__MIPS64)
 +#define LUAJIT_TARGET LUAJIT_ARCH_MIPS64
  #elif defined(__mips__) || defined(__mips) || defined(__MIPS__) || defined(__MIPS)
 -#define LUAJIT_TARGET LUAJIT_ARCH_MIPS
 +#define LUAJIT_TARGET LUAJIT_ARCH_MIPS32
  #else
- #error "No support for this architecture (yet)"
+ #error "Architecture not supported (in this version), see: https://luajit.org/status.html#architectures"
  #endif
  
  #endif
  #define LJ_TARGET_MASKSHIFT   0
  #define LJ_TARGET_MASKROT     1
  #define LJ_TARGET_UNIFYROT    1       /* Want only IR_BROL. */
 -#define LJ_ARCH_NUMMODE               LJ_NUMMODE_DUAL_SINGLE
 +
 +#if LJ_TARGET_CONSOLE
 +#define LJ_ARCH_PPC32ON64     1
 +#define LJ_ARCH_NOFFI         1
 +#elif LJ_ARCH_BITS == 64
 +#error "No support for PPC64"
++#undef LJ_TARGET_PPC
 +#endif
  
  #if _ARCH_PWR7
  #define LJ_ARCH_VERSION               70
  #endif
  #if !(__ARM_EABI__ || LJ_TARGET_IOS)
  #error "Only ARM EABI or iOS 3.0+ ABI is supported"
+ #undef LJ_TARGET_ARM
  #endif
 -#elif LJ_TARGET_PPC || LJ_TARGET_PPCSPE
 -#if defined(_SOFT_FLOAT) || defined(_SOFT_DOUBLE)
 -#error "No support for PowerPC CPUs without double-precision FPU, use LuaJIT v2.1"
 -#undef LJ_TARGET_PPC
 +#elif LJ_TARGET_ARM64
 +#if defined(_ILP32)
 +#error "No support for ILP32 model on ARM64"
++#undef LJ_TARGET_ARM64
  #endif
 +#elif LJ_TARGET_PPC
  #if defined(_LITTLE_ENDIAN) && (!defined(_BYTE_ORDER) || (_BYTE_ORDER == _LITTLE_ENDIAN))
 -#error "No support for little-endian PowerPC"
 +#error "No support for little-endian PPC32"
+ #undef LJ_TARGET_PPC
  #endif
 -#if defined(_LP64)
 -#error "No support for PowerPC 64 bit mode"
 +#if defined(__NO_FPRS__) && !defined(_SOFT_FLOAT)
- #error "No support for PPC/e500 anymore (use LuaJIT 2.0)"
++#error "No support for PPC/e500, use LuaJIT 2.0"
+ #undef LJ_TARGET_PPC
  #endif
 -#elif LJ_TARGET_MIPS
 -#if defined(__mips_soft_float)
 -#error "No support for MIPS CPUs without FPU, use LuaJIT v2.1+"
 +#elif LJ_TARGET_MIPS32
 +#if !((defined(_MIPS_SIM_ABI32) && _MIPS_SIM == _MIPS_SIM_ABI32) || (defined(_ABIO32) && _MIPS_SIM == _ABIO32))
 +#error "Only o32 ABI supported for MIPS32"
+ #undef LJ_TARGET_MIPS
  #endif
 -#if defined(_LP64)
 -#error "No support for MIPS64, use LuaJIT v2.1+"
 +#if LJ_TARGET_MIPSR6
 +/* Not that useful, since most available r6 CPUs are 64 bit. */
 +#error "No support for MIPS32R6"
++#undef LJ_TARGET_MIPS
 +#endif
 +#elif LJ_TARGET_MIPS64
 +#if !((defined(_MIPS_SIM_ABI64) && _MIPS_SIM == _MIPS_SIM_ABI64) || (defined(_ABI64) && _MIPS_SIM == _ABI64))
 +/* MIPS32ON64 aka n32 ABI support might be desirable, but difficult. */
 +#error "Only n64 ABI supported for MIPS64"
+ #undef LJ_TARGET_MIPS
  #endif
  #endif
  #endif