#include <stdio.h>
-#if defined(__linux__) && defined(ARM)
+#ifdef __linux__
#include <sys/mman.h>
#endif
void drc_cmn_init(void)
{
-#if defined(__linux__) && defined(ARM)
+#ifdef __linux__
void *tmp;
tmp = mmap(tcache, DRC_TCACHE_SIZE, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_SHARED|MAP_ANONYMOUS, -1, 0);
printf("mmap tcache: %p, asked %p\n", tmp, tcache);
#endif
-
}
-// TODO: add calls in core, possibly to cart.c?
void drc_cmn_cleanup(void)
{
-#if defined(__linux__) && defined(ARM)
+#ifdef __linux__
int ret;
ret = munmap(tcache, DRC_TCACHE_SIZE);
printf("munmap tcache: %i\n", ret);
EOP_C_DOP_IMM(cond, op, 0, r, r, (ror2 - 8/2) & 0x0f, v & 0xff);
v >>= 8;
if (v & 0xff)
- EOP_C_DOP_IMM(cond, op, 0, r, r, (ror2 - 8/2) & 0x0f, v & 0xff);
+ EOP_C_DOP_IMM(cond, op, 0, r, r, (ror2 - 16/2) & 0x0f, v & 0xff);
v >>= 8;
if (v & 0xff)
- EOP_C_DOP_IMM(cond, op, 0, r, r, (ror2 - 8/2) & 0x0f, v & 0xff);
+ EOP_C_DOP_IMM(cond, op, 0, r, r, (ror2 - 24/2) & 0x0f, v & 0xff);
}
#define is_offset_24(val) \
{
if (block_tables[0] == NULL) {
int i, cnt;
+
+ drc_cmn_init();
+
cnt = block_max_counts[0] + block_max_counts[1] + block_max_counts[2];
block_tables[0] = calloc(cnt, sizeof(*block_tables[0]));
if (block_tables[0] == NULL)
#endif
free(block_tables[0]);
memset(block_tables, 0, sizeof(block_tables));
+
+ drc_cmn_cleanup();
}
if (hash_table != NULL) {