From a38cba0c4a4ed9a1ed763618e5efe3f4487b1ad0 Mon Sep 17 00:00:00 2001 From: iximeow Date: Fri, 5 Jun 2026 08:27:55 +0000 Subject: rename rne-sae to rn-sae --- src/lib.rs | 4 ++-- src/long_mode/mod.rs | 7 +++++-- src/protected_mode/mod.rs | 7 +++++-- src/real_mode/mod.rs | 7 +++++-- src/shared/evex.in | 2 +- 5 files changed, 18 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/lib.rs b/src/lib.rs index 6850234..09b7ed8 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -165,7 +165,7 @@ pub use real_mode::Arch as x86_16; // the pseudo-C syntax's max length would be something like: // ``` // xacquire xrelease lock { repnz qword if /* signed */ greater_or_equal(rflags) then jmp gs:[xmm31 + -// xmm31 * 8 + 0x12345678]{k7}{z}{rne-sae} } +// xmm31 * 8 + 0x12345678]{k7}{z}{rn-sae} } // ``` // (which is nonsensical) or for an unknown opcode, // ``` @@ -173,7 +173,7 @@ pub use real_mode::Arch as x86_16; // ``` // where `opN` is an operand. the longest operand, same as above, would be something like // ``` -// gs:[xmm31 + xmm31 * 8 + 0x12345678]{k7}{z}{rne-sae} +// gs:[xmm31 + xmm31 * 8 + 0x12345678]{k7}{z}{rn-sae} // ``` // for a length like 262 bytes of operand, 55 bytes of prefixes and syntax, and another up-to-20 // bytes of opcode. diff --git a/src/long_mode/mod.rs b/src/long_mode/mod.rs index b7daa4a..3ba76a0 100644 --- a/src/long_mode/mod.rs +++ b/src/long_mode/mod.rs @@ -507,14 +507,17 @@ impl SaeMode { /// ``` /// use yaxpeax_x86::long_mode::SaeMode; /// - /// assert_eq!(SaeMode::RoundNearest.label(), "{rne-sae}"); + /// assert_eq!(SaeMode::RoundNearest.label(), "{rn-sae}"); /// assert_eq!(SaeMode::RoundDown.label(), "{rd-sae}"); /// assert_eq!(SaeMode::RoundUp.label(), "{ru-sae}"); /// assert_eq!(SaeMode::RoundZero.label(), "{rz-sae}"); /// ``` pub const fn label(&self) -> &'static str { match self { - SaeMode::RoundNearest => "{rne-sae}", + // in the KNL era some resources called this "rne-sae" (https://imsc.uni-graz.at/haasegu/Projects/FSP/HPC/ws_15/Intel_Open_Source_Software_Development.pdf) + // it seems xed retained this `rne-sae` form. zydis calls this "rn-sae". + // masm, nasm, gas, and everyone else wants "rn-sae". so, we'll call it "rn-sae" too. + SaeMode::RoundNearest => "{rn-sae}", SaeMode::RoundDown => "{rd-sae}", SaeMode::RoundUp => "{ru-sae}", SaeMode::RoundZero => "{rz-sae}", diff --git a/src/protected_mode/mod.rs b/src/protected_mode/mod.rs index 64c1c8d..f419197 100644 --- a/src/protected_mode/mod.rs +++ b/src/protected_mode/mod.rs @@ -443,14 +443,17 @@ impl SaeMode { /// ``` /// use yaxpeax_x86::protected_mode::SaeMode; /// - /// assert_eq!(SaeMode::RoundNearest.label(), "{rne-sae}"); + /// assert_eq!(SaeMode::RoundNearest.label(), "{rn-sae}"); /// assert_eq!(SaeMode::RoundDown.label(), "{rd-sae}"); /// assert_eq!(SaeMode::RoundUp.label(), "{ru-sae}"); /// assert_eq!(SaeMode::RoundZero.label(), "{rz-sae}"); /// ``` pub const fn label(&self) -> &'static str { match self { - SaeMode::RoundNearest => "{rne-sae}", + // in the KNL era some resources called this "rne-sae" (https://imsc.uni-graz.at/haasegu/Projects/FSP/HPC/ws_15/Intel_Open_Source_Software_Development.pdf) + // it seems xed retained this `rne-sae` form. zydis calls this "rn-sae". + // masm, nasm, gas, and everyone else wants "rn-sae". so, we'll call it "rn-sae" too. + SaeMode::RoundNearest => "{rn-sae}", SaeMode::RoundDown => "{rd-sae}", SaeMode::RoundUp => "{ru-sae}", SaeMode::RoundZero => "{rz-sae}", diff --git a/src/real_mode/mod.rs b/src/real_mode/mod.rs index 3a7cbd3..716148c 100644 --- a/src/real_mode/mod.rs +++ b/src/real_mode/mod.rs @@ -443,14 +443,17 @@ impl SaeMode { /// ``` /// use yaxpeax_x86::real_mode::SaeMode; /// - /// assert_eq!(SaeMode::RoundNearest.label(), "{rne-sae}"); + /// assert_eq!(SaeMode::RoundNearest.label(), "{rn-sae}"); /// assert_eq!(SaeMode::RoundDown.label(), "{rd-sae}"); /// assert_eq!(SaeMode::RoundUp.label(), "{ru-sae}"); /// assert_eq!(SaeMode::RoundZero.label(), "{rz-sae}"); /// ``` pub const fn label(&self) -> &'static str { match self { - SaeMode::RoundNearest => "{rne-sae}", + // in the KNL era some resources called this "rne-sae" (https://imsc.uni-graz.at/haasegu/Projects/FSP/HPC/ws_15/Intel_Open_Source_Software_Development.pdf) + // it seems xed retained this `rne-sae` form. zydis calls this "rn-sae". + // masm, nasm, gas, and everyone else wants "rn-sae". so, we'll call it "rn-sae" too. + SaeMode::RoundNearest => "{rn-sae}", SaeMode::RoundDown => "{rd-sae}", SaeMode::RoundUp => "{ru-sae}", SaeMode::RoundZero => "{rz-sae}", diff --git a/src/shared/evex.in b/src/shared/evex.in index 07c82e5..e681fad 100644 --- a/src/shared/evex.in +++ b/src/shared/evex.in @@ -149,7 +149,7 @@ pub(crate) fn read_evex< evex_start + 21, evex_start + 22, InnerDescription::Misc(match lpl { - 0b00 => "evex.l'l is `0b00` (vector size 128 or rne-sae)", + 0b00 => "evex.l'l is `0b00` (vector size 128 or rn-sae)", 0b01 => "evex.l'l is `0b01` (vector size 256 or rd-sae)", 0b10 => "evex.l'l is `0b10` (vector size 512 or ru-sae)", _ => "evex.l'l is `0b11` (vector size 512 + rz-sae)", -- cgit v1.1