From ed8ec0ec784e7e2fd114f4a14e2751add8942c9c Mon Sep 17 00:00:00 2001 From: Michael Eager Date: Wed, 14 Nov 2012 16:45:01 +0000 Subject: [PATCH] Add clz opcode. 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 | 5 +++++ gas/testsuite/gas/microblaze/allinsn.d | 3 +++ gas/testsuite/gas/microblaze/allinsn.s | 4 ++++ opcodes/ChangeLog | 5 +++++ opcodes/microblaze-opc.h | 3 ++- opcodes/microblaze-opcm.h | 2 +- 6 files changed, 20 insertions(+), 2 deletions(-) diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 9387158d43..c2a66c8f41 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2012-11-08 David Holsgrove + + * gas/microblaze/allinsn.s: Add clz insn + * gas/microblaze/allinsn.d: Likewise + 2012-11-14 David Holsgrove * gas/microblaze/allinsn.exp: New file - test newly added opcodes diff --git a/gas/testsuite/gas/microblaze/allinsn.d b/gas/testsuite/gas/microblaze/allinsn.d index 79064ba11e..c7854f18a3 100644 --- a/gas/testsuite/gas/microblaze/allinsn.d +++ b/gas/testsuite/gas/microblaze/allinsn.d @@ -22,3 +22,6 @@ Disassembly of section .text: 00000014 : 14: d8000200 swr r0, r0, r0 + +00000018 : + 18: 900000e0 clz r0, r0 diff --git a/gas/testsuite/gas/microblaze/allinsn.s b/gas/testsuite/gas/microblaze/allinsn.s index 8bb3ef5857..0e4271d409 100644 --- a/gas/testsuite/gas/microblaze/allinsn.s +++ b/gas/testsuite/gas/microblaze/allinsn.s @@ -24,4 +24,8 @@ shr: .global swr swr: swr r0,r0,r0 + .text + .global clz +clz: + clz r0,r0 diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 69248f8287..2efcdd2240 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,8 @@ +2012-11-14 Edgar E. Iglesias + + * 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 * microblaze-opc.h: Increase MAX_OPCODES (op_code_struct): add lbur, diff --git a/opcodes/microblaze-opc.h b/opcodes/microblaze-opc.h index 44c9d38715..132b951465 100644 --- a/opcodes/microblaze-opc.h +++ b/opcodes/microblaze-opc.h @@ -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}, }; diff --git a/opcodes/microblaze-opcm.h b/opcodes/microblaze-opcm.h index a3bec497db..58e6fd4534 100644 --- a/opcodes/microblaze-opcm.h +++ b/opcodes/microblaze-opcm.h @@ -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, -- 2.34.1