arch-power: Add fixed-point logical parity instructions
authorSandipan Das <sandipan@linux.vnet.ibm.com>
Thu, 7 Jun 2018 10:46:01 +0000 (16:16 +0530)
committerSandipan Das <sandipan@linux.vnet.ibm.com>
Thu, 7 Jun 2018 11:08:46 +0000 (16:38 +0530)
This adds the following logical instructions:
  * Parity Word (prtyw)
  * Parity Doubleword (prtyd)

Change-Id: Icb1737435dfabf9ac7b14ce1fcdf1c232289bf24
Signed-off-by: Sandipan Das <sandipan@linux.vnet.ibm.com>
src/arch/power/isa/decoder.isa

index b2ad11a2323c294b2963e7859bba70759761ba57..f66bb71876ce7c476be285dfe0de50dc88ca623a 100644 (file)
@@ -559,6 +559,23 @@ decode PO default Unknown::unknown() {
 
             506: popcntd({{ Ra = popCount(Rs); }});
 
+            154: prtyw({{
+                uint64_t res = Rs;
+                res = res ^ (res >> 16);
+                res = res ^ (res >> 8);
+                res = res & 0x100000001;
+                Ra = res;
+            }});
+
+            186: prtyd({{
+                uint64_t res = Rs;
+                res = res ^ (res >> 32);
+                res = res ^ (res >> 16);
+                res = res ^ (res >> 8);
+                res = res & 0x1;
+                Ra = res;
+            }});
+
             24: slw({{
                 if (Rb & 0x20) {
                     Ra = 0;