dol: initial epiphany code generator (untested)
[jump.git] / dol / src / dol / visitor / epiphany / lib / index.c
diff --git a/dol/src/dol/visitor/epiphany/lib/index.c b/dol/src/dol/visitor/epiphany/lib/index.c
new file mode 100644 (file)
index 0000000..4841b7d
--- /dev/null
@@ -0,0 +1,20 @@
+/* index.c: some index calculations */
+
+#include <stdint.h>
+
+#include "e_lib.h"
+
+/* some defines */
+#define CORE0          0x808   /* coreid of first core */
+#define CORES_PER_ROW  4       /* cores per row - 4 on E16G3 */
+
+uint32_t core_id2lin(e_coreid_t coreid)
+{      /* take coreid, return linear index */
+       return((coreid-CORE0) / (64/CORES_PER_ROW) + (coreid-CORE0)%64);
+}
+
+uint32_t core_lin2id(uint32_t eidx)
+{      /* take linear index, return coreid */
+       return(64 * eidx / CORES_PER_ROW + eidx % CORES_PER_ROW + CORE0);
+}
+