aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/long_mode/mod.rs24
-rw-r--r--test/long_mode/regspec.rs4
-rw-r--r--test/protected_mode/regspec.rs4
3 files changed, 21 insertions, 11 deletions
diff --git a/test/long_mode/mod.rs b/test/long_mode/mod.rs
index 917d16a..9493a63 100644
--- a/test/long_mode/mod.rs
+++ b/test/long_mode/mod.rs
@@ -3449,13 +3449,23 @@ fn test_sse4a() {
#[test]
fn test_3dnow() {
- test_display(&[0x0f, 0x0f, 0xe0, 0x8a], "pfnacc mm4, mm0");
- test_display(&[0x0f, 0x0f, 0x38, 0x8e], "pfpnacc mm7, qword [rax]");
- test_display(&[0x65, 0x67, 0x65, 0x65, 0x0f, 0x0e], "femms");
- test_display(&[0x3e, 0xf3, 0x2e, 0xf2, 0x0f, 0x0f, 0x64, 0x93, 0x93, 0xa4], "pfmax mm4, qword [rbx + rdx * 4 - 0x6d]");
- test_display(&[0x26, 0x36, 0x0f, 0x0f, 0x70, 0xfb, 0x0c], "pi2fw mm6, qword [rax - 0x5]");
- test_display(&[0x66, 0x0f, 0x0f, 0xc6, 0xb7], "pmulhrw mm0, mm6");
- test_display(&[0x0f, 0x0f, 0xc6, 0xb7], "pmulhrw mm0, mm6");
+ fn test_instr(bytes: &[u8], text: &'static str) {
+ test_display_under(&InstDecoder::minimal().with_3dnow(), bytes, text);
+ test_display_under(&InstDecoder::default(), bytes, text);
+ test_invalid_under(&InstDecoder::minimal(), bytes);
+ test_invalid_under(&InstDecoder::minimal(), bytes);
+ test_invalid_under(&yaxpeax_x86::long_mode::uarch::amd::k8(), bytes);
+ test_invalid_under(&yaxpeax_x86::long_mode::uarch::intel::netburst(), bytes);
+ }
+
+ test_instr(&[0x0f, 0x0f, 0xe0, 0x8a], "pfnacc mm4, mm0");
+ test_instr(&[0x0f, 0x0f, 0x38, 0x8e], "pfpnacc mm7, qword [rax]");
+ test_instr(&[0x65, 0x67, 0x65, 0x65, 0x0f, 0x0e], "femms");
+ test_instr(&[0x3e, 0xf3, 0x2e, 0xf2, 0x0f, 0x0f, 0x64, 0x93, 0x93, 0xa4], "pfmax mm4, qword [rbx + rdx * 4 - 0x6d]");
+ test_instr(&[0x26, 0x36, 0x0f, 0x0f, 0x70, 0xfb, 0x0c], "pi2fw mm6, qword [rax - 0x5]");
+ test_instr(&[0x66, 0x0f, 0x0f, 0xc6, 0xb7], "pmulhrw mm0, mm6");
+ test_instr(&[0x0f, 0x0f, 0xc6, 0xb7], "pmulhrw mm0, mm6");
+ test_instr(&[0x0f, 0x0e], "femms");
}
// first appeared in tremont
diff --git a/test/long_mode/regspec.rs b/test/long_mode/regspec.rs
index 220435f..81416ff 100644
--- a/test/long_mode/regspec.rs
+++ b/test/long_mode/regspec.rs
@@ -11,7 +11,7 @@ fn test_hash() {
let _: HashMap<RegSpec, u64> = HashMap::new();
}
-#[cfg(features="fmt")]
+#[cfg(feature="fmt")]
#[test]
fn test_labels() {
assert_eq!(RegSpec::rip().name(), "rip");
@@ -22,7 +22,7 @@ fn test_labels() {
assert_eq!(RegSpec::al().name(), "al");
}
-#[cfg(features="fmt")]
+#[cfg(feature="fmt")]
#[test]
fn test_bank_names() {
assert_eq!(RegSpec::al().class().name(), "byte");
diff --git a/test/protected_mode/regspec.rs b/test/protected_mode/regspec.rs
index aeca086..8f32142 100644
--- a/test/protected_mode/regspec.rs
+++ b/test/protected_mode/regspec.rs
@@ -11,7 +11,7 @@ fn test_hash() {
let _: HashMap<RegSpec, u64> = HashMap::new();
}
-#[cfg(features="fmt")]
+#[cfg(feature="fmt")]
#[test]
fn test_labels() {
assert_eq!(RegSpec::eip().name(), "eip");
@@ -20,7 +20,7 @@ fn test_labels() {
assert_eq!(RegSpec::al().name(), "al");
}
-#[cfg(features="fmt")]
+#[cfg(feature="fmt")]
#[test]
fn test_bank_names() {
assert_eq!(RegSpec::al().class().name(), "byte");