working on instruction models
[power-instruction-analyzer.git] / src / instr_models.rs
index 092f359f1798594c47e9bfebad8d825ae49764f9..0890f45f52e98fb8710c3f563fda0b5feed136d2 100644 (file)
@@ -124,8 +124,8 @@ pub fn divweo(inputs: TestDivInput) -> TestDivResult {
 }
 
 pub fn divweuo(inputs: TestDivInput) -> TestDivResult {
-    let dividend = u64::from(inputs.dividend) << 32;
-    let divisor = u64::from(inputs.divisor);
+    let dividend = u64::from(inputs.dividend as u32) << 32;
+    let divisor = u64::from(inputs.divisor as u32);
     let overflow;
     let result;
     if divisor == 0 {
@@ -228,7 +228,7 @@ pub fn modsw(inputs: TestDivInput) -> TestDivResult {
     if divisor == 0 || (divisor == -1 && dividend == i32::min_value()) {
         result = 0;
     } else {
-        result = (dividend % divisor) as u32 as u64;
+        result = (dividend % divisor) as u64;
     }
     TestDivResult {
         result,