qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [5853] Remove address masking


From: Blue Swirl
Subject: [Qemu-devel] [5853] Remove address masking
Date: Tue, 02 Dec 2008 17:47:03 +0000

Revision: 5853
          http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=5853
Author:   blueswir1
Date:     2008-12-02 17:47:02 +0000 (Tue, 02 Dec 2008)

Log Message:
-----------
Remove address masking

Modified Paths:
--------------
    trunk/hw/cs4231.c
    trunk/hw/eccmemctl.c
    trunk/hw/esp.c
    trunk/hw/fdc.c
    trunk/hw/pcnet.c
    trunk/hw/sbi.c
    trunk/hw/slavio_serial.c
    trunk/hw/slavio_timer.c
    trunk/hw/sparc32_dma.c
    trunk/hw/sun4c_intctl.c
    trunk/hw/tcx.c

Modified: trunk/hw/cs4231.c
===================================================================
--- trunk/hw/cs4231.c   2008-12-02 09:02:15 UTC (rev 5852)
+++ trunk/hw/cs4231.c   2008-12-02 17:47:02 UTC (rev 5853)
@@ -30,8 +30,7 @@
 /*
  * In addition to Crystal CS4231 there is a DMA controller on Sparc.
  */
-#define CS_MAXADDR 0x3f
-#define CS_SIZE (CS_MAXADDR + 1)
+#define CS_SIZE 0x40
 #define CS_REGS 16
 #define CS_DREGS 32
 #define CS_MAXDREG (CS_DREGS - 1)
@@ -68,7 +67,7 @@
     CSState *s = opaque;
     uint32_t saddr, ret;
 
-    saddr = (addr & CS_MAXADDR) >> 2;
+    saddr = addr >> 2;
     switch (saddr) {
     case 1:
         switch (CS_RAP(s)) {
@@ -94,7 +93,7 @@
     CSState *s = opaque;
     uint32_t saddr;
 
-    saddr = (addr & CS_MAXADDR) >> 2;
+    saddr = addr >> 2;
     DPRINTF("write reg[%d]: 0x%8.8x -> 0x%8.8x\n", saddr, s->regs[saddr], val);
     switch (saddr) {
     case 1:

Modified: trunk/hw/eccmemctl.c
===================================================================
--- trunk/hw/eccmemctl.c        2008-12-02 09:02:15 UTC (rev 5852)
+++ trunk/hw/eccmemctl.c        2008-12-02 17:47:02 UTC (rev 5853)
@@ -114,7 +114,6 @@
 
 #define ECC_NREGS      9
 #define ECC_SIZE       (ECC_NREGS * sizeof(uint32_t))
-#define ECC_ADDR_MASK  0x1f
 
 #define ECC_DIAG_SIZE  4
 #define ECC_DIAG_MASK  (ECC_DIAG_SIZE - 1)
@@ -129,7 +128,7 @@
 {
     ECCState *s = opaque;
 
-    switch ((addr & ECC_ADDR_MASK) >> 2) {
+    switch (addr >> 2) {
     case ECC_MER:
         s->regs[ECC_MER] = (s->regs[ECC_MER] & (ECC_MER_VER | ECC_MER_IMPL)) |
             (val & ~(ECC_MER_VER | ECC_MER_IMPL));
@@ -167,7 +166,7 @@
     ECCState *s = opaque;
     uint32_t ret = 0;
 
-    switch ((addr & ECC_ADDR_MASK) >> 2) {
+    switch (addr >> 2) {
     case ECC_MER:
         ret = s->regs[ECC_MER];
         DPRINTF("Read memory enable %08x\n", ret);
@@ -225,15 +224,16 @@
 {
     ECCState *s = opaque;
 
-    DPRINTF("Write diagnostic[%d] = %02x\n", (int)(addr & ECC_DIAG_MASK), val);
+    DPRINTF("Write diagnostic[%d] = %02x\n", (int)addr, val);
     s->diag[addr & ECC_DIAG_MASK] = val;
 }
 
 static uint32_t ecc_diag_mem_readb(void *opaque, target_phys_addr_t addr)
 {
     ECCState *s = opaque;
-    uint32_t ret = s->diag[addr & ECC_DIAG_MASK];
-    DPRINTF("Read diagnostic[%d] = %02x\n", (int)(addr & ECC_DIAG_MASK), ret);
+    uint32_t ret = s->diag[(int)addr];
+
+    DPRINTF("Read diagnostic[%d] = %02x\n", (int)addr, ret);
     return ret;
 }
 

Modified: trunk/hw/esp.c
===================================================================
--- trunk/hw/esp.c      2008-12-02 09:02:15 UTC (rev 5852)
+++ trunk/hw/esp.c      2008-12-02 17:47:02 UTC (rev 5853)
@@ -425,7 +425,7 @@
     ESPState *s = opaque;
     uint32_t saddr;
 
-    saddr = (addr >> s->it_shift) & (ESP_REGS - 1);
+    saddr = addr >> s->it_shift;
     DPRINTF("read reg[%d]: 0x%2.2x\n", saddr, s->rregs[saddr]);
     switch (saddr) {
     case ESP_FIFO:
@@ -461,7 +461,7 @@
     ESPState *s = opaque;
     uint32_t saddr;
 
-    saddr = (addr >> s->it_shift) & (ESP_REGS - 1);
+    saddr = addr >> s->it_shift;
     DPRINTF("write reg[%d]: 0x%2.2x -> 0x%2.2x\n", saddr, s->wregs[saddr],
             val);
     switch (saddr) {

Modified: trunk/hw/fdc.c
===================================================================
--- trunk/hw/fdc.c      2008-12-02 09:02:15 UTC (rev 5852)
+++ trunk/hw/fdc.c      2008-12-02 17:47:02 UTC (rev 5853)
@@ -513,7 +513,7 @@
     fdctrl_t *fdctrl = opaque;
     uint32_t retval;
 
-    switch (reg & 0x07) {
+    switch (reg) {
     case FD_REG_SRA:
         retval = fdctrl_read_statusA(fdctrl);
         break;
@@ -550,7 +550,7 @@
 
     FLOPPY_DPRINTF("write reg%d: 0x%02x\n", reg & 7, value);
 
-    switch (reg & 0x07) {
+    switch (reg) {
     case FD_REG_DOR:
         fdctrl_write_dor(fdctrl, value);
         break;
@@ -568,6 +568,16 @@
     }
 }
 
+static uint32_t fdctrl_read_port (void *opaque, uint32_t reg)
+{
+    return fdctrl_read(opaque, reg & 7);
+}
+
+static void fdctrl_write_port (void *opaque, uint32_t reg, uint32_t value)
+{
+    fdctrl_write(opaque, reg & 7, value);
+}
+
 static uint32_t fdctrl_read_mem (void *opaque, target_phys_addr_t reg)
 {
     return fdctrl_read(opaque, (uint32_t)reg);
@@ -1896,14 +1906,14 @@
                                         fdctrl);
         cpu_register_physical_memory(io_base, 0x08, io_mem);
     } else {
-        register_ioport_read((uint32_t)io_base + 0x01, 5, 1, &fdctrl_read,
-                             fdctrl);
-        register_ioport_read((uint32_t)io_base + 0x07, 1, 1, &fdctrl_read,
-                             fdctrl);
-        register_ioport_write((uint32_t)io_base + 0x01, 5, 1, &fdctrl_write,
-                              fdctrl);
-        register_ioport_write((uint32_t)io_base + 0x07, 1, 1, &fdctrl_write,
-                              fdctrl);
+        register_ioport_read((uint32_t)io_base + 0x01, 5, 1,
+                             &fdctrl_read_port, fdctrl);
+        register_ioport_read((uint32_t)io_base + 0x07, 1, 1,
+                             &fdctrl_read_port, fdctrl);
+        register_ioport_write((uint32_t)io_base + 0x01, 5, 1,
+                              &fdctrl_write_port, fdctrl);
+        register_ioport_write((uint32_t)io_base + 0x07, 1, 1,
+                              &fdctrl_write_port, fdctrl);
     }
 
     return fdctrl;

Modified: trunk/hw/pcnet.c
===================================================================
--- trunk/hw/pcnet.c    2008-12-02 09:02:15 UTC (rev 5852)
+++ trunk/hw/pcnet.c    2008-12-02 17:47:02 UTC (rev 5853)
@@ -2060,14 +2060,14 @@
     printf("lance_mem_writew addr=" TARGET_FMT_plx " val=0x%04x\n", addr,
            val & 0xffff);
 #endif
-    pcnet_ioport_writew(opaque, addr & 7, val & 0xffff);
+    pcnet_ioport_writew(opaque, addr, val & 0xffff);
 }
 
 static uint32_t lance_mem_readw(void *opaque, target_phys_addr_t addr)
 {
     uint32_t val;
 
-    val = pcnet_ioport_readw(opaque, addr & 7);
+    val = pcnet_ioport_readw(opaque, addr);
 #ifdef PCNET_DEBUG_IO
     printf("lance_mem_readw addr=" TARGET_FMT_plx " val = 0x%04x\n", addr,
            val & 0xffff);

Modified: trunk/hw/sbi.c
===================================================================
--- trunk/hw/sbi.c      2008-12-02 09:02:15 UTC (rev 5852)
+++ trunk/hw/sbi.c      2008-12-02 17:47:02 UTC (rev 5853)
@@ -46,7 +46,6 @@
 } SBIState;
 
 #define SBI_SIZE (SBI_NREGS * 4)
-#define SBI_MASK (SBI_SIZE - 1)
 
 static void sbi_check_interrupts(void *opaque)
 {
@@ -65,7 +64,7 @@
     SBIState *s = opaque;
     uint32_t saddr, ret;
 
-    saddr = (addr & SBI_MASK) >> 2;
+    saddr = addr >> 2;
     switch (saddr) {
     default:
         ret = s->regs[saddr];
@@ -81,7 +80,7 @@
     SBIState *s = opaque;
     uint32_t saddr;
 
-    saddr = (addr & SBI_MASK) >> 2;
+    saddr = addr >> 2;
     DPRINTF("write system reg 0x" TARGET_FMT_plx " = %x\n", addr, val);
     switch (saddr) {
     default:

Modified: trunk/hw/slavio_serial.c
===================================================================
--- trunk/hw/slavio_serial.c    2008-12-02 09:02:15 UTC (rev 5852)
+++ trunk/hw/slavio_serial.c    2008-12-02 17:47:02 UTC (rev 5853)
@@ -108,8 +108,7 @@
     struct ChannelState chn[2];
 };
 
-#define SERIAL_MAXADDR 7
-#define SERIAL_SIZE (SERIAL_MAXADDR + 1)
+#define SERIAL_SIZE 8
 #define SERIAL_CTRL 0
 #define SERIAL_DATA 1
 
@@ -477,7 +476,7 @@
 
     val &= 0xff;
     saddr = (addr & 3) >> 1;
-    channel = (addr & SERIAL_MAXADDR) >> 2;
+    channel = addr >> 2;
     s = &serial->chn[channel];
     switch (saddr) {
     case SERIAL_CTRL:
@@ -574,7 +573,7 @@
     int channel;
 
     saddr = (addr & 3) >> 1;
-    channel = (addr & SERIAL_MAXADDR) >> 2;
+    channel = addr >> 2;
     s = &serial->chn[channel];
     switch (saddr) {
     case SERIAL_CTRL:

Modified: trunk/hw/slavio_timer.c
===================================================================
--- trunk/hw/slavio_timer.c     2008-12-02 09:02:15 UTC (rev 5852)
+++ trunk/hw/slavio_timer.c     2008-12-02 17:47:02 UTC (rev 5853)
@@ -66,7 +66,6 @@
     uint32_t slave_mode;
 } SLAVIO_TIMERState;
 
-#define TIMER_MAXADDR 0x1f
 #define SYS_TIMER_SIZE 0x14
 #define CPU_TIMER_SIZE 0x10
 
@@ -132,7 +131,7 @@
     SLAVIO_TIMERState *s = opaque;
     uint32_t saddr, ret;
 
-    saddr = (addr & TIMER_MAXADDR) >> 2;
+    saddr = addr >> 2;
     switch (saddr) {
     case TIMER_LIMIT:
         // read limit (system counter mode) or read most signifying
@@ -185,7 +184,7 @@
     uint32_t saddr;
 
     DPRINTF("write " TARGET_FMT_plx " %08x\n", addr, val);
-    saddr = (addr & TIMER_MAXADDR) >> 2;
+    saddr = addr >> 2;
     switch (saddr) {
     case TIMER_LIMIT:
         if (slavio_timer_is_user(s)) {

Modified: trunk/hw/sparc32_dma.c
===================================================================
--- trunk/hw/sparc32_dma.c      2008-12-02 09:02:15 UTC (rev 5852)
+++ trunk/hw/sparc32_dma.c      2008-12-02 17:47:02 UTC (rev 5853)
@@ -45,7 +45,6 @@
 
 #define DMA_REGS 4
 #define DMA_SIZE (4 * sizeof(uint32_t))
-#define DMA_MAXADDR (DMA_SIZE - 1)
 
 #define DMA_VER 0xa0000000
 #define DMA_INTR 1
@@ -157,7 +156,7 @@
     DMAState *s = opaque;
     uint32_t saddr;
 
-    saddr = (addr & DMA_MAXADDR) >> 2;
+    saddr = addr >> 2;
     DPRINTF("read dmareg " TARGET_FMT_plx ": 0x%8.8x\n", addr,
             s->dmaregs[saddr]);
 
@@ -169,7 +168,7 @@
     DMAState *s = opaque;
     uint32_t saddr;
 
-    saddr = (addr & DMA_MAXADDR) >> 2;
+    saddr = addr >> 2;
     DPRINTF("write dmareg " TARGET_FMT_plx ": 0x%8.8x -> 0x%8.8x\n", addr,
             s->dmaregs[saddr], val);
     switch (saddr) {

Modified: trunk/hw/sun4c_intctl.c
===================================================================
--- trunk/hw/sun4c_intctl.c     2008-12-02 09:02:15 UTC (rev 5852)
+++ trunk/hw/sun4c_intctl.c     2008-12-02 17:47:02 UTC (rev 5853)
@@ -52,8 +52,7 @@
     uint8_t pending;
 } Sun4c_INTCTLState;
 
-#define INTCTL_MAXADDR 0
-#define INTCTL_SIZE (INTCTL_MAXADDR + 1)
+#define INTCTL_SIZE 1
 
 static void sun4c_check_interrupts(void *opaque);
 

Modified: trunk/hw/tcx.c
===================================================================
--- trunk/hw/tcx.c      2008-12-02 09:02:15 UTC (rev 5852)
+++ trunk/hw/tcx.c      2008-12-02 17:47:02 UTC (rev 5853)
@@ -437,15 +437,13 @@
 static void tcx_dac_writel(void *opaque, target_phys_addr_t addr, uint32_t val)
 {
     TCXState *s = opaque;
-    uint32_t saddr;
 
-    saddr = (addr & (TCX_DAC_NREGS - 1)) >> 2;
-    switch (saddr) {
+    switch (addr) {
     case 0:
         s->dac_index = val >> 24;
         s->dac_state = 0;
         break;
-    case 1:
+    case 4:
         switch (s->dac_state) {
         case 0:
             s->r[s->dac_index] = val >> 24;






reply via email to

[Prev in Thread] Current Thread [Next in Thread]