X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=target-i386%2Fops_mem.h;h=7ec84dde8948c18ae8021b9624d1047e764af10e;hb=7385ac0ba2456159a52b9b2cbb5f6c71921d0c23;hp=e1c8277bbcb66f1966d0e7a3f77b0eb5ce2f5640;hpb=2c0262afa75d7d6cb68217f9a7587170ed3cd5b3;p=qemu diff --git a/target-i386/ops_mem.h b/target-i386/ops_mem.h index e1c8277..7ec84dd 100644 --- a/target-i386/ops_mem.h +++ b/target-i386/ops_mem.h @@ -1,66 +1,156 @@ void OPPROTO glue(glue(op_ldub, MEMSUFFIX), _T0_A0)(void) { - T0 = glue(ldub, MEMSUFFIX)((uint8_t *)A0); + T0 = glue(ldub, MEMSUFFIX)(A0); } void OPPROTO glue(glue(op_ldsb, MEMSUFFIX), _T0_A0)(void) { - T0 = glue(ldsb, MEMSUFFIX)((int8_t *)A0); + T0 = glue(ldsb, MEMSUFFIX)(A0); } void OPPROTO glue(glue(op_lduw, MEMSUFFIX), _T0_A0)(void) { - T0 = glue(lduw, MEMSUFFIX)((uint8_t *)A0); + T0 = glue(lduw, MEMSUFFIX)(A0); } void OPPROTO glue(glue(op_ldsw, MEMSUFFIX), _T0_A0)(void) { - T0 = glue(ldsw, MEMSUFFIX)((int8_t *)A0); + T0 = glue(ldsw, MEMSUFFIX)(A0); } void OPPROTO glue(glue(op_ldl, MEMSUFFIX), _T0_A0)(void) { - T0 = glue(ldl, MEMSUFFIX)((uint8_t *)A0); + T0 = (uint32_t)glue(ldl, MEMSUFFIX)(A0); } void OPPROTO glue(glue(op_ldub, MEMSUFFIX), _T1_A0)(void) { - T1 = glue(ldub, MEMSUFFIX)((uint8_t *)A0); + T1 = glue(ldub, MEMSUFFIX)(A0); } void OPPROTO glue(glue(op_ldsb, MEMSUFFIX), _T1_A0)(void) { - T1 = glue(ldsb, MEMSUFFIX)((int8_t *)A0); + T1 = glue(ldsb, MEMSUFFIX)(A0); } void OPPROTO glue(glue(op_lduw, MEMSUFFIX), _T1_A0)(void) { - T1 = glue(lduw, MEMSUFFIX)((uint8_t *)A0); + T1 = glue(lduw, MEMSUFFIX)(A0); } void OPPROTO glue(glue(op_ldsw, MEMSUFFIX), _T1_A0)(void) { - T1 = glue(ldsw, MEMSUFFIX)((int8_t *)A0); + T1 = glue(ldsw, MEMSUFFIX)(A0); } void OPPROTO glue(glue(op_ldl, MEMSUFFIX), _T1_A0)(void) { - T1 = glue(ldl, MEMSUFFIX)((uint8_t *)A0); + T1 = (uint32_t)glue(ldl, MEMSUFFIX)(A0); } void OPPROTO glue(glue(op_stb, MEMSUFFIX), _T0_A0)(void) { - glue(stb, MEMSUFFIX)((uint8_t *)A0, T0); + glue(stb, MEMSUFFIX)(A0, T0); + FORCE_RET(); } void OPPROTO glue(glue(op_stw, MEMSUFFIX), _T0_A0)(void) { - glue(stw, MEMSUFFIX)((uint8_t *)A0, T0); + glue(stw, MEMSUFFIX)(A0, T0); + FORCE_RET(); } void OPPROTO glue(glue(op_stl, MEMSUFFIX), _T0_A0)(void) { - glue(stl, MEMSUFFIX)((uint8_t *)A0, T0); + glue(stl, MEMSUFFIX)(A0, T0); + FORCE_RET(); } +#if 0 +void OPPROTO glue(glue(op_stb, MEMSUFFIX), _T1_A0)(void) +{ + glue(stb, MEMSUFFIX)(A0, T1); + FORCE_RET(); +} +#endif + +void OPPROTO glue(glue(op_stw, MEMSUFFIX), _T1_A0)(void) +{ + glue(stw, MEMSUFFIX)(A0, T1); + FORCE_RET(); +} + +void OPPROTO glue(glue(op_stl, MEMSUFFIX), _T1_A0)(void) +{ + glue(stl, MEMSUFFIX)(A0, T1); + FORCE_RET(); +} + +/* SSE/MMX support */ +void OPPROTO glue(glue(op_ldq, MEMSUFFIX), _env_A0)(void) +{ + uint64_t *p; + p = (uint64_t *)((char *)env + PARAM1); + *p = glue(ldq, MEMSUFFIX)(A0); +} + +void OPPROTO glue(glue(op_stq, MEMSUFFIX), _env_A0)(void) +{ + uint64_t *p; + p = (uint64_t *)((char *)env + PARAM1); + glue(stq, MEMSUFFIX)(A0, *p); + FORCE_RET(); +} + +void OPPROTO glue(glue(op_ldo, MEMSUFFIX), _env_A0)(void) +{ + XMMReg *p; + p = (XMMReg *)((char *)env + PARAM1); + p->XMM_Q(0) = glue(ldq, MEMSUFFIX)(A0); + p->XMM_Q(1) = glue(ldq, MEMSUFFIX)(A0 + 8); +} + +void OPPROTO glue(glue(op_sto, MEMSUFFIX), _env_A0)(void) +{ + XMMReg *p; + p = (XMMReg *)((char *)env + PARAM1); + glue(stq, MEMSUFFIX)(A0, p->XMM_Q(0)); + glue(stq, MEMSUFFIX)(A0 + 8, p->XMM_Q(1)); + FORCE_RET(); +} + +#ifdef TARGET_X86_64 +void OPPROTO glue(glue(op_ldsl, MEMSUFFIX), _T0_A0)(void) +{ + T0 = (int32_t)glue(ldl, MEMSUFFIX)(A0); +} + +void OPPROTO glue(glue(op_ldsl, MEMSUFFIX), _T1_A0)(void) +{ + T1 = (int32_t)glue(ldl, MEMSUFFIX)(A0); +} + +void OPPROTO glue(glue(op_ldq, MEMSUFFIX), _T0_A0)(void) +{ + T0 = glue(ldq, MEMSUFFIX)(A0); +} + +void OPPROTO glue(glue(op_ldq, MEMSUFFIX), _T1_A0)(void) +{ + T1 = glue(ldq, MEMSUFFIX)(A0); +} + +void OPPROTO glue(glue(op_stq, MEMSUFFIX), _T0_A0)(void) +{ + glue(stq, MEMSUFFIX)(A0, T0); + FORCE_RET(); +} + +void OPPROTO glue(glue(op_stq, MEMSUFFIX), _T1_A0)(void) +{ + glue(stq, MEMSUFFIX)(A0, T1); + FORCE_RET(); +} +#endif + #undef MEMSUFFIX