From 1d61b032265e69317f42e8019e072506f11890c5 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Wed, 11 Dec 2019 16:45:14 +1030 Subject: Remove more shifts for sign/zero extension cpu/ * epiphany.cpu (f-sdisp11): Don't sign extend with shifts. * lm32.cpu (f-branch, f-vall): Likewise. * m32.cpu (f-lab-8-16): Likewise. opcodes/ * arc-dis.c (BITS): Don't truncate high bits with shifts. * nios2-dis.c (nios2_print_insn_arg): Don't sign extend with shifts. * tic54x-dis.c (print_instruction): Likewise. * tilegx-opc.c (parse_insn_tilegx): Likewise. * tilepro-opc.c (parse_insn_tilepro): Likewise. * visium-dis.c (disassem_class0): Likewise. * pdp11-dis.c (sign_extend): Likewise. (SIGN_BITS): Delete. * epiphany-ibld.c: Regenerate. * lm32-ibld.c: Regenerate. * m32c-ibld.c: Regenerate. --- opcodes/arc-dis.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'opcodes/arc-dis.c') diff --git a/opcodes/arc-dis.c b/opcodes/arc-dis.c index a038fa0..a47e81f 100644 --- a/opcodes/arc-dis.c +++ b/opcodes/arc-dis.c @@ -137,8 +137,7 @@ static bfd_boolean print_hex = FALSE; (info->endian == BFD_ENDIAN_LITTLE ? bfd_getm32 (bfd_getl32 (buf)) \ : bfd_getb32 (buf)) -#define BITS(word,s,e) (((word) << (sizeof (word) * 8 - 1 - e)) >> \ - (s + (sizeof (word) * 8 - 1 - e))) +#define BITS(word,s,e) (((word) >> (s)) & ((1ull << ((e) - (s)) << 1) - 1)) #define OPCODE_32BIT_INSN(word) (BITS ((word), 27, 31)) /* Functions implementation. */ -- cgit v1.1