Fix elf loader range checking
[qemu] / target-cris / op_helper.c
index c96e48d..edfaf41 100644 (file)
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA  02110-1301 USA
  */
 
-#include <assert.h>
 #include "exec.h"
 #include "mmu.h"
 #include "helper.h"
 #include "host-utils.h"
 
+//#define CRIS_OP_HELPER_DEBUG
+
+
+#ifdef CRIS_OP_HELPER_DEBUG
+#define D(x) x
+#define D_LOG(...) qemu_log(__VA__ARGS__)
+#else
 #define D(x)
+#define D_LOG(...) do { } while (0)
+#endif
 
 #if !defined(CONFIG_USER_ONLY)
 
@@ -59,8 +67,8 @@ void tlb_fill (target_ulong addr, int is_write, int mmu_idx, void *retaddr)
     saved_env = env;
     env = cpu_single_env;
 
-    D(fprintf(logfile, "%s pc=%x tpc=%x ra=%x\n", __func__, 
-            env->pc, env->debug1, retaddr));
+    D_LOG("%s pc=%x tpc=%x ra=%x\n", __func__, 
+            env->pc, env->debug1, retaddr);
     ret = cpu_cris_handle_mmu_fault(env, addr, is_write, mmu_idx, 1);
     if (unlikely(ret)) {
         if (retaddr) {
@@ -108,7 +116,7 @@ void helper_spc_write(uint32_t new_spc)
 
 void helper_dump(uint32_t a0, uint32_t a1, uint32_t a2)
 {
-       (fprintf(logfile, "%s: a0=%x a1=%x\n", __func__, a0, a1)); 
+       qemu_log("%s: a0=%x a1=%x\n", __func__, a0, a1);
 }
 
 /* Used by the tlb decoder.  */
@@ -155,9 +163,8 @@ void helper_movl_sreg_reg (uint32_t sreg, uint32_t reg)
                        env->tlbsets[srs - 1][set][idx].lo = lo;
                        env->tlbsets[srs - 1][set][idx].hi = hi;
 
-                       D(fprintf(logfile, 
-                                 "tlb flush vaddr=%x v=%d pc=%x\n", 
-                                 vaddr, tlb_v, env->pc));
+                       D_LOG("tlb flush vaddr=%x v=%d pc=%x\n", 
+                                 vaddr, tlb_v, env->pc);
                        tlb_flush_page(env, vaddr);
                }
        }
@@ -213,10 +220,10 @@ void helper_rfe(void)
 {
        int rflag = env->pregs[PR_CCS] & R_FLAG;
 
-       D(fprintf(logfile, "rfe: erp=%x pid=%x ccs=%x btarget=%x\n", 
+       D_LOG("rfe: erp=%x pid=%x ccs=%x btarget=%x\n", 
                 env->pregs[PR_ERP], env->pregs[PR_PID],
                 env->pregs[PR_CCS],
-                env->btarget));
+                env->btarget);
 
        cris_ccs_rshift(env);
 
@@ -229,10 +236,10 @@ void helper_rfn(void)
 {
        int rflag = env->pregs[PR_CCS] & R_FLAG;
 
-       D(fprintf(logfile, "rfn: erp=%x pid=%x ccs=%x btarget=%x\n", 
+       D_LOG("rfn: erp=%x pid=%x ccs=%x btarget=%x\n", 
                 env->pregs[PR_ERP], env->pregs[PR_PID],
                 env->pregs[PR_CCS],
-                env->btarget));
+                env->btarget);
 
        cris_ccs_rshift(env);