use crate::*;
const ALIGNED_ADDR: u64 = 0x3000;
#[test]
fn test_movntdqa_xmm0_mem() {
let mut emu = emu64();
let code = [
0x66, 0x0f, 0x38, 0x2a, 0x04, 0x25, 0x00, 0x30, 0x00, 0x00, 0xf4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_movntdqa_xmm1_mem() {
let mut emu = emu64();
let code = [
0x66, 0x0f, 0x38, 0x2a, 0x0c, 0x25, 0x00, 0x30, 0x00, 0x00, 0xf4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_movntdqa_xmm2_mem() {
let mut emu = emu64();
let code = [
0x66, 0x0f, 0x38, 0x2a, 0x14, 0x25, 0x00, 0x30, 0x00, 0x00, 0xf4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_movntdqa_xmm3_mem() {
let mut emu = emu64();
let code = [
0x66, 0x0f, 0x38, 0x2a, 0x1c, 0x25, 0x00, 0x30, 0x00, 0x00, 0xf4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_movntdqa_xmm4_mem() {
let mut emu = emu64();
let code = [
0x66, 0x0f, 0x38, 0x2a, 0x24, 0x25, 0x00, 0x30, 0x00, 0x00, 0xf4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_movntdqa_xmm5_mem() {
let mut emu = emu64();
let code = [
0x66, 0x0f, 0x38, 0x2a, 0x2c, 0x25, 0x00, 0x30, 0x00, 0x00, 0xf4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_movntdqa_xmm6_mem() {
let mut emu = emu64();
let code = [
0x66, 0x0f, 0x38, 0x2a, 0x34, 0x25, 0x00, 0x30, 0x00, 0x00, 0xf4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_movntdqa_xmm7_mem() {
let mut emu = emu64();
let code = [
0x66, 0x0f, 0x38, 0x2a, 0x3c, 0x25, 0x00, 0x30, 0x00, 0x00, 0xf4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_movntdqa_xmm8_mem() {
let mut emu = emu64();
let code = [
0x66, 0x44, 0x0f, 0x38, 0x2a, 0x04, 0x25, 0x00, 0x30, 0x00, 0x00, 0xf4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_movntdqa_xmm9_mem() {
let mut emu = emu64();
let code = [
0x66, 0x44, 0x0f, 0x38, 0x2a, 0x0c, 0x25, 0x00, 0x30, 0x00, 0x00, 0xf4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_movntdqa_xmm10_mem() {
let mut emu = emu64();
let code = [
0x66, 0x44, 0x0f, 0x38, 0x2a, 0x14, 0x25, 0x00, 0x30, 0x00, 0x00, 0xf4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_movntdqa_xmm11_mem() {
let mut emu = emu64();
let code = [
0x66, 0x44, 0x0f, 0x38, 0x2a, 0x1c, 0x25, 0x00, 0x30, 0x00, 0x00, 0xf4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_movntdqa_xmm12_mem() {
let mut emu = emu64();
let code = [
0x66, 0x44, 0x0f, 0x38, 0x2a, 0x24, 0x25, 0x00, 0x30, 0x00, 0x00, 0xf4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_movntdqa_xmm13_mem() {
let mut emu = emu64();
let code = [
0x66, 0x44, 0x0f, 0x38, 0x2a, 0x2c, 0x25, 0x00, 0x30, 0x00, 0x00, 0xf4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_movntdqa_xmm14_mem() {
let mut emu = emu64();
let code = [
0x66, 0x44, 0x0f, 0x38, 0x2a, 0x34, 0x25, 0x00, 0x30, 0x00, 0x00, 0xf4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_movntdqa_xmm15_mem() {
let mut emu = emu64();
let code = [
0x66, 0x44, 0x0f, 0x38, 0x2a, 0x3c, 0x25, 0x00, 0x30, 0x00, 0x00, 0xf4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_movntdqa_aligned_0x3000() {
let mut emu = emu64();
let code = [
0x66, 0x0f, 0x38, 0x2a, 0x04, 0x25, 0x00, 0x30, 0x00, 0x00, 0xf4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_movntdqa_aligned_0x3010() {
let mut emu = emu64();
let code = [
0x66, 0x0f, 0x38, 0x2a, 0x04, 0x25, 0x10, 0x30, 0x00, 0x00, 0xf4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_movntdqa_aligned_0x3020() {
let mut emu = emu64();
let code = [
0x66, 0x0f, 0x38, 0x2a, 0x04, 0x25, 0x20, 0x30, 0x00, 0x00, 0xf4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_movntdqa_aligned_0x3040() {
let mut emu = emu64();
let code = [
0x66, 0x0f, 0x38, 0x2a, 0x04, 0x25, 0x40, 0x30, 0x00, 0x00, 0xf4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_movntdqa_sequential_loads() {
let mut emu = emu64();
let code = [
0x66, 0x0f, 0x38, 0x2a, 0x04, 0x25, 0x00, 0x30, 0x00, 0x00, 0x66, 0x0f, 0x38, 0x2a, 0x0c, 0x25, 0x10, 0x30, 0x00, 0x00, 0x66, 0x0f, 0x38, 0x2a, 0x14, 0x25, 0x20, 0x30, 0x00, 0x00, 0xf4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_movntdqa_streaming_pattern() {
let mut emu = emu64();
let code = [
0x66, 0x0f, 0x38, 0x2a, 0x04, 0x25, 0x00, 0x30, 0x00, 0x00, 0x66, 0x0f, 0x38, 0x2a, 0x0c, 0x25, 0x10, 0x30, 0x00, 0x00, 0x66, 0x0f, 0x38, 0x2a, 0x14, 0x25, 0x20, 0x30, 0x00, 0x00, 0x66, 0x0f, 0x38, 0x2a, 0x1c, 0x25, 0x30, 0x30, 0x00, 0x00, 0xf4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_movntdqa_multiple_same_addr() {
let mut emu = emu64();
let code = [
0x66, 0x0f, 0x38, 0x2a, 0x04, 0x25, 0x00, 0x30, 0x00, 0x00, 0x66, 0x0f, 0x38, 0x2a, 0x0c, 0x25, 0x00, 0x30, 0x00, 0x00, 0x66, 0x0f, 0x38, 0x2a, 0x14, 0x25, 0x00, 0x30, 0x00, 0x00, 0xf4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_movntdqa_high_registers() {
let mut emu = emu64();
let code = [
0x66, 0x44, 0x0f, 0x38, 0x2a, 0x04, 0x25, 0x00, 0x30, 0x00, 0x00, 0x66, 0x44, 0x0f, 0x38, 0x2a, 0x14, 0x25, 0x10, 0x30, 0x00, 0x00, 0x66, 0x44, 0x0f, 0x38, 0x2a, 0x3c, 0x25, 0x20, 0x30, 0x00, 0x00, 0xf4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_movntdqa_all_registers() {
let mut emu = emu64();
let code = [
0x66, 0x0f, 0x38, 0x2a, 0x04, 0x25, 0x00, 0x30, 0x00, 0x00, 0x66, 0x0f, 0x38, 0x2a, 0x0c, 0x25, 0x00, 0x30, 0x00, 0x00, 0x66, 0x0f, 0x38, 0x2a, 0x14, 0x25, 0x00, 0x30, 0x00, 0x00, 0x66, 0x0f, 0x38, 0x2a, 0x1c, 0x25, 0x00, 0x30, 0x00, 0x00, 0xf4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_movntdqa_cache_line_streaming() {
let mut emu = emu64();
let code = [
0x66, 0x0f, 0x38, 0x2a, 0x04, 0x25, 0x00, 0x30, 0x00, 0x00, 0x66, 0x0f, 0x38, 0x2a, 0x0c, 0x25, 0x40, 0x30, 0x00, 0x00, 0x66, 0x0f, 0x38, 0x2a, 0x14, 0x25, 0x80, 0x30, 0x00, 0x00, 0xf4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}