faster I/Os - default 16 bit I/O fix


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@801 c046a42c-6fe2-441c-8c8c-71466251a162
diff --git a/vl.c b/vl.c
index 4489056..807215e 100644
--- a/vl.c
+++ b/vl.c
@@ -147,15 +147,17 @@
 uint32_t default_ioport_readw(void *opaque, uint32_t address)
 {
     uint32_t data;
-    data = ioport_read_table[0][address & (MAX_IOPORTS - 1)](opaque, address);
-    data |= ioport_read_table[0][(address + 1) & (MAX_IOPORTS - 1)](opaque, address + 1) << 8;
+    data = ioport_read_table[0][address](ioport_opaque[address], address);
+    address = (address + 1) & (MAX_IOPORTS - 1);
+    data |= ioport_read_table[0][address](ioport_opaque[address], address) << 8;
     return data;
 }
 
 void default_ioport_writew(void *opaque, uint32_t address, uint32_t data)
 {
-    ioport_write_table[0][address & (MAX_IOPORTS - 1)](opaque, address, data & 0xff);
-    ioport_write_table[0][(address + 1) & (MAX_IOPORTS - 1)](opaque, address + 1, (data >> 8) & 0xff);
+    ioport_write_table[0][address](ioport_opaque[address], address, data & 0xff);
+    address = (address + 1) & (MAX_IOPORTS - 1);
+    ioport_write_table[0][address](ioport_opaque[address], address, (data >> 8) & 0xff);
 }
 
 uint32_t default_ioport_readl(void *opaque, uint32_t address)
@@ -283,7 +285,6 @@
 
 void cpu_outb(CPUState *env, int addr, int val)
 {
-    addr &= (MAX_IOPORTS - 1);
 #ifdef DEBUG_IOPORT
     if (loglevel & CPU_LOG_IOPORT)
         fprintf(logfile, "outb: %04x %02x\n", addr, val);
@@ -293,7 +294,6 @@
 
 void cpu_outw(CPUState *env, int addr, int val)
 {
-    addr &= (MAX_IOPORTS - 1);
 #ifdef DEBUG_IOPORT
     if (loglevel & CPU_LOG_IOPORT)
         fprintf(logfile, "outw: %04x %04x\n", addr, val);
@@ -303,7 +303,6 @@
 
 void cpu_outl(CPUState *env, int addr, int val)
 {
-    addr &= (MAX_IOPORTS - 1);
 #ifdef DEBUG_IOPORT
     if (loglevel & CPU_LOG_IOPORT)
         fprintf(logfile, "outl: %04x %08x\n", addr, val);
@@ -314,7 +313,6 @@
 int cpu_inb(CPUState *env, int addr)
 {
     int val;
-    addr &= (MAX_IOPORTS - 1);
     val = ioport_read_table[0][addr](ioport_opaque[addr], addr);
 #ifdef DEBUG_IOPORT
     if (loglevel & CPU_LOG_IOPORT)
@@ -326,7 +324,6 @@
 int cpu_inw(CPUState *env, int addr)
 {
     int val;
-    addr &= (MAX_IOPORTS - 1);
     val = ioport_read_table[1][addr](ioport_opaque[addr], addr);
 #ifdef DEBUG_IOPORT
     if (loglevel & CPU_LOG_IOPORT)
@@ -338,7 +335,6 @@
 int cpu_inl(CPUState *env, int addr)
 {
     int val;
-    addr &= (MAX_IOPORTS - 1);
     val = ioport_read_table[2][addr](ioport_opaque[addr], addr);
 #ifdef DEBUG_IOPORT
     if (loglevel & CPU_LOG_IOPORT)