mirror of
https://github.com/xemu-project/xemu.git
synced 2024-11-24 20:19:44 +00:00
0633879f1a
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2851 c046a42c-6fe2-441c-8c8c-71466251a162
47 lines
877 B
C
47 lines
877 B
C
/* Load/store ops. */
|
|
#define MEM_LD_OP(name,suffix) \
|
|
OP(glue(glue(ld,name),MEMSUFFIX)) \
|
|
{ \
|
|
uint32_t addr = get_op(PARAM2); \
|
|
set_op(PARAM1, glue(glue(ld,suffix),MEMSUFFIX)(addr)); \
|
|
FORCE_RET(); \
|
|
}
|
|
|
|
MEM_LD_OP(8u32,ub)
|
|
MEM_LD_OP(8s32,sb)
|
|
MEM_LD_OP(16u32,uw)
|
|
MEM_LD_OP(16s32,sw)
|
|
MEM_LD_OP(32,l)
|
|
|
|
#undef MEM_LD_OP
|
|
|
|
#define MEM_ST_OP(name,suffix) \
|
|
OP(glue(glue(st,name),MEMSUFFIX)) \
|
|
{ \
|
|
uint32_t addr = get_op(PARAM1); \
|
|
glue(glue(st,suffix),MEMSUFFIX)(addr, get_op(PARAM2)); \
|
|
FORCE_RET(); \
|
|
}
|
|
|
|
MEM_ST_OP(8,b)
|
|
MEM_ST_OP(16,w)
|
|
MEM_ST_OP(32,l)
|
|
|
|
#undef MEM_ST_OP
|
|
|
|
OP(glue(ldf64,MEMSUFFIX))
|
|
{
|
|
uint32_t addr = get_op(PARAM2);
|
|
set_opf64(PARAM1, glue(ldfq,MEMSUFFIX)(addr));
|
|
FORCE_RET();
|
|
}
|
|
|
|
OP(glue(stf64,MEMSUFFIX))
|
|
{
|
|
uint32_t addr = get_op(PARAM1);
|
|
glue(stfq,MEMSUFFIX)(addr, get_opf64(PARAM2));
|
|
FORCE_RET();
|
|
}
|
|
|
|
#undef MEMSUFFIX
|