summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwtc <devnull@localhost>1998-06-09 00:51:10 +0000
committerwtc <devnull@localhost>1998-06-09 00:51:10 +0000
commitf67f26137ec7000287cfda74f54c826c93016956 (patch)
tree4958c81ee7a2d4cf11c6cfbb85e937a911c5531d
parentb7b1c47abdc39394d80772b655273f984a6bfab0 (diff)
downloadnspr-hg-f67f26137ec7000287cfda74f54c826c93016956.tar.gz
Port to Sparc Linux. Files changed: _linux.cfg, _linux.h.
-rw-r--r--pr/include/md/_linux.cfg50
-rw-r--r--pr/include/md/_linux.h20
2 files changed, 67 insertions, 3 deletions
diff --git a/pr/include/md/_linux.cfg b/pr/include/md/_linux.cfg
index a269025c..969ebb70 100644
--- a/pr/include/md/_linux.cfg
+++ b/pr/include/md/_linux.cfg
@@ -160,7 +160,51 @@
#define PR_BYTES_PER_WORD_LOG2 2
#define PR_BYTES_PER_DWORD_LOG2 3
-#else /* x86 */
+#elif defined(__sparc__)
+
+#undef IS_LITTLE_ENDIAN
+#define IS_BIG_ENDIAN 1
+
+#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 4
+#define PR_BYTES_PER_FLOAT 4
+#define PR_BYTES_PER_DOUBLE 8
+#define PR_BYTES_PER_WORD 4
+#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 32
+#define PR_BITS_PER_FLOAT 32
+#define PR_BITS_PER_DOUBLE 64
+#define PR_BITS_PER_WORD 32
+
+#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 5
+#define PR_BITS_PER_FLOAT_LOG2 5
+#define PR_BITS_PER_DOUBLE_LOG2 6
+#define PR_BITS_PER_WORD_LOG2 5
+
+#define PR_ALIGN_OF_SHORT 2
+#define PR_ALIGN_OF_INT 4
+#define PR_ALIGN_OF_LONG 4
+#define PR_ALIGN_OF_INT64 8
+#define PR_ALIGN_OF_FLOAT 4
+#define PR_ALIGN_OF_DOUBLE 8
+#define PR_ALIGN_OF_POINTER 4
+
+#define PR_BYTES_PER_WORD_LOG2 2
+#define PR_BYTES_PER_DWORD_LOG2 3
+
+#elif defined(__i386__)
#define IS_LITTLE_ENDIAN 1
#undef IS_BIG_ENDIAN
@@ -204,6 +248,10 @@
#define PR_BYTES_PER_WORD_LOG2 2
#define PR_BYTES_PER_DWORD_LOG2 3
+#else
+
+#error "Unknown CPU architecture"
+
#endif
#define HAVE_LONG_LONG
diff --git a/pr/include/md/_linux.h b/pr/include/md/_linux.h
index 4a47df4f..4d464087 100644
--- a/pr/include/md/_linux.h
+++ b/pr/include/md/_linux.h
@@ -33,8 +33,12 @@
#define _PR_SI_ARCHITECTURE "alpha"
#elif defined(__mc68000__)
#define _PR_SI_ARCHITECTURE "m68k"
-#else
+#elif defined(__sparc__)
+#define _PR_SI_ARCHITECTURE "sparc"
+#elif defined(__i386__)
#define _PR_SI_ARCHITECTURE "x86"
+#else
+#error "Unknown CPU architecture"
#endif
#define PR_DLL_SUFFIX ".so"
@@ -121,7 +125,15 @@ extern void _MD_CleanupBeforeExit(void);
/* XXX not sure if this is correct, or maybe it should be 17? */
#define PR_NUM_GCREGS 9
-#else
+#elif defined(__sparc__)
+/* Sparc */
+#define _MD_GET_SP(_t) (_t)->md.context[0].__jmpbuf[0].__fp
+#define _MD_SET_FP(_t, val)
+#define _MD_GET_SP_PTR(_t) &(_MD_GET_SP(_t))
+#define _MD_GET_FP_PTR(_t) ((void *) 0)
+#define _MD_SP_TYPE __ptr_t
+
+#elif defined(__i386__)
/* Intel based Linux */
#if defined(__GLIBC__) && __GLIBC__ >= 2
#define _MD_GET_SP(_t) (_t)->md.context[0].__jmpbuf[JB_SP]
@@ -138,6 +150,10 @@ extern void _MD_CleanupBeforeExit(void);
#endif /* defined(__GLIBC__) && __GLIBC__ >= 2 */
#define PR_NUM_GCREGS 6
+#else
+
+#error "Unknown CPU architecture"
+
#endif /*__powerpc__*/
/*