aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authoriximeow <me@iximeow.net>2026-06-10 06:27:44 +0000
committeriximeow <me@iximeow.net>2026-07-05 00:09:22 +0000
commitb4ac152946d3a1dd0f4e0d48b8b73f2152a1e2e0 (patch)
tree4d5eaa7023c39da54c32fcb38e1c45cbb5dd326b /test
parent6e2976bda74148e0c3cd50788b603c4933f9f50b (diff)
fix some forms of lss/lfs/lgs having incorrectly-small memory sizes
Diffstat (limited to 'test')
-rw-r--r--test/long_mode/mod.rs10
-rw-r--r--test/protected_mode/mod.rs9
2 files changed, 17 insertions, 2 deletions
diff --git a/test/long_mode/mod.rs b/test/long_mode/mod.rs
index fb38840..de113d3 100644
--- a/test/long_mode/mod.rs
+++ b/test/long_mode/mod.rs
@@ -1893,11 +1893,21 @@ mod system {
use crate::long_mode::{TestCase, run_test};
const CASES: &'static [TestCase] = &[
+ testcase!(&[0x0f, 0xb2, 0x00], "lss eax, far [rax]"),
+ testcase!(&[0x0f, 0xb4, 0x00], "lfs eax, far [rax]"),
+ testcase!(&[0x0f, 0xb5, 0x00], "lgs eax, far [rax]"),
+ testcase!(&[0x48, 0x0f, 0xb2, 0x00], "lss rax, mword [rax]"),
+ testcase!(&[0x48, 0x0f, 0xb4, 0x00], "lfs rax, mword [rax]"),
+ testcase!(&[0x48, 0x0f, 0xb5, 0x00], "lgs rax, mword [rax]"),
testcase!(&[0x66, 0x4f, 0x0f, 0xb2, 0x00], "lss r8, mword [r8]"),
testcase!(&[0x67, 0x4f, 0x0f, 0xb2, 0x00], "lss r8, mword [r8d]"),
testcase!(&[0x4f, 0x0f, 0xb2, 0x00], "lss r8, mword [r8]"),
+ testcase!(&[0x4f, 0x0f, 0xb4, 0x00], "lfs r8, mword [r8]"),
+ testcase!(&[0x4f, 0x0f, 0xb5, 0x00], "lgs r8, mword [r8]"),
testcase!(&[0x0f, 0xb2, 0x00], "lss eax, far [rax]"),
testcase!(&[0x66, 0x0f, 0xb2, 0x00], "lss ax, dword [rax]"),
+ testcase!(&[0x66, 0x0f, 0xb4, 0x00], "lfs ax, dword [rax]"),
+ testcase!(&[0x66, 0x0f, 0xb5, 0x00], "lgs ax, dword [rax]"),
testcase!(invalid: &[0x45, 0x0f, 0x22, 0xc8]),
testcase!(invalid: &[0x45, 0x0f, 0x20, 0xc8]),
testcase!(&[0x40, 0x0f, 0x22, 0xd0], "mov cr2, rax"),
diff --git a/test/protected_mode/mod.rs b/test/protected_mode/mod.rs
index 7fb3b77..2b1cc70 100644
--- a/test/protected_mode/mod.rs
+++ b/test/protected_mode/mod.rs
@@ -1829,12 +1829,17 @@ mod system {
use crate::protected_mode::{TestCase, run_test};
const CASES: &'static [TestCase] = &[
+ testcase!(&[0x0f, 0xb2, 0x00], "lss eax, far [eax]"),
+ testcase!(&[0x0f, 0xb4, 0x00], "lfs eax, far [eax]"),
+ testcase!(&[0x0f, 0xb5, 0x00], "lgs eax, far [eax]"),
testcase!(&[0x63, 0xc1], "arpl cx, ax"),
testcase!(&[0x63, 0x04, 0xba], "arpl word [edx + edi * 4], ax"),
- testcase!(&[0x66, 0x0f, 0xb2, 0x00], "lss ax, word [eax]"),
+ testcase!(&[0x66, 0x0f, 0xb2, 0x00], "lss ax, dword [eax]"),
+ testcase!(&[0x66, 0x0f, 0xb4, 0x00], "lfs ax, dword [eax]"),
+ testcase!(&[0x66, 0x0f, 0xb5, 0x00], "lgs ax, dword [eax]"),
testcase!(&[0x67, 0x0f, 0xb2, 0x00], "lss eax, far [bx + si * 1]"),
testcase!(&[0x0f, 0xb2, 0x00], "lss eax, far [eax]"),
- testcase!(&[0x66, 0x0f, 0xb2, 0x00], "lss ax, word [eax]"),
+ testcase!(&[0x66, 0x0f, 0xb2, 0x00], "lss ax, dword [eax]"),
testcase!(invalid: &[0x0f, 0x22, 0xc8]),
testcase!(invalid: &[0x0f, 0x20, 0xc8]),
testcase!(&[0x0f, 0x22, 0xd0], "mov cr2, eax"),