aboutsummaryrefslogtreecommitdiff
path: root/target-cris/op_helper.c
diff options
context:
space:
mode:
authoredgar_igl <edgar_igl@c046a42c-6fe2-441c-8c8c-71466251a162>2008-03-14 01:08:09 +0000
committeredgar_igl <edgar_igl@c046a42c-6fe2-441c-8c8c-71466251a162>2008-03-14 01:08:09 +0000
commit786c02f1acb73ca68ecdc4fa93911495dc1147c6 (patch)
tree0af7a4fd67683e1f6531d56c3da62a943b8ee801 /target-cris/op_helper.c
parente62b5b133b97e07711741e2a4e2bf3e4dbc254f8 (diff)
Model more parts of the ETRAX mmu (still alot missing).
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4056 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-cris/op_helper.c')
-rw-r--r--target-cris/op_helper.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/target-cris/op_helper.c b/target-cris/op_helper.c
index 458b0585de..701c835be1 100644
--- a/target-cris/op_helper.c
+++ b/target-cris/op_helper.c
@@ -21,6 +21,7 @@
#include <assert.h>
#include "exec.h"
+#include "mmu.h"
#define MMUSUFFIX _mmu
#ifdef __s390__
@@ -41,6 +42,8 @@
#define SHIFT 3
#include "softmmu_template.h"
+#define D(x)
+
/* Try to fill the TLB and return an exception if error. If retaddr is
NULL, it means that the function was called in C code (i.e. not
from generated code or from helper.c) */
@@ -73,8 +76,20 @@ void tlb_fill (target_ulong addr, int is_write, int mmu_idx, void *retaddr)
env = saved_env;
}
+void helper_tlb_update(uint32_t T0)
+{
+#if !defined(CONFIG_USER_ONLY)
+ uint32_t vaddr;
+
+ vaddr = cris_mmu_tlb_latest_update(env, T0);
+ D(printf("flush vaddr %x\n", vaddr));
+ tlb_flush_page(env, vaddr);
+#endif
+}
+
void do_unassigned_access(target_phys_addr_t addr, int is_write, int is_exec,
int is_asi)
{
-
+ D(printf("%s addr=%x w=%d ex=%d asi=%d\n",
+ __func__, addr, is_write, is_exec, is_asi));
}