]>
Commit | Line | Data |
---|---|---|
e8af50a3 FB |
1 | /*** Integer load ***/ |
2 | #define SPARC_LD_OP(name, qp) \ | |
3 | void OPPROTO glue(glue(op_, name), MEMSUFFIX)(void) \ | |
4 | { \ | |
0fa85d43 | 5 | T1 = glue(qp, MEMSUFFIX)(T0); \ |
e8af50a3 FB |
6 | } |
7 | ||
8 | #define SPARC_ST_OP(name, op) \ | |
9 | void OPPROTO glue(glue(op_, name), MEMSUFFIX)(void) \ | |
10 | { \ | |
0fa85d43 | 11 | glue(op, MEMSUFFIX)(T0, T1); \ |
e8af50a3 FB |
12 | } |
13 | ||
14 | SPARC_LD_OP(ld, ldl); | |
15 | SPARC_LD_OP(ldub, ldub); | |
16 | SPARC_LD_OP(lduh, lduw); | |
17 | SPARC_LD_OP(ldsb, ldsb); | |
18 | SPARC_LD_OP(ldsh, ldsw); | |
19 | ||
20 | /*** Integer store ***/ | |
21 | SPARC_ST_OP(st, stl); | |
22 | SPARC_ST_OP(stb, stb); | |
23 | SPARC_ST_OP(sth, stw); | |
24 | ||
25 | void OPPROTO glue(op_std, MEMSUFFIX)(void) | |
26 | { | |
0fa85d43 FB |
27 | glue(stl, MEMSUFFIX)(T0, T1); |
28 | glue(stl, MEMSUFFIX)((T0 + 4), T2); | |
e8af50a3 FB |
29 | } |
30 | ||
31 | void OPPROTO glue(op_ldstub, MEMSUFFIX)(void) | |
32 | { | |
0fa85d43 FB |
33 | T1 = glue(ldub, MEMSUFFIX)(T0); |
34 | glue(stb, MEMSUFFIX)(T0, 0xff); /* XXX: Should be Atomically */ | |
e8af50a3 FB |
35 | } |
36 | ||
37 | void OPPROTO glue(op_swap, MEMSUFFIX)(void) | |
38 | { | |
af7bf89b | 39 | target_ulong tmp = glue(ldl, MEMSUFFIX)(T0); |
0fa85d43 | 40 | glue(stl, MEMSUFFIX)(T0, T1); /* XXX: Should be Atomically */ |
e8af50a3 FB |
41 | T1 = tmp; |
42 | } | |
43 | ||
44 | void OPPROTO glue(op_ldd, MEMSUFFIX)(void) | |
45 | { | |
0fa85d43 FB |
46 | T1 = glue(ldl, MEMSUFFIX)(T0); |
47 | T0 = glue(ldl, MEMSUFFIX)((T0 + 4)); | |
e8af50a3 FB |
48 | } |
49 | ||
50 | /*** Floating-point store ***/ | |
51 | void OPPROTO glue(op_stf, MEMSUFFIX) (void) | |
52 | { | |
0fa85d43 | 53 | glue(stfl, MEMSUFFIX)(T0, FT0); |
e8af50a3 FB |
54 | } |
55 | ||
56 | void OPPROTO glue(op_stdf, MEMSUFFIX) (void) | |
57 | { | |
0fa85d43 | 58 | glue(stfq, MEMSUFFIX)(T0, DT0); |
e8af50a3 FB |
59 | } |
60 | ||
61 | /*** Floating-point load ***/ | |
62 | void OPPROTO glue(op_ldf, MEMSUFFIX) (void) | |
63 | { | |
0fa85d43 | 64 | FT0 = glue(ldfl, MEMSUFFIX)(T0); |
e8af50a3 FB |
65 | } |
66 | ||
67 | void OPPROTO glue(op_lddf, MEMSUFFIX) (void) | |
68 | { | |
0fa85d43 | 69 | DT0 = glue(ldfq, MEMSUFFIX)(T0); |
e8af50a3 FB |
70 | } |
71 | #undef MEMSUFFIX |