Source: intelrdfpmath
Version: 2.0u3-1

Dear Maintainer,

At the moment, the library fail to build on powerpc, because it is an
unknown architecture.  I gave porting the library a go, and got it
building, but the tests are segfaulting.  Note, I do not really know the
inner workings of powerpc well enough to set up proper definitions, so
the values are copied from mips and endianness changed from little to
big.  I also tried to base it on powerpc64le, but this crashed too.

In any case, I hope this can be a starting point for someone else
looking at powerpc porting.

Index: intelrdfpmath-salsa/LIBRARY/makefile.iml_head
===================================================================
--- intelrdfpmath-salsa.orig/LIBRARY/makefile.iml_head
+++ intelrdfpmath-salsa/LIBRARY/makefile.iml_head
@@ -177,7 +177,7 @@ GenTypeVarList = $(call PrefixSuffix,$1,
 # returned
 # 
==============================================================================
 
-__INDICES__ = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+__INDICES__ = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
 
 GetIndex = $(strip $(word 1,$(if $(word $(words $(__INDICES__)),$2), \
                $(error "List too large. Adjust __INDICES__"), \
@@ -344,9 +344,9 @@ else
     endif
 endif
 
-ARCH_ALIAS := x86  ia64 EM64T x86_64 i686 amd64 Intel64 sun4u arm  aarch64 
powerpc64le riscv64 s390x loongarch64
-ARCH_LIST  := IA32 IA64 EFI2  EFI2   IA32 EFI2  EFI2    EFI2  IA32 EFI2    
EFI2        EFI2    S390X EFI2
-ARCH_TYPE  := IA32 IA64 EFI2  EFI2   IA32 EFI2  EFI2    EFI2  IA32 EFI2    
EFI2        EFI2    S390X EFI2
+ARCH_ALIAS := x86  ia64 EM64T x86_64 i686 amd64 Intel64 sun4u arm  aarch64 
powerpc powerpc64le riscv64 s390x loongarch64
+ARCH_LIST  := IA32 IA64 EFI2  EFI2   IA32 EFI2  EFI2    EFI2  IA32 EFI2    
EFI2    EFI2        EFI2    S390X EFI2
+ARCH_TYPE  := IA32 IA64 EFI2  EFI2   IA32 EFI2  EFI2    EFI2  IA32 EFI2    
EFI2    EFI2        EFI2    S390X EFI2
 ARCH_TYPES := IA32 IA64 EFI2 S390X
 
 UARCH_LIST := SSE GSSE LRB LRB2
Index: intelrdfpmath-salsa/LIBRARY/float128/architecture.h
===================================================================
--- intelrdfpmath-salsa.orig/LIBRARY/float128/architecture.h
+++ intelrdfpmath-salsa/LIBRARY/float128/architecture.h
@@ -711,6 +711,62 @@
 #       endif
 
 
+#elif (defined(__powerpc__)
+
+#      undef  vax
+#      undef  mips
+#      undef  hp_pa
+#      undef  cray
+#      undef  alpha
+#      undef  ix86
+#       undef  merced
+#       undef  amd64
+#      undef  sparc
+#      undef  powerpc
+
+#      define powerpc 9
+#      define ARCHITECTURE powerpc
+
+#      define LOCAL_DATA 1
+#      undef  STATIC_ROUNDING_MODES
+#      define DYNAMIC_ROUNDING_MODES 1
+#      define DENORMS_EMULATED 1
+#      define SEPARATE_FLOAT_REGS 1
+#      undef  MULTIPLE_ISSUE
+#      undef  UNSIGNED_TO_FLOAT
+#      define UNSIGNED_MULTIPLY 1
+#      define ENDIANESS big_endian
+#      define SCALE_METHOD by_int
+#      define CVT_TO_HI_LO_METHOD by_flt
+
+#      define BITS_PER_CHAR    8
+#      define BITS_PER_SHORT  16
+#      define BITS_PER_INT    32
+#      define BITS_PER_LONG   32
+
+#      define BITS_PER_FLOAT  32
+#      define BITS_PER_DOUBLE 64
+#      define BITS_PER_LONG_DOUBLE 64
+
+#      define INT_8  signed char
+#      define INT_16 signed short
+#      define INT_32 signed int
+#      undef  INT_64
+#      undef  INT_128
+#      define U_INT_8  unsigned char
+#      define U_INT_16 unsigned short
+#      define U_INT_32 unsigned int
+#      undef  U_INT_64
+#      undef  U_INT_128
+
+#      define WORD      INT_32
+#      define U_WORD  U_INT_32
+#      define BITS_PER_WORD 32
+
+#      define HALF_WORD      INT_16
+#      define U_HALF_WORD  U_INT_16
+#      define BITS_PER_HALF_WORD 16
+
 #else
 
 #      error Architecture must be specified.

-- 
Happy hacking
Petter Reinholdtsen

Reply via email to