Module Name:    src
Committed By:   nakayama
Date:           Sat Oct 17 19:29:48 UTC 2015

Modified Files:
        src/sys/arch/sparc64/include: asm.h locore.h
        src/sys/arch/sparc64/sparc64: copy.S

Log Message:
Move LP64 and ILP32 conversion macros COMBINE, SPLIT from locore.h
to asm.h, and provide SPLIT_RETL for the case SPLIT and then retl
immediately.


To generate a diff of this commit:
cvs rdiff -u -r1.21 -r1.22 src/sys/arch/sparc64/include/asm.h
cvs rdiff -u -r1.8 -r1.9 src/sys/arch/sparc64/include/locore.h
cvs rdiff -u -r1.4 -r1.5 src/sys/arch/sparc64/sparc64/copy.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/sparc64/include/asm.h
diff -u src/sys/arch/sparc64/include/asm.h:1.21 src/sys/arch/sparc64/include/asm.h:1.22
--- src/sys/arch/sparc64/include/asm.h:1.21	Sun Apr 28 23:42:23 2013
+++ src/sys/arch/sparc64/include/asm.h	Sat Oct 17 19:29:48 2015
@@ -1,4 +1,4 @@
-/*       $NetBSD: asm.h,v 1.21 2013/04/28 23:42:23 nakayama Exp $        */
+/*       $NetBSD: asm.h,v 1.22 2015/10/17 19:29:48 nakayama Exp $        */
 
 #include <sparc/asm.h>
 
@@ -66,3 +66,25 @@
 /* use as needed to align things on longword boundaries */
 #define	_ALIGN	.align 8
 #define ICACHE_ALIGN	.align	32
+
+/*
+ * Combine 2 regs -- used to convert 64-bit ILP32
+ * values to LP64.
+ */
+#define	COMBINE(r1, r2, d)	\
+	clruw	r2;		\
+	sllx	r1, 32, d;	\
+	or	d, r2, d
+
+/*
+ * Split 64-bit value in 1 reg into high and low halves.
+ * Used for ILP32 return values.
+ */
+#define	SPLIT(s, r0, r1)	\
+	srl	s, 0, r1;	\
+	srlx	s, 32, r0
+
+#define	SPLIT_RETL(s, r0, r1)	\
+	srl	s, 0, r1;	\
+	retl;			\
+	 srlx	s, 32, r0

Index: src/sys/arch/sparc64/include/locore.h
diff -u src/sys/arch/sparc64/include/locore.h:1.8 src/sys/arch/sparc64/include/locore.h:1.9
--- src/sys/arch/sparc64/include/locore.h:1.8	Sun Aug 23 10:59:15 2015
+++ src/sys/arch/sparc64/include/locore.h	Sat Oct 17 19:29:48 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: locore.h,v 1.8 2015/08/23 10:59:15 joerg Exp $	*/
+/*	$NetBSD: locore.h,v 1.9 2015/10/17 19:29:48 nakayama Exp $	*/
 
 /*
  * Copyright (c) 1996-2002 Eduardo Horvath
@@ -66,24 +66,6 @@
 
 
 /*
- * Combine 2 regs -- used to convert 64-bit ILP32
- * values to LP64.
- */
-#define	COMBINE(r1, r2, d)	\
-	clruw	r2;		\
-	sllx	r1, 32, d;	\
-	or	d, r2, d
-
-/*
- * Split 64-bit value in 1 reg into high and low halves.
- * Used for ILP32 return values.
- */
-#define	SPLIT(r0, r1)		\
-	srl	r0, 0, r1;	\
-	srlx	r0, 32, r0
-
-
-/*
  * A handy macro for maintaining instrumentation counters.
  * Note that this clobbers %o0, %o1 and %o2.  Normal usage is
  * something like:

Index: src/sys/arch/sparc64/sparc64/copy.S
diff -u src/sys/arch/sparc64/sparc64/copy.S:1.4 src/sys/arch/sparc64/sparc64/copy.S:1.5
--- src/sys/arch/sparc64/sparc64/copy.S:1.4	Sat Jul 10 10:12:07 2010
+++ src/sys/arch/sparc64/sparc64/copy.S	Sat Oct 17 19:29:48 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: copy.S,v 1.4 2010/07/10 10:12:07 nakayama Exp $	*/
+/*	$NetBSD: copy.S,v 1.5 2015/10/17 19:29:48 nakayama Exp $	*/
 
 /*
  * Copyright (c) 2006-2010 Matthew R. Green
@@ -883,7 +883,7 @@ ENTRY(probeget)
 	ldxa	[%o0] %asi, %o0		!	value = *(long *)addr;
 1:	
 #ifndef _LP64
-	SPLIT(%o0, %o1)
+	SPLIT(%o0, %o0, %o1)
 #endif
 	membar	#Sync
 #ifndef _LP64

Reply via email to