root / target-ppc / op_helper_mem.h @ dc5d0b3d
History | View | Annotate | Download (1 kB)
1 | 9a64fbe4 | bellard | void glue(do_lsw, MEMSUFFIX) (int dst) |
---|---|---|---|
2 | 9a64fbe4 | bellard | { |
3 | 9a64fbe4 | bellard | uint32_t tmp; |
4 | 9a64fbe4 | bellard | int sh;
|
5 | 9a64fbe4 | bellard | |
6 | 9a64fbe4 | bellard | if (loglevel > 0) { |
7 | 9a64fbe4 | bellard | fprintf(logfile, "%s: addr=0x%08x count=%d reg=%d\n",
|
8 | 9a64fbe4 | bellard | __func__, T0, T1, dst); |
9 | 9a64fbe4 | bellard | } |
10 | 9a64fbe4 | bellard | for (; T1 > 3; T1 -= 4, T0 += 4) { |
11 | ac9eb073 | bellard | ugpr(dst++) = glue(ldl, MEMSUFFIX)((void *)T0);
|
12 | 9a64fbe4 | bellard | if (dst == 32) |
13 | 9a64fbe4 | bellard | dst = 0;
|
14 | 9a64fbe4 | bellard | } |
15 | 9a64fbe4 | bellard | if (T1 > 0) { |
16 | 9a64fbe4 | bellard | tmp = 0;
|
17 | 9a64fbe4 | bellard | for (sh = 24; T1 > 0; T1--, T0++, sh -= 8) { |
18 | ac9eb073 | bellard | tmp |= glue(ldub, MEMSUFFIX)((void *)T0) << sh;
|
19 | 9a64fbe4 | bellard | } |
20 | 9a64fbe4 | bellard | ugpr(dst) = tmp; |
21 | 9a64fbe4 | bellard | } |
22 | 9a64fbe4 | bellard | } |
23 | 9a64fbe4 | bellard | |
24 | 9a64fbe4 | bellard | void glue(do_stsw, MEMSUFFIX) (int src) |
25 | 9a64fbe4 | bellard | { |
26 | 9a64fbe4 | bellard | int sh;
|
27 | 9a64fbe4 | bellard | |
28 | 9a64fbe4 | bellard | if (loglevel > 0) { |
29 | 9a64fbe4 | bellard | fprintf(logfile, "%s: addr=0x%08x count=%d reg=%d\n",
|
30 | 9a64fbe4 | bellard | __func__, T0, T1, src); |
31 | 9a64fbe4 | bellard | } |
32 | 9a64fbe4 | bellard | for (; T1 > 3; T1 -= 4, T0 += 4) { |
33 | ac9eb073 | bellard | glue(stl, MEMSUFFIX)((void *)T0, ugpr(src++));
|
34 | 9a64fbe4 | bellard | if (src == 32) |
35 | 9a64fbe4 | bellard | src = 0;
|
36 | 9a64fbe4 | bellard | } |
37 | 9a64fbe4 | bellard | if (T1 > 0) { |
38 | 9a64fbe4 | bellard | for (sh = 24; T1 > 0; T1--, T0++, sh -= 8) |
39 | ac9eb073 | bellard | glue(stb, MEMSUFFIX)((void *)T0, (ugpr(src) >> sh) & 0xFF); |
40 | 9a64fbe4 | bellard | } |
41 | 9a64fbe4 | bellard | } |
42 | 9a64fbe4 | bellard | |
43 | 9a64fbe4 | bellard | #undef MEMSUFFIX |