]> git.sur5r.net Git - freertos/blobdiff - FreeRTOS/Demo/RISC-V-Qemu-sifive_e-Eclipse-GCC/freedom-e-sdk/include/sifive/bits.h
Rename RISC-V-Qemu-sive_e_Freedom_Studio directory to RISC-V-Qemu-sifive_e-Eclipse...
[freertos] / FreeRTOS / Demo / RISC-V-Qemu-sifive_e-Eclipse-GCC / freedom-e-sdk / include / sifive / bits.h
diff --git a/FreeRTOS/Demo/RISC-V-Qemu-sifive_e-Eclipse-GCC/freedom-e-sdk/include/sifive/bits.h b/FreeRTOS/Demo/RISC-V-Qemu-sifive_e-Eclipse-GCC/freedom-e-sdk/include/sifive/bits.h
new file mode 100644 (file)
index 0000000..54ea8a4
--- /dev/null
@@ -0,0 +1,36 @@
+// See LICENSE for license details.\r
+#ifndef _RISCV_BITS_H\r
+#define _RISCV_BITS_H\r
+\r
+#define likely(x) __builtin_expect((x), 1)\r
+#define unlikely(x) __builtin_expect((x), 0)\r
+\r
+#define ROUNDUP(a, b) ((((a)-1)/(b)+1)*(b))\r
+#define ROUNDDOWN(a, b) ((a)/(b)*(b))\r
+\r
+#define MAX(a, b) ((a) > (b) ? (a) : (b))\r
+#define MIN(a, b) ((a) < (b) ? (a) : (b))\r
+#define CLAMP(a, lo, hi) MIN(MAX(a, lo), hi)\r
+\r
+#define EXTRACT_FIELD(val, which) (((val) & (which)) / ((which) & ~((which)-1)))\r
+#define INSERT_FIELD(val, which, fieldval) (((val) & ~(which)) | ((fieldval) * ((which) & ~((which)-1))))\r
+\r
+#define STR(x) XSTR(x)\r
+#define XSTR(x) #x\r
+\r
+#if __riscv_xlen == 64\r
+# define SLL32    sllw\r
+# define STORE    sd\r
+# define LOAD     ld\r
+# define LWU      lwu\r
+# define LOG_REGBYTES 3\r
+#else\r
+# define SLL32    sll\r
+# define STORE    sw\r
+# define LOAD     lw\r
+# define LWU      lw\r
+# define LOG_REGBYTES 2\r
+#endif\r
+#define REGBYTES (1 << LOG_REGBYTES)\r
+\r
+#endif\r