root / target-sparc / op_mem.h @ 2483386a
History | View | Annotate | Download (1.3 kB)
1 | 992f48a0 | blueswir1 | #ifdef TARGET_ABI32
|
---|---|---|---|
2 | 992f48a0 | blueswir1 | #define ADDR(x) ((x) & 0xffffffff) |
3 | 992f48a0 | blueswir1 | #else
|
4 | 992f48a0 | blueswir1 | #define ADDR(x) (x)
|
5 | 992f48a0 | blueswir1 | #endif
|
6 | 992f48a0 | blueswir1 | |
7 | b25deda7 | blueswir1 | #ifdef __i386__
|
8 | b25deda7 | blueswir1 | /*** Integer store ***/
|
9 | b25deda7 | blueswir1 | void OPPROTO glue(op_std, MEMSUFFIX)(void) |
10 | b25deda7 | blueswir1 | { |
11 | b25deda7 | blueswir1 | uint64_t tmp = ((uint64_t)T1 << 32) | (uint64_t)(T2 & 0xffffffff); |
12 | b25deda7 | blueswir1 | |
13 | b25deda7 | blueswir1 | glue(stq, MEMSUFFIX)(ADDR(T0), tmp); |
14 | b25deda7 | blueswir1 | } |
15 | b25deda7 | blueswir1 | |
16 | b25deda7 | blueswir1 | #endif /* __i386__ */ |
17 | e8af50a3 | bellard | /*** Floating-point store ***/
|
18 | e8af50a3 | bellard | void OPPROTO glue(op_stf, MEMSUFFIX) (void) |
19 | e8af50a3 | bellard | { |
20 | 992f48a0 | blueswir1 | glue(stfl, MEMSUFFIX)(ADDR(T0), FT0); |
21 | e8af50a3 | bellard | } |
22 | e8af50a3 | bellard | |
23 | e8af50a3 | bellard | void OPPROTO glue(op_stdf, MEMSUFFIX) (void) |
24 | e8af50a3 | bellard | { |
25 | 992f48a0 | blueswir1 | glue(stfq, MEMSUFFIX)(ADDR(T0), DT0); |
26 | e8af50a3 | bellard | } |
27 | e8af50a3 | bellard | |
28 | e8af50a3 | bellard | /*** Floating-point load ***/
|
29 | e8af50a3 | bellard | void OPPROTO glue(op_ldf, MEMSUFFIX) (void) |
30 | e8af50a3 | bellard | { |
31 | 992f48a0 | blueswir1 | FT0 = glue(ldfl, MEMSUFFIX)(ADDR(T0)); |
32 | e8af50a3 | bellard | } |
33 | e8af50a3 | bellard | |
34 | e8af50a3 | bellard | void OPPROTO glue(op_lddf, MEMSUFFIX) (void) |
35 | e8af50a3 | bellard | { |
36 | 992f48a0 | blueswir1 | DT0 = glue(ldfq, MEMSUFFIX)(ADDR(T0)); |
37 | e8af50a3 | bellard | } |
38 | 3475187d | bellard | |
39 | 1f587329 | blueswir1 | #if defined(CONFIG_USER_ONLY)
|
40 | 1f587329 | blueswir1 | void OPPROTO glue(op_ldqf, MEMSUFFIX) (void) |
41 | 1f587329 | blueswir1 | { |
42 | 1f587329 | blueswir1 | // XXX add 128 bit load
|
43 | 1f587329 | blueswir1 | CPU_QuadU u; |
44 | 1f587329 | blueswir1 | |
45 | 1f587329 | blueswir1 | u.ll.upper = glue(ldq, MEMSUFFIX)(ADDR(T0)); |
46 | 1f587329 | blueswir1 | u.ll.lower = glue(ldq, MEMSUFFIX)(ADDR(T0 + 8));
|
47 | 1f587329 | blueswir1 | QT0 = u.q; |
48 | 1f587329 | blueswir1 | } |
49 | 1f587329 | blueswir1 | |
50 | 1f587329 | blueswir1 | void OPPROTO glue(op_stqf, MEMSUFFIX) (void) |
51 | 1f587329 | blueswir1 | { |
52 | 1f587329 | blueswir1 | // XXX add 128 bit store
|
53 | 1f587329 | blueswir1 | CPU_QuadU u; |
54 | 1f587329 | blueswir1 | |
55 | 1f587329 | blueswir1 | u.q = QT0; |
56 | 1f587329 | blueswir1 | glue(stq, MEMSUFFIX)(ADDR(T0), u.ll.upper); |
57 | 1f587329 | blueswir1 | glue(stq, MEMSUFFIX)(ADDR(T0 + 8), u.ll.lower);
|
58 | 1f587329 | blueswir1 | } |
59 | 1f587329 | blueswir1 | #endif
|
60 | 1f587329 | blueswir1 | |
61 | e8af50a3 | bellard | #undef MEMSUFFIX |