/* xtensa-dis.c. Disassembly functions for Xtensa.
- Copyright 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2003-2014 Free Software Foundation, Inc.
Contributed by Bob Wilson at Tensilica, Inc. (bwilson@tensilica.com)
- This file is part of GDB, GAS, and the GNU binutils.
+ This file is part of the GNU opcodes library.
- GDB, GAS, and the GNU binutils are free software; you can redistribute
- them and/or modify them under the terms of the GNU General Public
- License as published by the Free Software Foundation; either version 2,
- or (at your option) any later version.
+ This library 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.
- GDB, GAS, and the GNU binutils are distributed in the hope that they
- will be useful, but WITHOUT ANY WARRANTY; without even the implied
- warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
- the GNU General Public License for more details.
+ It is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ License for more details.
- You should have received a copy of the GNU General Public License along
- with this file; see the file COPYING. If not, write to the Free
- Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
- USA. */
+ You should have received a copy of the GNU General Public License
+ along with this file; see the file COPYING. If not, write to the
+ Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+#include "sysdep.h"
#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>
#include "xtensa-isa.h"
#include "ansidecl.h"
#include "libiberty.h"
-#include "sysdep.h"
#include "dis-asm.h"
#include <setjmp.h>
int show_raw_fields;
-static int fetch_data
- PARAMS ((struct disassemble_info *, bfd_vma));
-static void print_xtensa_operand
- PARAMS ((bfd_vma, struct disassemble_info *, xtensa_opcode, int, unsigned));
-
struct dis_private
{
bfd_byte *byte_buf;
- jmp_buf bailout;
+ OPCODES_SIGJMP_BUF bailout;
};
static int
-fetch_data (info, memaddr)
- struct disassemble_info *info;
- bfd_vma memaddr;
+fetch_data (struct disassemble_info *info, bfd_vma memaddr)
{
int length, status = 0;
struct dis_private *priv = (struct dis_private *) info->private_data;
return length;
}
(*info->memory_error_func) (status, memaddr, info);
- longjmp (priv->bailout, 1);
+ OPCODES_SIGLONGJMP (priv->bailout, 1);
/*NOTREACHED*/
}
static void
-print_xtensa_operand (memaddr, info, opc, opnd, operand_val)
- bfd_vma memaddr;
- struct disassemble_info *info;
- xtensa_opcode opc;
- int opnd;
- unsigned operand_val;
+print_xtensa_operand (bfd_vma memaddr,
+ struct disassemble_info *info,
+ xtensa_opcode opc,
+ int opnd,
+ unsigned operand_val)
{
xtensa_isa isa = xtensa_default_isa;
int signed_operand_val;
Returns length of the instruction in bytes. */
int
-print_insn_xtensa (memaddr, info)
- bfd_vma memaddr;
- struct disassemble_info *info;
+print_insn_xtensa (bfd_vma memaddr, struct disassemble_info *info)
{
unsigned operand_val;
int bytes_fetched, size, maxsize, i, n, noperands, nslots;
priv.byte_buf = byte_buf;
- info->private_data = (PTR) &priv;
- if (setjmp (priv.bailout) != 0)
+ info->private_data = (void *) &priv;
+ if (OPCODES_SIGSETJMP (priv.bailout) != 0)
/* Error return. */
return -1;