/* Disassembler code for CR16.
- Copyright 2007 Free Software Foundation, Inc.
+ Copyright 2007, 2008 Free Software Foundation, Inc.
Contributed by M R Swami Reddy (MR.Swami.Reddy@nsc.com).
This file is part of GAS, GDB and the GNU binutils.
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free
- Software Foundation; either version 2, or (at your option)
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the
+ Free Software Foundation; either version 3, or (at your option)
any later version.
This program is distributed in the hope that it will be useful, but WITHOUT
string. This routine is used when disassembling the 'cinv' instruction. */
static char *
-getcinvstring (char *str)
+getcinvstring (const char *str)
{
const cinv_entry *cinv;
build_mask (void)
{
unsigned long mask = SBM (instruction->match_bits);
+
+ /* Adjust mask for bcond with 32-bit size instruction. */
+ if ((IS_INSN_MNEMONIC("b") && instruction->size == 2))
+ mask = 0xff0f0000;
+
return mask;
}
if (is_decoded > 0 && (words[0] << 16 || words[1]) != 0)
{
if (strneq (instruction->mnemonic, "cinv", 4))
- info->fprintf_func (info->stream,"%s", getcinvstring ((char *)instruction->mnemonic));
+ info->fprintf_func (info->stream,"%s", getcinvstring (instruction->mnemonic));
else
info->fprintf_func (info->stream, "%s", instruction->mnemonic);