Merge RISCV 32/64-bit configurations definition
authorShea Levy <shea@shealevy.com>
Mon, 19 Feb 2018 15:38:26 +0000 (10:38 -0500)
committerIvan Maidanski <ivmai@mail.ru>
Tue, 20 Feb 2018 08:33:12 +0000 (11:33 +0300)
(code refactoring of commit 4f7f0ee)

Issue #208 (bdwgc).

* include/private/gcconfig.h [__riscv && LINUX] (RISCV32, RISCV64):
Replace with RISCV.
* include/private/gcconfig.h [RISCV] (MACH_TYPE): Change to "RISC-V".
* include/private/gcconfig.h [RISCV] (CPP_WORDSZ, ALIGNMENT): Define
using __riscv_xlen.

include/private/gcconfig.h

index 25f5409..237c309 100644 (file)
 #   define mach_type_known
 # endif
 # if defined(__riscv) && defined(LINUX)
-#   if __riscv_xlen == 32
-#     define RISCV32
-#     define mach_type_known
-#   elif __riscv_xlen == 64
-#     define RISCV64
-#     define mach_type_known
-#   endif
+#   define RISCV
+#   define mach_type_known
 # endif
 
 # if defined(SN_TARGET_PSP2)
 #   endif
 # endif
 
-# ifdef RISCV32
-#   define CPP_WORDSZ 32
-#   define MACH_TYPE "RISC-V32"
-#   define ALIGNMENT 4
-#   ifdef LINUX
-#     define OS_TYPE "LINUX"
-      extern int __data_start[];
-#     define DATASTART ((ptr_t)__data_start)
-#     define LINUX_STACKBOTTOM
-#     define DYNAMIC_LOADING
-#   endif
-# endif /* RISCV32 */
-
-# ifdef RISCV64
-#   define CPP_WORDSZ 64
-#   define MACH_TYPE "RISC-V64"
-#   define ALIGNMENT 8
+# ifdef RISCV
+#   define MACH_TYPE "RISC-V"
+#   define CPP_WORDSZ __riscv_xlen /* 32 or 64 */
+#   define ALIGNMENT (CPP_WORDSZ/8)
 #   ifdef LINUX
 #     define OS_TYPE "LINUX"
       extern int __data_start[];
 #     define LINUX_STACKBOTTOM
 #     define DYNAMIC_LOADING
 #   endif
-# endif /* RISCV64 */
+# endif /* RISCV */
 
 #if defined(__GLIBC__) && !defined(DONT_USE_LIBC_PRIVATES)
   /* Use glibc's stack-end marker. */