Add clz opcode.
authorMichael Eager <eager@eagercon.com>
Wed, 14 Nov 2012 16:45:01 +0000 (16:45 +0000)
committerMichael Eager <eager@eagercon.com>
Wed, 14 Nov 2012 16:45:01 +0000 (16:45 +0000)
opcodes/
* microblaze-opc.h: Increase MAX_OPCODES (op_code_struct):  add clz insn
* microblaze-opcm.h (microblaze_instr): add clz

gas/testsuite/
* gas/microblaze/allinsn.s: Add clz insn
* gas/microblaze/allinsn.d: Likewise

gas/testsuite/ChangeLog
gas/testsuite/gas/microblaze/allinsn.d
gas/testsuite/gas/microblaze/allinsn.s
opcodes/ChangeLog
opcodes/microblaze-opc.h
opcodes/microblaze-opcm.h

index 9387158..c2a66c8 100644 (file)
@@ -1,3 +1,8 @@
+2012-11-08  David Holsgrove  <david.holsgrove@xilinx.com>
+
+       * gas/microblaze/allinsn.s: Add clz insn
+       * gas/microblaze/allinsn.d: Likewise
+
 2012-11-14  David Holsgrove  <david.holsgrove@xilinx.com>
 
        * gas/microblaze/allinsn.exp: New file - test newly added opcodes
index 79064ba..c7854f1 100644 (file)
@@ -22,3 +22,6 @@ Disassembly of section .text:
 
 00000014 <swr>:
   14:  d8000200        swr     r0, r0, r0
+
+00000018 <clz>:
+  18:  900000e0        clz     r0, r0
index 8bb3ef5..0e4271d 100644 (file)
@@ -24,4 +24,8 @@ shr:
     .global swr
 swr:
     swr r0,r0,r0
+    .text
+    .global clz
+clz:
+    clz r0,r0
 
index 69248f8..2efcdd2 100644 (file)
@@ -1,5 +1,10 @@
 2012-11-14  Edgar E. Iglesias <edgar.iglesias@gmail.com>
 
+       * microblaze-opc.h: Increase MAX_OPCODES (op_code_struct):  add clz insn
+       * microblaze-opcm.h (microblaze_instr): add clz
+
+2012-11-14  Edgar E. Iglesias <edgar.iglesias@gmail.com>
+
        * microblaze-opc.h: Increase MAX_OPCODES (op_code_struct):  add lbur, 
        lhur, lwr, sbr, shr, swr
        * microblaze-opcm.h (microblaze_instr): add lbur, lhur, lwr, sbr, shr,
index 44c9d38..132b951 100644 (file)
@@ -96,7 +96,7 @@
 #define DELAY_SLOT 1
 #define NO_DELAY_SLOT 0
 
-#define MAX_OPCODES 284
+#define MAX_OPCODES 285
 
 struct op_code_struct
 {
@@ -394,6 +394,7 @@ struct op_code_struct
   {"tneaputd",  INST_TYPE_R2,    INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x4C0006E0, OPCODE_MASK_H34C, tneaputd,  anyware_inst },
   {"necaputd",  INST_TYPE_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x4C000760, OPCODE_MASK_H34C, necaputd,  anyware_inst },
   {"tnecaputd", INST_TYPE_R2,    INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x4C0007E0, OPCODE_MASK_H34C, tnecaputd, anyware_inst },
+  {"clz",       INST_TYPE_RD_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x900000E0, OPCODE_MASK_H34,  clz,       special_inst },
   {"", 0, 0, 0, 0, 0, 0, 0, 0},
 };
 
index a3bec49..58e6fd4 100644 (file)
@@ -25,7 +25,7 @@
 
 enum microblaze_instr
 {
-  add, rsub, addc, rsubc, addk, rsubk, addkc, rsubkc, cmp, cmpu,
+  add, rsub, addc, rsubc, addk, rsubk, addkc, rsubkc, clz, cmp, cmpu,
   addi, rsubi, addic, rsubic, addik, rsubik, addikc, rsubikc, mul, 
   mulh, mulhu, mulhsu,
   idiv, idivu, bsll, bsra, bsrl, get, put, nget, nput, cget, cput,