X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=target-i386%2Fops_mem.h;h=7ec84dde8948c18ae8021b9624d1047e764af10e;hb=7385ac0ba2456159a52b9b2cbb5f6c71921d0c23;hp=21c17008b98570cbd4df61cb2ef0ca912c19c3ca;hpb=a8ede8ba8be076ae56b7c9ce9b4f2a115589543a;p=qemu diff --git a/target-i386/ops_mem.h b/target-i386/ops_mem.h index 21c1700..7ec84dd 100644 --- a/target-i386/ops_mem.h +++ b/target-i386/ops_mem.h @@ -45,42 +45,63 @@ void OPPROTO glue(glue(op_ldsw, MEMSUFFIX), _T1_A0)(void) void OPPROTO glue(glue(op_ldl, MEMSUFFIX), _T1_A0)(void) { - T1 = glue(ldl, MEMSUFFIX)(A0); + T1 = (uint32_t)glue(ldl, MEMSUFFIX)(A0); } void OPPROTO glue(glue(op_stb, MEMSUFFIX), _T0_A0)(void) { glue(stb, MEMSUFFIX)(A0, T0); + FORCE_RET(); } void OPPROTO glue(glue(op_stw, MEMSUFFIX), _T0_A0)(void) { glue(stw, MEMSUFFIX)(A0, T0); + FORCE_RET(); } void OPPROTO glue(glue(op_stl, MEMSUFFIX), _T0_A0)(void) { 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(); } -/* SSE support */ void OPPROTO glue(glue(op_ldo, MEMSUFFIX), _env_A0)(void) { XMMReg *p; @@ -95,6 +116,7 @@ void OPPROTO glue(glue(op_sto, MEMSUFFIX), _env_A0)(void) 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 @@ -121,11 +143,13 @@ void OPPROTO glue(glue(op_ldq, MEMSUFFIX), _T1_A0)(void) 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