]> Git Repo - qemu.git/blobdiff - hw/sh7750.c
Replace assert(0) with abort() or cpu_abort()
[qemu.git] / hw / sh7750.c
index 073da28f54f0db1b508f3c0746d809bd15261ad5..0291d5fd49bf5f7df2fc90eefdf075c6c966deb0 100644 (file)
@@ -189,28 +189,28 @@ static void portb_changed(SH7750State * s, uint16_t prev)
  Memory
 **********************************************************************/
 
-static void error_access(const char *kind, a_target_phys_addr addr)
+static void error_access(const char *kind, target_phys_addr_t addr)
 {
     fprintf(stderr, "%s to %s (0x" TARGET_FMT_plx ") not supported\n",
            kind, regname(addr), addr);
 }
 
-static void ignore_access(const char *kind, a_target_phys_addr addr)
+static void ignore_access(const char *kind, target_phys_addr_t addr)
 {
     fprintf(stderr, "%s to %s (0x" TARGET_FMT_plx ") ignored\n",
            kind, regname(addr), addr);
 }
 
-static uint32_t sh7750_mem_readb(void *opaque, a_target_phys_addr addr)
+static uint32_t sh7750_mem_readb(void *opaque, target_phys_addr_t addr)
 {
     switch (addr) {
     default:
        error_access("byte read", addr);
-       assert(0);
+        abort();
     }
 }
 
-static uint32_t sh7750_mem_readw(void *opaque, a_target_phys_addr addr)
+static uint32_t sh7750_mem_readw(void *opaque, target_phys_addr_t addr)
 {
     SH7750State *s = opaque;
 
@@ -240,11 +240,11 @@ static uint32_t sh7750_mem_readw(void *opaque, a_target_phys_addr addr)
        return 0;
     default:
        error_access("word read", addr);
-       assert(0);
+        abort();
     }
 }
 
-static uint32_t sh7750_mem_readl(void *opaque, a_target_phys_addr addr)
+static uint32_t sh7750_mem_readl(void *opaque, target_phys_addr_t addr)
 {
     SH7750State *s = opaque;
 
@@ -287,13 +287,13 @@ static uint32_t sh7750_mem_readl(void *opaque, a_target_phys_addr addr)
        return s->cpu->prr;
     default:
        error_access("long read", addr);
-       assert(0);
+        abort();
     }
 }
 
 #define is_in_sdrmx(a, x) (a >= SH7750_SDMR ## x ## _A7 \
                        && a <= (SH7750_SDMR ## x ## _A7 + SH7750_SDMR ## x ## _REGNB))
-static void sh7750_mem_writeb(void *opaque, a_target_phys_addr addr,
+static void sh7750_mem_writeb(void *opaque, target_phys_addr_t addr,
                              uint32_t mem_value)
 {
 
@@ -303,10 +303,10 @@ static void sh7750_mem_writeb(void *opaque, a_target_phys_addr addr,
     }
 
     error_access("byte write", addr);
-    assert(0);
+    abort();
 }
 
-static void sh7750_mem_writew(void *opaque, a_target_phys_addr addr,
+static void sh7750_mem_writew(void *opaque, target_phys_addr_t addr,
                              uint32_t mem_value)
 {
     SH7750State *s = opaque;
@@ -349,16 +349,16 @@ static void sh7750_mem_writew(void *opaque, a_target_phys_addr addr,
        s->gpioic = mem_value;
        if (mem_value != 0) {
            fprintf(stderr, "I/O interrupts not implemented\n");
-           assert(0);
+            abort();
        }
        return;
     default:
        error_access("word write", addr);
-       assert(0);
+        abort();
     }
 }
 
-static void sh7750_mem_writel(void *opaque, a_target_phys_addr addr,
+static void sh7750_mem_writel(void *opaque, target_phys_addr_t addr,
                              uint32_t mem_value)
 {
     SH7750State *s = opaque;
@@ -396,8 +396,11 @@ static void sh7750_mem_writel(void *opaque, a_target_phys_addr addr,
        portb_changed(s, temp);
        return;
     case SH7750_MMUCR_A7:
-       s->cpu->mmucr = mem_value;
-       return;
+        if (mem_value & MMUCR_TI) {
+            cpu_sh4_invalidate_tlb(s->cpu);
+        }
+        s->cpu->mmucr = mem_value & ~MMUCR_TI;
+        return;
     case SH7750_PTEH_A7:
         /* If asid changes, clear all registered tlb entries. */
        if ((s->cpu->pteh & 0xff) != (mem_value & 0xff))
@@ -430,7 +433,7 @@ static void sh7750_mem_writel(void *opaque, a_target_phys_addr addr,
        return;
     default:
        error_access("long write", addr);
-       assert(0);
+        abort();
     }
 }
 
@@ -613,14 +616,14 @@ static struct intc_group groups_irl[] = {
 #define MM_UTLB_DATA     (7)
 #define MM_REGION_TYPE(addr)  ((addr & MM_REGION_MASK) >> 24)
 
-static uint32_t invalid_read(void *opaque, a_target_phys_addr addr)
+static uint32_t invalid_read(void *opaque, target_phys_addr_t addr)
 {
-    assert(0);
+    abort();
 
     return 0;
 }
 
-static uint32_t sh7750_mmct_readl(void *opaque, a_target_phys_addr addr)
+static uint32_t sh7750_mmct_readl(void *opaque, target_phys_addr_t addr)
 {
     uint32_t ret = 0;
 
@@ -632,7 +635,7 @@ static uint32_t sh7750_mmct_readl(void *opaque, a_target_phys_addr addr)
     case MM_ITLB_ADDR:
     case MM_ITLB_DATA:
         /* XXXXX */
-        assert(0);
+        abort();
        break;
     case MM_OCACHE_ADDR:
     case MM_OCACHE_DATA:
@@ -641,22 +644,22 @@ static uint32_t sh7750_mmct_readl(void *opaque, a_target_phys_addr addr)
     case MM_UTLB_ADDR:
     case MM_UTLB_DATA:
         /* XXXXX */
-        assert(0);
+        abort();
        break;
     default:
-        assert(0);
+        abort();
     }
 
     return ret;
 }
 
-static void invalid_write(void *opaque, a_target_phys_addr addr,
+static void invalid_write(void *opaque, target_phys_addr_t addr,
                          uint32_t mem_value)
 {
-    assert(0);
+    abort();
 }
 
-static void sh7750_mmct_writel(void *opaque, a_target_phys_addr addr,
+static void sh7750_mmct_writel(void *opaque, target_phys_addr_t addr,
                                uint32_t mem_value)
 {
     SH7750State *s = opaque;
@@ -669,7 +672,7 @@ static void sh7750_mmct_writel(void *opaque, a_target_phys_addr addr,
     case MM_ITLB_ADDR:
     case MM_ITLB_DATA:
         /* XXXXX */
-        assert(0);
+        abort();
        break;
     case MM_OCACHE_ADDR:
     case MM_OCACHE_DATA:
@@ -680,10 +683,10 @@ static void sh7750_mmct_writel(void *opaque, a_target_phys_addr addr,
        break;
     case MM_UTLB_DATA:
         /* XXXXX */
-        assert(0);
+        abort();
        break;
     default:
-        assert(0);
+        abort();
        break;
     }
 }
This page took 0.028212 seconds and 4 git commands to generate.