Browse Source

public: add definitions for PowerPC

This doesn't mean we have a port but at least it allows building for ppc64el
pull/2/head
Alibek Omarov 12 months ago
parent
commit
777dd3a03c
  1. 4
      public/build.c
  2. 6
      public/build.h
  3. 3
      public/buildenums.h
  4. 6
      public/tests/test_build.c

4
public/build.c

@ -162,6 +162,10 @@ const char *Q_ArchitectureStringByID( const int arch, const uint abi, const int @@ -162,6 +162,10 @@ const char *Q_ArchitectureStringByID( const int arch, const uint abi, const int
return "e2k";
case ARCHITECTURE_JS:
return "javascript";
case ARCHITECTURE_PPC:
return endianness == ENDIANNESS_LITTLE ?
( is64 ? "ppc64el" : "ppcel" ):
( is64 ? "ppc64" : "ppc" );
case ARCHITECTURE_MIPS:
return endianness == ENDIANNESS_LITTLE ?
( is64 ? "mips64el" : "mipsel" ):

6
public/build.h

@ -76,6 +76,7 @@ Then you can use another oneliner to query all variables: @@ -76,6 +76,7 @@ Then you can use another oneliner to query all variables:
#undef XASH_NETBSD
#undef XASH_OPENBSD
#undef XASH_POSIX
#undef XASH_PPC
#undef XASH_RISCV
#undef XASH_RISCV_DOUBLEFP
#undef XASH_RISCV_SINGLEFP
@ -195,6 +196,11 @@ Then you can use another oneliner to query all variables: @@ -195,6 +196,11 @@ Then you can use another oneliner to query all variables:
#elif defined __e2k__
#define XASH_64BIT 1
#define XASH_E2K 1
#elif defined __PPC__ || defined __powerpc__
#define XASH_PPC 1
#if defined __PPC64__ || defined __powerpc64__
#define XASH_64BIT 1
#endif
#elif defined _M_ARM // msvc
#define XASH_ARM 7
#define XASH_ARM_HARDFP 1

3
public/buildenums.h

@ -89,6 +89,7 @@ GNU General Public License for more details. @@ -89,6 +89,7 @@ GNU General Public License for more details.
#define ARCHITECTURE_JS 6
#define ARCHITECTURE_E2K 7
#define ARCHITECTURE_RISCV 8
#define ARCHITECTURE_PPC 9
#if XASH_AMD64
#define XASH_ARCHITECTURE ARCHITECTURE_AMD64
@ -104,6 +105,8 @@ GNU General Public License for more details. @@ -104,6 +105,8 @@ GNU General Public License for more details.
#define XASH_ARCHITECTURE ARCHITECTURE_E2K
#elif XASH_RISCV
#define XASH_ARCHITECTURE ARCHITECTURE_RISCV
#elif XASH_PPC
#define XASH_ARCHITECTURE ARCHITECTURE_PPC
#else
#error
#endif

6
public/tests/test_build.c

@ -47,6 +47,12 @@ static struct @@ -47,6 +47,12 @@ static struct
{ ARCHITECTURE_MIPS, 0, ENDIANNESS_LITTLE, true, "mips64el" },
{ ARCHITECTURE_MIPS, 0, ENDIANNESS_LITTLE, false, "mipsel" },
// all possible PowerPC names
{ ARCHITECTURE_PPC, 0, ENDIANNESS_BIG, true, "ppc64" },
{ ARCHITECTURE_PPC, 0, ENDIANNESS_BIG, false, "ppc" },
{ ARCHITECTURE_PPC, 0, ENDIANNESS_LITTLE, true, "ppc64el" },
{ ARCHITECTURE_PPC, 0, ENDIANNESS_LITTLE, false, "ppcel" },
// All ARM is little endian only (for now?)
// Arm64 is always arm64, no matter the version (for now)
// Arm64 don't care about hardfp bit

Loading…
Cancel
Save