X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=target-i386%2Fops_mem.h;h=2e6ccc424da68f0d0b58d86c6d52366ac7342bc6;hb=664e0f195adda3cf01b40d8d1aa79bbc24ad5fab;hp=284ab71af4ffe8a3ad9ba1d5c1387d2735ebc9e8;hpb=14ce26e755135e80f3726d42a5a887723d615291;p=qemu diff --git a/target-i386/ops_mem.h b/target-i386/ops_mem.h index 284ab71..2e6ccc4 100644 --- a/target-i386/ops_mem.h +++ b/target-i386/ops_mem.h @@ -80,23 +80,35 @@ void OPPROTO glue(glue(op_stl, MEMSUFFIX), _T1_A0)(void) glue(stl, MEMSUFFIX)(A0, T1); } -/* SSE support */ +/* 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); +} + void OPPROTO glue(glue(op_ldo, MEMSUFFIX), _env_A0)(void) { XMMReg *p; p = (XMMReg *)((char *)env + PARAM1); - /* XXX: host endianness ? */ - p->u.q[0] = glue(ldq, MEMSUFFIX)(A0); - p->u.q[1] = glue(ldq, MEMSUFFIX)(A0 + 8); + 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); - /* XXX: host endianness ? */ - glue(stq, MEMSUFFIX)(A0, p->u.q[0]); - glue(stq, MEMSUFFIX)(A0 + 8, p->u.q[1]); + glue(stq, MEMSUFFIX)(A0, p->XMM_Q(0)); + glue(stq, MEMSUFFIX)(A0 + 8, p->XMM_Q(1)); } #ifdef TARGET_X86_64