sms: add pause support
[picodrive.git] / cpu / drc / cmn.c
... / ...
CommitLineData
1/*
2 * PicoDrive
3 * Copyright (C) 2009,2010 notaz
4 *
5 * This work is licensed under the terms of MAME license.
6 * See COPYING file in the top-level directory.
7 */
8#include <stdio.h>
9
10#include <pico/pico_int.h>
11#include "cmn.h"
12
13u8 __attribute__((aligned(4096))) tcache[DRC_TCACHE_SIZE];
14
15
16void drc_cmn_init(void)
17{
18 int ret = plat_mem_set_exec(tcache, sizeof(tcache));
19 elprintf(EL_STATUS, "drc_cmn_init: %p, %zd bytes: %d",
20 tcache, sizeof(tcache), ret);
21
22#ifdef __arm__
23 {
24 static int test_done;
25 if (!test_done)
26 {
27 int *test_out = (void *)tcache;
28 int (*testfunc)(void) = (void *)tcache;
29
30 elprintf(EL_STATUS, "testing if we can run recompiled code..");
31 *test_out++ = 0xe3a000dd; // mov r0, 0xdd
32 *test_out++ = 0xe12fff1e; // bx lr
33 cache_flush_d_inval_i(tcache, test_out);
34
35 // we'll usually crash on broken platforms or bad ports,
36 // but do a value check too just in case
37 ret = testfunc();
38 elprintf(EL_STATUS, "test %s.", ret == 0xdd ? "passed" : "failed");
39 test_done = 1;
40 }
41 }
42#endif
43}
44
45void drc_cmn_cleanup(void)
46{
47}
48
49// vim:shiftwidth=2:expandtab