[PATCH] RISC-V 64 bit support
"Richard W.M. Jones" <[email protected]> Fri, 21 Oct 2016 10:41:42 +0100
| Newsgroups | gmane.comp.mozilla.devel.nspr |
|---|---|
| Message-ID | <[email protected]> |
--a8Wt8u1KmwUX3Y2C Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi, We are working on porting Fedora to the free RISC-V architecture. The attached patch has been used for a while to get NSPR to work on the 64 bit general purpose variant of this architecture (RV64G). This patch isn't authored by me, but by David Abdurachmanov. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-top is 'top' for virtual machines. Tiny program with many powerful monitoring features, net stats, disk stats, logging, etc. http://people.redhat.com/~rjones/virt-top --a8Wt8u1KmwUX3Y2C Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="nspr-4.12.0-add-riscv64-in-prcpucfg.patch" From 5a81a12637cff835fb88be9a5162226c31afc3bf Mon Sep 17 00:00:00 2001 From: David Abdurachmanov <[email protected]> Date: Thu, 18 Aug 2016 09:09:08 +0200 Subject: [PATCH] Add riscv64 in prcpucfg Based on AArch64 values for now. Signed-off-by: David Abdurachmanov <[email protected]> --- nspr/pr/include/md/_linux.cfg | 46 +++++++++++++++++++++++++++++++++++++++++++ nspr/pr/include/md/_linux.h | 2 ++ 2 files changed, 48 insertions(+) diff --git a/nspr/pr/include/md/_linux.cfg b/nspr/pr/include/md/_linux.cfg index 8cbf0cb..7376c04 100644 --- a/nspr/pr/include/md/_linux.cfg +++ b/nspr/pr/include/md/_linux.cfg @@ -1017,6 +1017,52 @@ #define PR_BYTES_PER_WORD_LOG2 2 #define PR_BYTES_PER_DWORD_LOG2 3 +#elif defined(__riscv64) + +#undef IS_BIG_ENDIAN +#define IS_LITTLE_ENDIAN 1 +#define IS_64 + +#define PR_BYTES_PER_BYTE 1 +#define PR_BYTES_PER_SHORT 2 +#define PR_BYTES_PER_INT 4 +#define PR_BYTES_PER_INT64 8 +#define PR_BYTES_PER_LONG 8 +#define PR_BYTES_PER_FLOAT 4 +#define PR_BYTES_PER_DOUBLE 8 +#define PR_BYTES_PER_WORD 8 +#define PR_BYTES_PER_DWORD 8 + +#define PR_BITS_PER_BYTE 8 +#define PR_BITS_PER_SHORT 16 +#define PR_BITS_PER_INT 32 +#define PR_BITS_PER_INT64 64 +#define PR_BITS_PER_LONG 64 +#define PR_BITS_PER_FLOAT 32 +#define PR_BITS_PER_DOUBLE 64 +#define PR_BITS_PER_WORD 64 + +#define PR_BITS_PER_BYTE_LOG2 3 +#define PR_BITS_PER_SHORT_LOG2 4 +#define PR_BITS_PER_INT_LOG2 5 +#define PR_BITS_PER_INT64_LOG2 6 +#define PR_BITS_PER_LONG_LOG2 6 +#define PR_BITS_PER_FLOAT_LOG2 5 +#define PR_BITS_PER_DOUBLE_LOG2 6 +#define PR_BITS_PER_WORD_LOG2 6 + +#define PR_ALIGN_OF_SHORT 2 +#define PR_ALIGN_OF_INT 4 +#define PR_ALIGN_OF_LONG 8 +#define PR_ALIGN_OF_INT64 8 +#define PR_ALIGN_OF_FLOAT 4 +#define PR_ALIGN_OF_DOUBLE 8 +#define PR_ALIGN_OF_POINTER 8 +#define PR_ALIGN_OF_WORD 8 + +#define PR_BYTES_PER_WORD_LOG2 3 +#define PR_BYTES_PER_DWORD_LOG2 3 + #else #error "Unknown CPU architecture" diff --git a/nspr/pr/include/md/_linux.h b/nspr/pr/include/md/_linux.h index b4b298b..b49a7ef 100644 --- a/nspr/pr/include/md/_linux.h +++ b/nspr/pr/include/md/_linux.h @@ -57,6 +57,8 @@ #define _PR_SI_ARCHITECTURE "m32r" #elif defined(__or1k__) #define _PR_SI_ARCHITECTURE "or1k" +#elif defined(__riscv64) +#define _PR_SI_ARCHITECTURE "riscv64" #else #error "Unknown CPU architecture" #endif -- 2.7.4 --a8Wt8u1KmwUX3Y2C Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ dev-tech-nspr mailing list [email protected] https://lists.mozilla.org/listinfo/dev-tech-nspr --a8Wt8u1KmwUX3Y2C--