Sparc64: byte swap IO port access

This requires an updated OpenBIOS image.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
diff --git a/hw/apb_pci.c b/hw/apb_pci.c
index 7f458c6..2b838ed 100644
--- a/hw/apb_pci.c
+++ b/hw/apb_pci.c
@@ -189,13 +189,13 @@
 static void pci_apb_iowritew (void *opaque, target_phys_addr_t addr,
                                   uint32_t val)
 {
-    cpu_outw(addr & IOPORTS_MASK, val);
+    cpu_outw(addr & IOPORTS_MASK, bswap16(val));
 }
 
 static void pci_apb_iowritel (void *opaque, target_phys_addr_t addr,
                                 uint32_t val)
 {
-    cpu_outl(addr & IOPORTS_MASK, val);
+    cpu_outl(addr & IOPORTS_MASK, bswap32(val));
 }
 
 static uint32_t pci_apb_ioreadb (void *opaque, target_phys_addr_t addr)
@@ -210,7 +210,7 @@
 {
     uint32_t val;
 
-    val = cpu_inw(addr & IOPORTS_MASK);
+    val = bswap16(cpu_inw(addr & IOPORTS_MASK));
     return val;
 }
 
@@ -218,7 +218,7 @@
 {
     uint32_t val;
 
-    val = cpu_inl(addr & IOPORTS_MASK);
+    val = bswap32(cpu_inl(addr & IOPORTS_MASK));
     return val;
 }