Added MMX emulation (probably some bugs). Implemented RDMSR/WRMSR for Winchip.
This commit is contained in:
parent
cfb4ab27b4
commit
119fe36820
17 changed files with 2362 additions and 65 deletions
91
src/x86_ops_mmx_logic.h
Normal file
91
src/x86_ops_mmx_logic.h
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
int opPAND_a16(uint32_t fetchdat)
|
||||
{
|
||||
MMX_REG src;
|
||||
MMX_ENTER();
|
||||
|
||||
fetch_ea_16(fetchdat);
|
||||
MMX_GETSRC();
|
||||
|
||||
MM[reg].q &= src.q;
|
||||
return 0;
|
||||
}
|
||||
int opPAND_a32(uint32_t fetchdat)
|
||||
{
|
||||
MMX_REG src;
|
||||
MMX_ENTER();
|
||||
|
||||
fetch_ea_32(fetchdat);
|
||||
MMX_GETSRC();
|
||||
|
||||
MM[reg].q &= src.q;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int opPANDN_a16(uint32_t fetchdat)
|
||||
{
|
||||
MMX_REG src;
|
||||
MMX_ENTER();
|
||||
|
||||
fetch_ea_16(fetchdat);
|
||||
MMX_GETSRC();
|
||||
|
||||
MM[reg].q &= ~src.q;
|
||||
return 0;
|
||||
}
|
||||
int opPANDN_a32(uint32_t fetchdat)
|
||||
{
|
||||
MMX_REG src;
|
||||
MMX_ENTER();
|
||||
|
||||
fetch_ea_32(fetchdat);
|
||||
MMX_GETSRC();
|
||||
|
||||
MM[reg].q &= ~src.q;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int opPOR_a16(uint32_t fetchdat)
|
||||
{
|
||||
MMX_REG src;
|
||||
MMX_ENTER();
|
||||
|
||||
fetch_ea_16(fetchdat);
|
||||
MMX_GETSRC();
|
||||
|
||||
MM[reg].q |= src.q;
|
||||
return 0;
|
||||
}
|
||||
int opPOR_a32(uint32_t fetchdat)
|
||||
{
|
||||
MMX_REG src;
|
||||
MMX_ENTER();
|
||||
|
||||
fetch_ea_32(fetchdat);
|
||||
MMX_GETSRC();
|
||||
|
||||
MM[reg].q |= src.q;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int opPXOR_a16(uint32_t fetchdat)
|
||||
{
|
||||
MMX_REG src;
|
||||
MMX_ENTER();
|
||||
|
||||
fetch_ea_16(fetchdat);
|
||||
MMX_GETSRC();
|
||||
|
||||
MM[reg].q ^= src.q;
|
||||
return 0;
|
||||
}
|
||||
int opPXOR_a32(uint32_t fetchdat)
|
||||
{
|
||||
MMX_REG src;
|
||||
MMX_ENTER();
|
||||
|
||||
fetch_ea_32(fetchdat);
|
||||
MMX_GETSRC();
|
||||
|
||||
MM[reg].q ^= src.q;
|
||||
return 0;
|
||||
}
|
||||
Loading…
Reference in a new issue