From 8a2dd6bcf37a3ebb43e2153a306cf0250637c116 Mon Sep 17 00:00:00 2001 From: iximeow Date: Mon, 9 Mar 2026 16:36:00 +0000 Subject: pushf, popf, enter, leave, xlat all have implicit memory access also add "is_masked" to operand spec --- test/long_mode/operand.rs | 8 ++++++++ test/protected_mode/operand.rs | 8 ++++++++ test/real_mode/operand.rs | 8 ++++++++ 3 files changed, 24 insertions(+) (limited to 'test') diff --git a/test/long_mode/operand.rs b/test/long_mode/operand.rs index b94d39f..10c4deb 100644 --- a/test/long_mode/operand.rs +++ b/test/long_mode/operand.rs @@ -53,4 +53,12 @@ fn test_implied_memory_width() { // operand-size prefixed call and jump still reads 8 bytes (prefix ignored) assert_eq!(mem_size_of(&[0x66, 0xff, 0x10]), Some(8)); assert_eq!(mem_size_of(&[0x66, 0xff, 0x20]), Some(8)); + // pushf + assert_eq!(mem_size_of(&[0x9c]), Some(8)); + // popf + assert_eq!(mem_size_of(&[0x9d]), Some(8)); + // leave + assert_eq!(mem_size_of(&[0xc9]), Some(8)); + // xlat + assert_eq!(mem_size_of(&[0xd7]), Some(1)); } diff --git a/test/protected_mode/operand.rs b/test/protected_mode/operand.rs index 78a34b4..fe9b54a 100644 --- a/test/protected_mode/operand.rs +++ b/test/protected_mode/operand.rs @@ -47,4 +47,12 @@ fn test_implied_memory_width() { // two bytes. assert_eq!(mem_size_of(&[0x66, 0xff, 0x10]), Some(2)); assert_eq!(mem_size_of(&[0x66, 0xff, 0x20]), Some(2)); + // pushf + assert_eq!(mem_size_of(&[0x9c]), Some(4)); + // popf + assert_eq!(mem_size_of(&[0x9d]), Some(4)); + // leave + assert_eq!(mem_size_of(&[0xc9]), Some(4)); + // xlat + assert_eq!(mem_size_of(&[0xd7]), Some(1)); } diff --git a/test/real_mode/operand.rs b/test/real_mode/operand.rs index 7f2b72e..e0f59e1 100644 --- a/test/real_mode/operand.rs +++ b/test/real_mode/operand.rs @@ -20,4 +20,12 @@ fn test_implied_memory_width() { // four bytes. assert_eq!(mem_size_of(&[0x66, 0xff, 0x10]), Some(4)); assert_eq!(mem_size_of(&[0x66, 0xff, 0x20]), Some(4)); + // pushf + assert_eq!(mem_size_of(&[0x9c]), Some(2)); + // popf + assert_eq!(mem_size_of(&[0x9d]), Some(2)); + // leave + assert_eq!(mem_size_of(&[0xc9]), Some(2)); + // xlat + assert_eq!(mem_size_of(&[0xd7]), Some(1)); } -- cgit v1.1