/* Target-dependent header for the Nios II architecture, for GDB.
- Copyright (C) 2012-2014 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Mentor Graphics, Inc.
This file is part of GDB.
#ifndef NIOS2_TDEP_H
#define NIOS2_TDEP_H
+/* Nios II ISA specific encodings and macros. */
+#include "opcode/nios2.h"
+
/* Registers. */
#define NIOS2_Z_REGNUM 0 /* Zero */
#define NIOS2_R2_REGNUM 2 /* used for return value */
/* Size of an instruction, in bytes. */
#define NIOS2_OPCODE_SIZE 4
+#define NIOS2_CDX_OPCODE_SIZE 2
/* Target-dependent structure in gdbarch. */
struct gdbarch_tdep
{
/* Assumes FRAME is stopped at a syscall (trap) instruction; returns
the expected next PC. */
- CORE_ADDR (*syscall_next_pc) (struct frame_info *frame);
+ CORE_ADDR (*syscall_next_pc) (struct frame_info *frame,
+ const struct nios2_opcode *op);
+
+ /* Returns true if PC points to a kernel helper function. */
+ bool (*is_kernel_helper) (CORE_ADDR pc);
/* Offset to PC value in jump buffer.
If this is negative, longjmp support will be disabled. */