156 lines
1.9 KiB
C
156 lines
1.9 KiB
C
static int
|
|
opPAND_a16(uint32_t fetchdat)
|
|
{
|
|
MMX_REG src;
|
|
MMX_REG *dst;
|
|
MMX_ENTER();
|
|
|
|
fetch_ea_16(fetchdat);
|
|
|
|
dst = MMX_GETREGP(cpu_reg);
|
|
|
|
MMX_GETSRC();
|
|
|
|
dst->q &= src.q;
|
|
|
|
MMX_SETEXP(cpu_reg);
|
|
|
|
return 0;
|
|
}
|
|
static int
|
|
opPAND_a32(uint32_t fetchdat)
|
|
{
|
|
MMX_REG src;
|
|
MMX_REG *dst;
|
|
MMX_ENTER();
|
|
|
|
fetch_ea_32(fetchdat);
|
|
|
|
dst = MMX_GETREGP(cpu_reg);
|
|
|
|
MMX_GETSRC();
|
|
|
|
dst->q &= src.q;
|
|
|
|
MMX_SETEXP(cpu_reg);
|
|
|
|
return 0;
|
|
}
|
|
|
|
static int
|
|
opPANDN_a16(uint32_t fetchdat)
|
|
{
|
|
MMX_REG src;
|
|
MMX_REG *dst;
|
|
MMX_ENTER();
|
|
|
|
fetch_ea_16(fetchdat);
|
|
|
|
dst = MMX_GETREGP(cpu_reg);
|
|
|
|
MMX_GETSRC();
|
|
|
|
dst->q = ~dst->q & src.q;
|
|
|
|
MMX_SETEXP(cpu_reg);
|
|
|
|
return 0;
|
|
}
|
|
static int
|
|
opPANDN_a32(uint32_t fetchdat)
|
|
{
|
|
MMX_REG src;
|
|
MMX_REG *dst;
|
|
MMX_ENTER();
|
|
|
|
fetch_ea_32(fetchdat);
|
|
|
|
dst = MMX_GETREGP(cpu_reg);
|
|
|
|
MMX_GETSRC();
|
|
|
|
dst->q = ~dst->q & src.q;
|
|
|
|
MMX_SETEXP(cpu_reg);
|
|
|
|
return 0;
|
|
}
|
|
|
|
static int
|
|
opPOR_a16(uint32_t fetchdat)
|
|
{
|
|
MMX_REG src;
|
|
MMX_REG *dst;
|
|
MMX_ENTER();
|
|
|
|
fetch_ea_16(fetchdat);
|
|
|
|
dst = MMX_GETREGP(cpu_reg);
|
|
|
|
MMX_GETSRC();
|
|
|
|
dst->q |= src.q;
|
|
|
|
MMX_SETEXP(cpu_reg);
|
|
|
|
return 0;
|
|
}
|
|
static int
|
|
opPOR_a32(uint32_t fetchdat)
|
|
{
|
|
MMX_REG src;
|
|
MMX_REG *dst;
|
|
MMX_ENTER();
|
|
|
|
fetch_ea_32(fetchdat);
|
|
|
|
dst = MMX_GETREGP(cpu_reg);
|
|
|
|
MMX_GETSRC();
|
|
|
|
dst->q |= src.q;
|
|
|
|
MMX_SETEXP(cpu_reg);
|
|
|
|
return 0;
|
|
}
|
|
|
|
static int
|
|
opPXOR_a16(uint32_t fetchdat)
|
|
{
|
|
MMX_REG src;
|
|
MMX_REG *dst;
|
|
MMX_ENTER();
|
|
|
|
fetch_ea_16(fetchdat);
|
|
|
|
dst = MMX_GETREGP(cpu_reg);
|
|
|
|
MMX_GETSRC();
|
|
|
|
dst->q ^= src.q;
|
|
|
|
MMX_SETEXP(cpu_reg);
|
|
|
|
return 0;
|
|
}
|
|
static int
|
|
opPXOR_a32(uint32_t fetchdat)
|
|
{
|
|
MMX_REG src;
|
|
MMX_REG *dst;
|
|
MMX_ENTER();
|
|
|
|
fetch_ea_32(fetchdat);
|
|
|
|
dst = MMX_GETREGP(cpu_reg);
|
|
|
|
MMX_GETSRC();
|
|
|
|
dst->q ^= src.q;
|
|
|
|
MMX_SETEXP(cpu_reg);
|
|
|
|
return 0;
|
|
}
|