op_mem.h

来自「qemu性能直逼VMware的仿真器QEMU 的模擬速度約為實機的 25%;約為」· C头文件 代码 · 共 71 行

H
71
字号
/* ARM memory operations.  *//* Load from address T1 into T0.  */#define MEM_LD_OP(name) \void OPPROTO glue(op_ld##name,MEMSUFFIX)(void) \{ \    T0 = glue(ld##name,MEMSUFFIX)(T1); \    FORCE_RET(); \}MEM_LD_OP(ub)MEM_LD_OP(sb)MEM_LD_OP(uw)MEM_LD_OP(sw)MEM_LD_OP(l)#undef MEM_LD_OP/* Store T0 to address T1.  */#define MEM_ST_OP(name) \void OPPROTO glue(op_st##name,MEMSUFFIX)(void) \{ \    glue(st##name,MEMSUFFIX)(T1, T0); \    FORCE_RET(); \}MEM_ST_OP(b)MEM_ST_OP(w)MEM_ST_OP(l)#undef MEM_ST_OP/* Swap T0 with memory at address T1.  *//* ??? Is this exception safe?  */#define MEM_SWP_OP(name, lname) \void OPPROTO glue(op_swp##name,MEMSUFFIX)(void) \{ \    uint32_t tmp; \    cpu_lock(); \    tmp = glue(ld##lname,MEMSUFFIX)(T1); \    glue(st##name,MEMSUFFIX)(T1, T0); \    T0 = tmp; \    cpu_unlock(); \    FORCE_RET(); \}MEM_SWP_OP(b, ub)MEM_SWP_OP(l, l)#undef MEM_SWP_OP/* Floating point load/store.  Address is in T1 */#define VFP_MEM_OP(p, w) \void OPPROTO glue(op_vfp_ld##p,MEMSUFFIX)(void) \{ \    FT0##p = glue(ldf##w,MEMSUFFIX)(T1); \    FORCE_RET(); \} \void OPPROTO glue(op_vfp_st##p,MEMSUFFIX)(void) \{ \    glue(stf##w,MEMSUFFIX)(T1, FT0##p); \    FORCE_RET(); \}VFP_MEM_OP(s,l)VFP_MEM_OP(d,q)#undef VFP_MEM_OP#undef MEMSUFFIX

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?