use crate::*;
const DATA_ADDR: u64 = 0x3000;
#[test]
fn test_pmullw_mm0_mm1() {
let mut emu = emu64();
let code = [0x0f, 0xd5, 0xc1, 0xf4]; emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_pmullw_mm2_mm3() {
let mut emu = emu64();
let code = [0x0f, 0xd5, 0xd3, 0xf4];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_pmullw_mm4_mm5() {
let mut emu = emu64();
let code = [0x0f, 0xd5, 0xe5, 0xf4];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_pmullw_mm6_mm7() {
let mut emu = emu64();
let code = [0x0f, 0xd5, 0xf7, 0xf4];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_pmullw_mm0_mem() {
let mut emu = emu64();
let code = [0x0f, 0xd5, 0x04, 0x25, 0x00, 0x30, 0x00, 0x00, 0xf4];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_pmullw_mm7_mem() {
let mut emu = emu64();
let code = [0x0f, 0xd5, 0x3c, 0x25, 0x00, 0x30, 0x00, 0x00, 0xf4];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_pmullw_xmm0_xmm1() {
let mut emu = emu64();
let code = [0x66, 0x0f, 0xd5, 0xc1, 0xf4]; emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_pmullw_xmm2_xmm3() {
let mut emu = emu64();
let code = [0x66, 0x0f, 0xd5, 0xd3, 0xf4];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_pmullw_xmm4_xmm5() {
let mut emu = emu64();
let code = [0x66, 0x0f, 0xd5, 0xe5, 0xf4];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_pmullw_xmm6_xmm7() {
let mut emu = emu64();
let code = [0x66, 0x0f, 0xd5, 0xf7, 0xf4];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_pmullw_xmm8_xmm9() {
let mut emu = emu64();
let code = [0x66, 0x45, 0x0f, 0xd5, 0xc1, 0xf4];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_pmullw_xmm14_xmm15() {
let mut emu = emu64();
let code = [0x66, 0x45, 0x0f, 0xd5, 0xf7, 0xf4];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_pmullw_xmm0_mem() {
let mut emu = emu64();
let code = [0x66, 0x0f, 0xd5, 0x04, 0x25, 0x00, 0x30, 0x00, 0x00, 0xf4];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_pmullw_xmm7_mem() {
let mut emu = emu64();
let code = [0x66, 0x0f, 0xd5, 0x3c, 0x25, 0x00, 0x30, 0x00, 0x00, 0xf4];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_pmullw_xmm15_mem() {
let mut emu = emu64();
let code = [0x66, 0x44, 0x0f, 0xd5, 0x3c, 0x25, 0x00, 0x30, 0x00, 0x00, 0xf4];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_pmullw_multiple_mmx() {
let mut emu = emu64();
let code = [
0x0f, 0xd5, 0xc1, 0x0f, 0xd5, 0xd3, 0x0f, 0xd5, 0xe5, 0xf4,
];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_pmullw_multiple_xmm() {
let mut emu = emu64();
let code = [
0x66, 0x0f, 0xd5, 0xc1, 0x66, 0x0f, 0xd5, 0xd3, 0x66, 0x0f, 0xd5, 0xe5, 0xf4,
];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_pmullw_chain() {
let mut emu = emu64();
let code = [
0x66, 0x0f, 0xd5, 0xc0, 0x66, 0x0f, 0xd5, 0xc0, 0x66, 0x0f, 0xd5, 0xc0, 0xf4,
];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_pmullw_all_xmm_pairs() {
let mut emu = emu64();
let code = [
0x66, 0x0f, 0xd5, 0xc1, 0x66, 0x0f, 0xd5, 0xda, 0x66, 0x0f, 0xd5, 0xe5, 0x66, 0x0f, 0xd5, 0xfe, 0x66, 0x45, 0x0f, 0xd5, 0xc1, 0x66, 0x45, 0x0f, 0xd5, 0xda, 0xf4,
];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_pmullw_self_multiply() {
let mut emu = emu64();
let code = [
0x66, 0x0f, 0xd5, 0xc0, 0x66, 0x0f, 0xd5, 0xc9, 0x66, 0x0f, 0xd5, 0xd2, 0xf4,
];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_pmullw_extended_regs() {
let mut emu = emu64();
let code = [
0x66, 0x45, 0x0f, 0xd5, 0xc8, 0x66, 0x45, 0x0f, 0xd5, 0xda, 0x66, 0x45, 0x0f, 0xd5, 0xec, 0x66, 0x45, 0x0f, 0xd5, 0xfe, 0xf4,
];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_pmullw_cross_registers() {
let mut emu = emu64();
let code = [
0x66, 0x0f, 0xd5, 0xc7, 0x66, 0x44, 0x0f, 0xd5, 0xc7, 0x66, 0x41, 0x0f, 0xd5, 0xc7, 0xf4,
];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_pmullw_mmx_all_regs() {
let mut emu = emu64();
let code = [
0x0f, 0xd5, 0xc1, 0x0f, 0xd5, 0xca, 0x0f, 0xd5, 0xd3, 0x0f, 0xd5, 0xdc, 0x0f, 0xd5, 0xe5, 0x0f, 0xd5, 0xee, 0x0f, 0xd5, 0xf7, 0xf4,
];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}