Rev. 1.50, 10/04, page 400 of 448
Operation:
void FMOV_STORE_XD(int m,n) /* FMOV XDm,@Rn */
{
store_quad(XD[m>>1],R[n]);
pc += 2;
}
void FMOV_LOAD_XD(int m,n) /* FMOV @Rm,XDn */
{
load_quad(R[m],XD[n>>1]);
pc += 2;
}
void FMOV_RESTORE_XD(int m,n) /* FMOV @Rm+,XDn */
{
load_quad(R[m],XD[n>>1]);
R[m] += 8;
pc += 2;
}
void FMOV_SAVE_XD(int m,n) /* FMOV XDm,@–Rn */
{
store_quad(XD[m>>1],R[n]-8);
R[n] -= 8;
pc += 2;
}
void FMOV_INDEX_LOAD_XD(int m,n) /* FMOV @(R0,Rm),XDn */
{
load_quad(R[0] + R[m],XD[n>>1]);
pc += 2;
}
void FMOV_INDEX_STORE_XD(int m,n) /* FMOV XDm,@(R0,Rn) */
{
store_quad(XD[m>>1], R[0] + R[n]);
pc += 2;
}
void FMOV_XDXD(int m,n) /* FMOV XDm,XDn */
{
XD[n>>1] = XD[m>>1];
pc += 2;