diff decoder.c @ 14:ebf344d11bde src

Some improvements to decoder.c Registers should be updated correctly now, but still needs checking.
author jcdutton
date Wed, 10 Apr 2002 13:09:40 +0000
parents de00f8362634
children 74aee0b81da0
line wrap: on
line diff
--- a/decoder.c	Wed Apr 10 00:24:55 2002 +0000
+++ b/decoder.c	Wed Apr 10 13:09:40 2002 +0000
@@ -48,6 +48,7 @@
   uint64_t result = 0;
   uint64_t bit_mask=0xffffffffffffffff;  /* I could put -1 instead */
   uint64_t examining = 0;
+  int32_t  bits;
   if (count == 0) return 0;
 
   if ( ((count+start) > 64) ||
@@ -59,9 +60,10 @@
     assert(0);
   }
   bit_mask >>= start;
-  examining = ((bit_mask >> (64-count-start)) << (64-count-start) );
+  bits = 64-count-start;
+  examining = ((bit_mask >> bits) << bits );
   command->examined |= examining;
-  result = (command->instruction & bit_mask) >> (64-count-start);
+  result = (command->instruction & bit_mask) >> bits;
   return (uint32_t) result;
 }