From 58e539e574dc96bd953c95758428452414ed3c06 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Sat, 26 Dec 1998 18:15:53 +0000
Subject: [PATCH] Long awaited port for NetBSD/m68k was finally done by Mr.
 Mutsuki Nakajima. Since he is not subscribing the mailing list, I'm posting
 his patches by his request.  According to him, he has successfully compiled
 and passed the regression test on Mac SE/30 running NetBSD/m68k. Also,
 another person has reported that with the patches PostgreSQL is working on
 NetBSD/sun3 too. -- Tatsuo Ishii

---
 src/backend/storage/buffer/s_lock.c | 21 ++++++++++++++++++++-
 src/include/utils/memutils.h        | 13 ++++++++++---
 2 files changed, 30 insertions(+), 4 deletions(-)

diff --git a/src/backend/storage/buffer/s_lock.c b/src/backend/storage/buffer/s_lock.c
index 77f3dbc5ad0..9a6991b222f 100644
--- a/src/backend/storage/buffer/s_lock.c
+++ b/src/backend/storage/buffer/s_lock.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/storage/buffer/Attic/s_lock.c,v 1.14 1998/12/18 17:25:39 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/storage/buffer/Attic/s_lock.c,v 1.15 1998/12/26 18:15:53 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -99,6 +99,25 @@ s_lock(volatile slock_t *lock, const char *file, const int line)
  */
 
 
+#if defined(__m68k__)
+static void
+tas_dummy()	/* really means: extern int tas(slock_t **lock); */
+{
+	__asm__("		\n\
+.global		_tas		\n\
+_tas:				\n\
+	movel   sp@(0x4),a0	\n\
+	tas a0@			\n\
+	beq _success		\n\
+	moveq   #-128,d0	\n\
+	rts			\n\
+_success:			\n\
+	moveq   #0,d0		\n\
+	rts			\n\
+	");
+}
+
+#endif	 /* __m68k__ */
 
 #if defined(PPC)
 /* Note: need a nice gcc constrained asm version so it can be inlined */
diff --git a/src/include/utils/memutils.h b/src/include/utils/memutils.h
index 381dd226850..9e1adb796f6 100644
--- a/src/include/utils/memutils.h
+++ b/src/include/utils/memutils.h
@@ -15,7 +15,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: memutils.h,v 1.18 1998/09/07 05:35:48 momjian Exp $
+ * $Id: memutils.h,v 1.19 1998/12/26 18:15:53 momjian Exp $
  *
  * NOTES
  *	  some of the information in this file will be moved to
@@ -58,13 +58,17 @@ tending
 #define SHORTALIGN(LEN)\
 		(((long)(LEN) + (sizeof (short) - 1)) & ~(sizeof (short) - 1))
 
+#if defined(m68k)
+#define INTALIGN(LEN)	 SHORTALIGN(LEN)
+#else
 #define INTALIGN(LEN)\
 		(((long)(LEN) + (sizeof (int) - 1)) & ~(sizeof (int) -1))
+#endif
 
 /*
  *		LONGALIGN(LEN)	- length (or address) aligned for longs
  */
-#if defined(sun) && ! defined(sparc)
+#if (defined(sun) && ! defined(sparc)) || defined(m68k)
 #define LONGALIGN(LEN)	SHORTALIGN(LEN)
 #elif defined (__alpha)
 
@@ -81,7 +85,10 @@ tending
 		(((long)(LEN) + (sizeof (long) - 1)) & ~(sizeof (long) -1))
 #endif
 
-#if ! defined(sco)
+#if defined(m68k)
+#define DOUBLEALIGN(LEN) SHORTALIGN(LEN)
+#define MAXALIGN(LEN)	 SHORTALIGN(LEN)
+#elif ! defined(sco)
 #define DOUBLEALIGN(LEN)\
 		(((long)(LEN) + (sizeof (double) - 1)) & ~(sizeof (double) -1))
 
-- 
GitLab