Module Name:    src
Committed By:   macallan
Date:           Fri Dec  3 22:41:18 UTC 2021

Modified Files:
        src/sys/arch/sparc/dev: sxreg.h

Log Message:
add shift instructions


To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.18 src/sys/arch/sparc/dev/sxreg.h

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/sparc/dev/sxreg.h
diff -u src/sys/arch/sparc/dev/sxreg.h:1.17 src/sys/arch/sparc/dev/sxreg.h:1.18
--- src/sys/arch/sparc/dev/sxreg.h:1.17	Fri Feb 22 23:01:25 2019
+++ src/sys/arch/sparc/dev/sxreg.h	Fri Dec  3 22:41:18 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: sxreg.h,v 1.17 2019/02/22 23:01:25 macallan Exp $	*/
+/*	$NetBSD: sxreg.h,v 1.18 2021/12/03 22:41:18 macallan Exp $	*/
 
 /*-
  * Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -225,6 +225,8 @@
 				SX_UBYTE_0 | (sreg << 7) | (o))
 #define SX_STP(sreg, cnt, o) (0x80000000 | ((cnt) << 23) | SX_STORE | \
 				SX_PACKED | (sreg << 7) | (o))
+#define SX_STPS(sreg, cnt, o) (0x80000000 | ((cnt) << 23) | SX_STORE_SELECT | \
+				SX_PACKED | (sreg << 7) | (o))
 #define SX_STS(sreg, cnt, o) (0x80000000 | ((cnt) << 23) | SX_STORE_SELECT \
 				| SX_LONG | (sreg << 7) | (o))
 #define SX_STBS(reg, cnt, o) (0x80000000 | ((cnt) << 23) | SX_STORE_SELECT \
@@ -344,5 +346,32 @@
 		 ((sa) << 14) | ((d) << 7) | (sb))
 #define SX_SCATTER(sa, sb, d, cnt) (0xe0000000 | ((cnt) << 24) | SX_SCTR | \
 		 ((sa) << 14) | ((d) << 7) | (sb))
+		 
+/* shift group */
+#define SX_SRLV 	(0 << 21)	/* shift right logical, by vector */
+#define SX_SRLI 	(1 << 21)	/* shift right logical, by immediate */
+#define SX_SRAV 	(2 << 21)	/* shift right arithmetic, by vector */
+#define SX_SRAI 	(3 << 21)	/* shift right arithmetic, by immediate */
+#define SX_SLLV 	(4 << 21)	/* shift left logical, by vector */
+#define SX_SLLI 	(5 << 21)	/* shift left logical, by immediate */
+#define SX_SLFS 	(6 << 21)	/* shift left funnel, by SRCB */
+#define SX_SLFI 	(7 << 21)	/* shift left funnel, by immediate */
+
+#define SX_SRL_V(sa, sb, d, cnt) (0xc0000000 | ((cnt) << 24) | SX_SRLV | \
+		  ((sa) << 14) | ((d) << 7) | (sb))
+#define SX_SRL_I(sa, sb, d, cnt) (0xc0000000 | ((cnt) << 24) | SX_SRLI | \
+		  ((sa) << 14) | ((d) << 7) | (sb))
+#define SX_SRA_V(sa, sb, d, cnt) (0xc0000000 | ((cnt) << 24) | SX_SRAV | \
+		  ((sa) << 14) | ((d) << 7) | (sb))
+#define SX_SRA_I(sa, sb, d, cnt) (0xc0000000 | ((cnt) << 24) | SX_SRAI | \
+		  ((sa) << 14) | ((d) << 7) | (sb))
+#define SX_SLL_V(sa, sb, d, cnt) (0xc0000000 | ((cnt) << 24) | SX_SLLV | \
+		  ((sa) << 14) | ((d) << 7) | (sb))
+#define SX_SLL_I(sa, sb, d, cnt) (0xc0000000 | ((cnt) << 24) | SX_SLLI | \
+		  ((sa) << 14) | ((d) << 7) | (sb))
+#define SX_FUNNEL_S(sa, sb, d, cnt) (0xc0000000 | ((cnt) << 24) | SX_SLFS | \
+		  ((sa) << 14) | ((d) << 7) | (sb))
+#define SX_FUNNEL_I(sa, sb, d, cnt) (0xc0000000 | ((cnt) << 24) | SX_SLFI | \
+		  ((sa) << 14) | ((d) << 7) | (sb))
 
 #endif /* SXREG_H */

Reply via email to