Bladeren bron

Read bits only once.

David Craven 7 jaren geleden
bovenliggende
commit
bb41b209a6
1 gewijzigde bestanden met toevoegingen van 3 en 2 verwijderingen
  1. 3 2
      src/csr.rs

+ 3 - 2
src/csr.rs

@@ -283,8 +283,9 @@ impl mcause::R {
     #[inline(always)]
     /// Trap Cause
     pub fn cause(&self) -> Trap {
-        let code = self.bits() & !(1 << 31);
-        match self.bits() & (1 << 31) == 1 << 31 {
+        let bits = self.bits();
+        let code = bits & !(1 << 31);
+        match bits & (1 << 31) == 1 << 31 {
             true => Trap::Interrupt(Interrupt::from(code)),
             false => Trap::Exception(Exception::from(code)),
         }