/[qemu]/qemu/softmmu_template.h
ViewVC logotype

Diff of /qemu/softmmu_template.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.12 by bellard, Sun Jul 24 12:55:09 2005 UTC revision 1.13 by bellard, Sat Nov 26 10:28:44 2005 UTC
# Line 91  DATA_TYPE REGPARM(1) glue(glue(__ld, SUF Line 91  DATA_TYPE REGPARM(1) glue(glue(__ld, SUF
91              if ((addr & (DATA_SIZE - 1)) != 0)              if ((addr & (DATA_SIZE - 1)) != 0)
92                  goto do_unaligned_access;                  goto do_unaligned_access;
93              res = glue(io_read, SUFFIX)(physaddr, tlb_addr);              res = glue(io_read, SUFFIX)(physaddr, tlb_addr);
94          } else if (((addr & 0xfff) + DATA_SIZE - 1) >= TARGET_PAGE_SIZE) {          } else if (((addr & ~TARGET_PAGE_MASK) + DATA_SIZE - 1) >= TARGET_PAGE_SIZE) {
95              /* slow unaligned access (it spans two pages or IO) */              /* slow unaligned access (it spans two pages or IO) */
96          do_unaligned_access:          do_unaligned_access:
97              retaddr = GETPC();              retaddr = GETPC();
# Line 130  static DATA_TYPE glue(glue(slow_ld, SUFF Line 130  static DATA_TYPE glue(glue(slow_ld, SUFF
130              if ((addr & (DATA_SIZE - 1)) != 0)              if ((addr & (DATA_SIZE - 1)) != 0)
131                  goto do_unaligned_access;                  goto do_unaligned_access;
132              res = glue(io_read, SUFFIX)(physaddr, tlb_addr);              res = glue(io_read, SUFFIX)(physaddr, tlb_addr);
133          } else if (((addr & 0xfff) + DATA_SIZE - 1) >= TARGET_PAGE_SIZE) {          } else if (((addr & ~TARGET_PAGE_MASK) + DATA_SIZE - 1) >= TARGET_PAGE_SIZE) {
134          do_unaligned_access:          do_unaligned_access:
135              /* slow unaligned access (it spans two pages) */              /* slow unaligned access (it spans two pages) */
136              addr1 = addr & ~(DATA_SIZE - 1);              addr1 = addr & ~(DATA_SIZE - 1);
# Line 208  void REGPARM(2) glue(glue(__st, SUFFIX), Line 208  void REGPARM(2) glue(glue(__st, SUFFIX),
208                  goto do_unaligned_access;                  goto do_unaligned_access;
209              retaddr = GETPC();              retaddr = GETPC();
210              glue(io_write, SUFFIX)(physaddr, val, tlb_addr, retaddr);              glue(io_write, SUFFIX)(physaddr, val, tlb_addr, retaddr);
211          } else if (((addr & 0xfff) + DATA_SIZE - 1) >= TARGET_PAGE_SIZE) {          } else if (((addr & ~TARGET_PAGE_MASK) + DATA_SIZE - 1) >= TARGET_PAGE_SIZE) {
212          do_unaligned_access:          do_unaligned_access:
213              retaddr = GETPC();              retaddr = GETPC();
214              glue(glue(slow_st, SUFFIX), MMUSUFFIX)(addr, val,              glue(glue(slow_st, SUFFIX), MMUSUFFIX)(addr, val,
# Line 245  static void glue(glue(slow_st, SUFFIX), Line 245  static void glue(glue(slow_st, SUFFIX),
245              if ((addr & (DATA_SIZE - 1)) != 0)              if ((addr & (DATA_SIZE - 1)) != 0)
246                  goto do_unaligned_access;                  goto do_unaligned_access;
247              glue(io_write, SUFFIX)(physaddr, val, tlb_addr, retaddr);              glue(io_write, SUFFIX)(physaddr, val, tlb_addr, retaddr);
248          } else if (((addr & 0xfff) + DATA_SIZE - 1) >= TARGET_PAGE_SIZE) {          } else if (((addr & ~TARGET_PAGE_MASK) + DATA_SIZE - 1) >= TARGET_PAGE_SIZE) {
249          do_unaligned_access:          do_unaligned_access:
250              /* XXX: not efficient, but simple */              /* XXX: not efficient, but simple */
251              for(i = 0;i < DATA_SIZE; i++) {              for(i = 0;i < DATA_SIZE; i++) {

Legend:
Removed from v.1.12  
changed lines
  Added in v.1.13

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26