summaryrefslogtreecommitdiffstats
path: root/softmmu_template.h
diff options
context:
space:
mode:
authorAvi Kivity <avi@redhat.com>2012-03-08 17:06:55 +0200
committerAvi Kivity <avi@redhat.com>2012-03-08 17:06:55 +0200
commitaa102231f09af7e5e2cc1376499991ac2ea00115 (patch)
tree955a84fb86d8c3c7eae97267a409ad4d43fbdf4b /softmmu_template.h
parentf3705d53296d78b14f5823472ae2add16a25a0a5 (diff)
downloadhqemu-aa102231f09af7e5e2cc1376499991ac2ea00115.zip
hqemu-aa102231f09af7e5e2cc1376499991ac2ea00115.tar.gz
memory: store section indices in iotlb instead of io indices
A step towards eliminating io indices. Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'softmmu_template.h')
-rw-r--r--softmmu_template.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/softmmu_template.h b/softmmu_template.h
index 97020f8..7c7e15b 100644
--- a/softmmu_template.h
+++ b/softmmu_template.h
@@ -110,7 +110,7 @@ DATA_TYPE REGPARM glue(glue(__ld, SUFFIX), MMUSUFFIX)(target_ulong addr,
if ((addr & (DATA_SIZE - 1)) != 0)
goto do_unaligned_access;
retaddr = GETPC();
- ioaddr = env->iotlb[mmu_idx][index];
+ ioaddr = section_to_ioaddr(env->iotlb[mmu_idx][index]);
res = glue(io_read, SUFFIX)(ioaddr, addr, retaddr);
} else if (((addr & ~TARGET_PAGE_MASK) + DATA_SIZE - 1) >= TARGET_PAGE_SIZE) {
/* slow unaligned access (it spans two pages or IO) */
@@ -164,7 +164,7 @@ static DATA_TYPE glue(glue(slow_ld, SUFFIX), MMUSUFFIX)(target_ulong addr,
/* IO access */
if ((addr & (DATA_SIZE - 1)) != 0)
goto do_unaligned_access;
- ioaddr = env->iotlb[mmu_idx][index];
+ ioaddr = section_to_ioaddr(env->iotlb[mmu_idx][index]);
res = glue(io_read, SUFFIX)(ioaddr, addr, retaddr);
} else if (((addr & ~TARGET_PAGE_MASK) + DATA_SIZE - 1) >= TARGET_PAGE_SIZE) {
do_unaligned_access:
@@ -251,7 +251,7 @@ void REGPARM glue(glue(__st, SUFFIX), MMUSUFFIX)(target_ulong addr,
if ((addr & (DATA_SIZE - 1)) != 0)
goto do_unaligned_access;
retaddr = GETPC();
- ioaddr = env->iotlb[mmu_idx][index];
+ ioaddr = section_to_ioaddr(env->iotlb[mmu_idx][index]);
glue(io_write, SUFFIX)(ioaddr, val, addr, retaddr);
} else if (((addr & ~TARGET_PAGE_MASK) + DATA_SIZE - 1) >= TARGET_PAGE_SIZE) {
do_unaligned_access:
@@ -303,7 +303,7 @@ static void glue(glue(slow_st, SUFFIX), MMUSUFFIX)(target_ulong addr,
/* IO access */
if ((addr & (DATA_SIZE - 1)) != 0)
goto do_unaligned_access;
- ioaddr = env->iotlb[mmu_idx][index];
+ ioaddr = section_to_ioaddr(env->iotlb[mmu_idx][index]);
glue(io_write, SUFFIX)(ioaddr, val, addr, retaddr);
} else if (((addr & ~TARGET_PAGE_MASK) + DATA_SIZE - 1) >= TARGET_PAGE_SIZE) {
do_unaligned_access:
OpenPOWER on IntegriCloud