summaryrefslogtreecommitdiff
path: root/newlib/libc/machine/sparc/machine/sparclet.h
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/machine/sparc/machine/sparclet.h')
-rw-r--r--newlib/libc/machine/sparc/machine/sparclet.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/newlib/libc/machine/sparc/machine/sparclet.h b/newlib/libc/machine/sparc/machine/sparclet.h
new file mode 100644
index 00000000000..34a0e82ff09
--- /dev/null
+++ b/newlib/libc/machine/sparc/machine/sparclet.h
@@ -0,0 +1,32 @@
+/* Various stuff for the sparclet processor.
+
+ This file is in the public domain. */
+
+#ifndef _MACHINE_SPARCLET_H_
+#define _MACHINE_SPARCLET_H_
+
+#ifdef __sparclet__
+
+/* sparclet scan instruction */
+
+extern __inline__ int
+scan (int a, int b)
+{
+ int res;
+ __asm__ ("scan %1,%2,%0" : "=r" (res) : "r" (a), "r" (b));
+ return res;
+}
+
+/* sparclet shuffle instruction */
+
+extern __inline__ int
+shuffle (int a, int b)
+{
+ int res;
+ __asm__ ("shuffle %1,%2,%0" : "=r" (res) : "r" (a), "r" (b));
+ return res;
+}
+
+#endif /* __sparclet__ */
+
+#endif /* _MACHINE_SPARCLET_H_ */