1
0
Эх сурвалжийг харах

Move bit utilities out of the pal specs files

Fabio Battaglia 5 жил өмнө
parent
commit
ca334340d4

+ 0 - 14
src/main/java/info/hkzlab/dupal/analyzer/devices/PALSpecs.java

@@ -24,18 +24,4 @@ public interface PALSpecs {
     public boolean isActiveLow();
     public boolean isActiveLow();
 
 
     public int minimumBoardRev();
     public int minimumBoardRev();
-
-    static public int consolidateField(int field, int mask) {
-        int data = 0;
-        int shift = 0;
-
-        for(int idx = 0; idx < 32; idx++) {
-            if(((mask >> idx) & 0x01) != 0) {
-                data |= (field >> (idx-shift)) & (1 << shift);
-                shift++;
-            }
-        }
-
-        return data;
-    }
 }
 }

+ 33 - 0
src/main/java/info/hkzlab/dupal/analyzer/utilities/BitUtils.java

@@ -0,0 +1,33 @@
+package info.hkzlab.dupal.analyzer.utilities;
+
+public class BitUtils {
+    private BitUtils() {};
+    
+    static public int consolidateBitField(int field, int mask) {
+        int data = 0;
+        int shift = 0;
+
+        for(int idx = 0; idx < 32; idx++) {
+            if(((mask >> idx) & 0x01) != 0) {
+                data |= (field >> (idx-shift)) & (1 << shift);
+                shift++;
+            }
+        }
+
+        return data;
+    }
+    
+    static public int scatterBitField(int field, int mask) {
+        int bit_idx = 0;
+        int data = 0;
+
+        for(int idx = 0; idx < 32; idx++) {
+            if(((mask >> idx) & 0x01) != 0) {
+                data |= ((field >> bit_idx) & 0x01) << idx;
+                bit_idx++;
+            }
+        }
+
+        return data;
+    }
+}