summaryrefslogtreecommitdiff
path: root/src/decode.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/decode.rs')
-rw-r--r--src/decode.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/decode.rs b/src/decode.rs
index 4258a6f..d2e8a80 100644
--- a/src/decode.rs
+++ b/src/decode.rs
@@ -57,7 +57,9 @@ impl Instruction {
#[inline]
pub fn imm_s(self) -> DWord {
- (self.0 as i32 as i64 >> (25 - 5) & (0x7f << 5)) as DWord | (self.0 >> 7 & 0b11111) as DWord
+ let imm_11_5 = (self.0 as i32 as i64 >> 25 << 5) as DWord;
+ let imm_4_0 = (self.0 >> 7 & 0x1f) as DWord;
+ imm_11_5 | imm_4_0
}
#[inline]