2003-10-01 00:34:21 +04:00
|
|
|
void OPPROTO glue(glue(op_ldub, MEMSUFFIX), _T0_A0)(void)
|
|
|
|
{
|
2005-01-04 02:50:08 +03:00
|
|
|
T0 = glue(ldub, MEMSUFFIX)(A0);
|
2003-10-01 00:34:21 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
void OPPROTO glue(glue(op_ldsb, MEMSUFFIX), _T0_A0)(void)
|
|
|
|
{
|
2005-01-04 02:50:08 +03:00
|
|
|
T0 = glue(ldsb, MEMSUFFIX)(A0);
|
2003-10-01 00:34:21 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
void OPPROTO glue(glue(op_lduw, MEMSUFFIX), _T0_A0)(void)
|
|
|
|
{
|
2005-01-04 02:50:08 +03:00
|
|
|
T0 = glue(lduw, MEMSUFFIX)(A0);
|
2003-10-01 00:34:21 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
void OPPROTO glue(glue(op_ldsw, MEMSUFFIX), _T0_A0)(void)
|
|
|
|
{
|
2005-01-04 02:50:08 +03:00
|
|
|
T0 = glue(ldsw, MEMSUFFIX)(A0);
|
2003-10-01 00:34:21 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
void OPPROTO glue(glue(op_ldl, MEMSUFFIX), _T0_A0)(void)
|
|
|
|
{
|
2005-01-04 02:50:08 +03:00
|
|
|
T0 = (uint32_t)glue(ldl, MEMSUFFIX)(A0);
|
2003-10-01 00:34:21 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
void OPPROTO glue(glue(op_ldub, MEMSUFFIX), _T1_A0)(void)
|
|
|
|
{
|
2005-01-04 02:50:08 +03:00
|
|
|
T1 = glue(ldub, MEMSUFFIX)(A0);
|
2003-10-01 00:34:21 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
void OPPROTO glue(glue(op_ldsb, MEMSUFFIX), _T1_A0)(void)
|
|
|
|
{
|
2005-01-04 02:50:08 +03:00
|
|
|
T1 = glue(ldsb, MEMSUFFIX)(A0);
|
2003-10-01 00:34:21 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
void OPPROTO glue(glue(op_lduw, MEMSUFFIX), _T1_A0)(void)
|
|
|
|
{
|
2005-01-04 02:50:08 +03:00
|
|
|
T1 = glue(lduw, MEMSUFFIX)(A0);
|
2003-10-01 00:34:21 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
void OPPROTO glue(glue(op_ldsw, MEMSUFFIX), _T1_A0)(void)
|
|
|
|
{
|
2005-01-04 02:50:08 +03:00
|
|
|
T1 = glue(ldsw, MEMSUFFIX)(A0);
|
2003-10-01 00:34:21 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
void OPPROTO glue(glue(op_ldl, MEMSUFFIX), _T1_A0)(void)
|
|
|
|
{
|
2005-11-29 00:02:17 +03:00
|
|
|
T1 = (uint32_t)glue(ldl, MEMSUFFIX)(A0);
|
2003-10-01 00:34:21 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
void OPPROTO glue(glue(op_stb, MEMSUFFIX), _T0_A0)(void)
|
|
|
|
{
|
2005-01-04 02:50:08 +03:00
|
|
|
glue(stb, MEMSUFFIX)(A0, T0);
|
2005-03-13 12:55:49 +03:00
|
|
|
FORCE_RET();
|
2003-10-01 00:34:21 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
void OPPROTO glue(glue(op_stw, MEMSUFFIX), _T0_A0)(void)
|
|
|
|
{
|
2005-01-04 02:50:08 +03:00
|
|
|
glue(stw, MEMSUFFIX)(A0, T0);
|
2005-03-13 12:55:49 +03:00
|
|
|
FORCE_RET();
|
2003-10-01 00:34:21 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
void OPPROTO glue(glue(op_stl, MEMSUFFIX), _T0_A0)(void)
|
|
|
|
{
|
2005-01-04 02:50:08 +03:00
|
|
|
glue(stl, MEMSUFFIX)(A0, T0);
|
2005-03-13 12:55:49 +03:00
|
|
|
FORCE_RET();
|
2003-10-01 00:34:21 +04:00
|
|
|
}
|
|
|
|
|
2004-01-04 20:28:06 +03:00
|
|
|
#if 0
|
|
|
|
void OPPROTO glue(glue(op_stb, MEMSUFFIX), _T1_A0)(void)
|
|
|
|
{
|
2005-01-04 02:50:08 +03:00
|
|
|
glue(stb, MEMSUFFIX)(A0, T1);
|
2005-03-13 12:55:49 +03:00
|
|
|
FORCE_RET();
|
2004-01-04 20:28:06 +03:00
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
void OPPROTO glue(glue(op_stw, MEMSUFFIX), _T1_A0)(void)
|
|
|
|
{
|
2005-01-04 02:50:08 +03:00
|
|
|
glue(stw, MEMSUFFIX)(A0, T1);
|
2005-03-13 12:55:49 +03:00
|
|
|
FORCE_RET();
|
2004-01-04 20:28:06 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
void OPPROTO glue(glue(op_stl, MEMSUFFIX), _T1_A0)(void)
|
|
|
|
{
|
2005-01-04 02:50:08 +03:00
|
|
|
glue(stl, MEMSUFFIX)(A0, T1);
|
2005-03-13 12:55:49 +03:00
|
|
|
FORCE_RET();
|
2004-01-04 20:28:06 +03:00
|
|
|
}
|
|
|
|
|
2005-01-08 21:58:29 +03:00
|
|
|
/* 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);
|
2005-03-13 12:55:49 +03:00
|
|
|
FORCE_RET();
|
2005-01-08 21:58:29 +03:00
|
|
|
}
|
|
|
|
|
2005-01-04 02:50:08 +03:00
|
|
|
void OPPROTO glue(glue(op_ldo, MEMSUFFIX), _env_A0)(void)
|
|
|
|
{
|
|
|
|
XMMReg *p;
|
|
|
|
p = (XMMReg *)((char *)env + PARAM1);
|
2005-01-06 23:46:58 +03:00
|
|
|
p->XMM_Q(0) = glue(ldq, MEMSUFFIX)(A0);
|
|
|
|
p->XMM_Q(1) = glue(ldq, MEMSUFFIX)(A0 + 8);
|
2005-01-04 02:50:08 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
void OPPROTO glue(glue(op_sto, MEMSUFFIX), _env_A0)(void)
|
|
|
|
{
|
|
|
|
XMMReg *p;
|
|
|
|
p = (XMMReg *)((char *)env + PARAM1);
|
2005-01-06 23:46:58 +03:00
|
|
|
glue(stq, MEMSUFFIX)(A0, p->XMM_Q(0));
|
|
|
|
glue(stq, MEMSUFFIX)(A0 + 8, p->XMM_Q(1));
|
2005-03-13 12:55:49 +03:00
|
|
|
FORCE_RET();
|
2005-01-04 02:50:08 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
#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);
|
2005-03-13 12:55:49 +03:00
|
|
|
FORCE_RET();
|
2005-01-04 02:50:08 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
void OPPROTO glue(glue(op_stq, MEMSUFFIX), _T1_A0)(void)
|
|
|
|
{
|
|
|
|
glue(stq, MEMSUFFIX)(A0, T1);
|
2005-03-13 12:55:49 +03:00
|
|
|
FORCE_RET();
|
2005-01-04 02:50:08 +03:00
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2003-10-01 00:34:21 +04:00
|
|
|
#undef MEMSUFFIX
|