|
|
1.1 root 1: /* Load/store ops. */
2: #define MEM_LD_OP(name,suffix) \
3: OP(glue(glue(ld,name),MEMSUFFIX)) \
4: { \
5: uint32_t addr = get_op(PARAM2); \
6: set_op(PARAM1, glue(glue(ld,suffix),MEMSUFFIX)(addr)); \
7: FORCE_RET(); \
8: }
9:
10: MEM_LD_OP(8u32,ub)
11: MEM_LD_OP(8s32,sb)
12: MEM_LD_OP(16u32,uw)
13: MEM_LD_OP(16s32,sw)
14: MEM_LD_OP(32,l)
15:
16: #undef MEM_LD_OP
17:
18: #define MEM_ST_OP(name,suffix) \
19: OP(glue(glue(st,name),MEMSUFFIX)) \
20: { \
21: uint32_t addr = get_op(PARAM1); \
22: glue(glue(st,suffix),MEMSUFFIX)(addr, get_op(PARAM2)); \
23: FORCE_RET(); \
24: }
25:
26: MEM_ST_OP(8,b)
27: MEM_ST_OP(16,w)
28: MEM_ST_OP(32,l)
29:
30: #undef MEM_ST_OP
31:
32: OP(glue(ldf64,MEMSUFFIX))
33: {
34: uint32_t addr = get_op(PARAM2);
35: set_opf64(PARAM1, glue(ldfq,MEMSUFFIX)(addr));
36: FORCE_RET();
37: }
38:
39: OP(glue(stf64,MEMSUFFIX))
40: {
41: uint32_t addr = get_op(PARAM1);
42: glue(stfq,MEMSUFFIX)(addr, get_opf64(PARAM2));
43: FORCE_RET();
44: }
45:
46: #undef MEMSUFFIX
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.