/* Interface definition for configurable Xtensa ISA support.
- Copyright 2003, 2004 Free Software Foundation, Inc.
+ Copyright 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
#ifndef XTENSA_LIBISA_H
#define XTENSA_LIBISA_H
typedef struct xtensa_isa_opaque { int unused; } *xtensa_isa;
-/* Opcodes, formats, regfiles, states, sysregs, ctypes, and protos are
+/* Most of the Xtensa ISA entities (e.g., opcodes, regfiles, etc.) are
represented here using sequential integers beginning with 0. The
specific values are only fixed for a particular instantiation of an
xtensa_isa structure, so these values should only be used
extern char *
xtensa_isa_error_msg (xtensa_isa isa);
+
\f
/* Instruction buffers. */
extern int
xtensa_insnbuf_to_chars (xtensa_isa isa, const xtensa_insnbuf insn,
- char *cp, int num_chars);
+ unsigned char *cp, int num_chars);
extern void
xtensa_insnbuf_from_chars (xtensa_isa isa, xtensa_insnbuf insn,
- const char *cp, int num_chars);
+ const unsigned char *cp, int num_chars);
+
\f
/* ISA information. */
XTENSA_UNDEFINED on error. */
extern int
-xtensa_isa_length_from_chars (xtensa_isa isa, const char *cp);
+xtensa_isa_length_from_chars (xtensa_isa isa, const unsigned char *cp);
/* Get the number of stages in the processor's pipeline. The pipeline
extern int
xtensa_isa_num_funcUnits (xtensa_isa isa);
+
\f
/* Instruction formats. */
xtensa_format_set_slot (xtensa_isa isa, xtensa_format fmt, int slot,
xtensa_insnbuf insn, const xtensa_insnbuf slotbuf);
+
\f
/* Opcode information. */
extern int
xtensa_opcode_num_operands (xtensa_isa isa, xtensa_opcode opc);
-
extern int
xtensa_opcode_num_stateOperands (xtensa_isa isa, xtensa_opcode opc);
extern xtensa_funcUnit_use *
xtensa_opcode_funcUnit_use (xtensa_isa isa, xtensa_opcode opc, int u);
+
\f
/* Operand information. */
xtensa_operand_undo_reloc (xtensa_isa isa, xtensa_opcode opc, int opnd,
uint32 *valp, uint32 pc);
+
\f
/* State Operands. */
extern char
xtensa_stateOperand_inout (xtensa_isa isa, xtensa_opcode opc, int stOp);
+
\f
/* Interface Operands. */
xtensa_interfaceOperand_interface (xtensa_isa isa, xtensa_opcode opc,
int ifOp);
+
\f
/* Register Files. */
extern int
xtensa_regfile_num_entries (xtensa_isa isa, xtensa_regfile rf);
+
\f
/* Processor States. */
extern int
xtensa_state_is_exported (xtensa_isa isa, xtensa_state st);
+
\f
/* Sysregs ("special registers" and "user registers"). */
extern int
xtensa_sysreg_is_user (xtensa_isa isa, xtensa_sysreg sysreg);
+
\f
/* Interfaces. */
extern int
xtensa_interface_class_id (xtensa_isa isa, xtensa_interface intf);
+
\f
/* Functional Units. */