/[qemu]/qemu/target-ppc/op_helper_mem.h
ViewVC logotype

Diff of /qemu/target-ppc/op_helper_mem.h

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

revision 1.3 by bellard, Mon Jan 3 23:42:39 2005 UTC revision 1.4 by bellard, Sat Apr 23 18:16:07 2005 UTC
# Line 40  void glue(do_stsw, MEMSUFFIX) (int src) Line 40  void glue(do_stsw, MEMSUFFIX) (int src)
40      }      }
41  }  }
42    
43    void glue(do_lsw_le, MEMSUFFIX) (int dst)
44    {
45        uint32_t tmp;
46        int sh;
47    
48        if (loglevel > 0) {
49            fprintf(logfile, "%s: addr=0x%08x count=%d reg=%d\n",
50                    __func__, T0, T1, dst);
51        }
52        for (; T1 > 3; T1 -= 4, T0 += 4) {
53            tmp = glue(ldl, MEMSUFFIX)(T0);
54            ugpr(dst++) = ((tmp & 0xFF000000) >> 24) | ((tmp & 0x00FF0000) >> 8) |
55                ((tmp & 0x0000FF00) << 8) | ((tmp & 0x000000FF) << 24);
56            if (dst == 32)
57                dst = 0;
58        }
59        if (T1 > 0) {
60            tmp = 0;
61            for (sh = 0; T1 > 0; T1--, T0++, sh += 8) {
62                tmp |= glue(ldub, MEMSUFFIX)(T0) << sh;
63            }
64            ugpr(dst) = tmp;
65        }
66    }
67    
68    void glue(do_stsw_le, MEMSUFFIX) (int src)
69    {
70        uint32_t tmp;
71        int sh;
72    
73        if (loglevel > 0) {
74            fprintf(logfile, "%s: addr=0x%08x count=%d reg=%d\n",
75                    __func__, T0, T1, src);
76        }
77        for (; T1 > 3; T1 -= 4, T0 += 4) {
78            tmp = ((ugpr(src++) & 0xFF000000) >> 24);
79            tmp |= ((ugpr(src++) & 0x00FF0000) >> 8);
80            tmp |= ((ugpr(src++) & 0x0000FF00) << 8);
81            tmp |= ((ugpr(src++) & 0x000000FF) << 24);
82            glue(stl, MEMSUFFIX)(T0, tmp);
83            if (src == 32)
84                src = 0;
85        }
86        if (T1 > 0) {
87            for (sh = 0; T1 > 0; T1--, T0++, sh += 8)
88                glue(stb, MEMSUFFIX)(T0, (ugpr(src) >> sh) & 0xFF);
89        }
90    }
91    
92  #undef MEMSUFFIX  #undef MEMSUFFIX

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

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