GDB (xrefs)

Classes | Macros | Enumerations | Functions | Variables
/tmp/gdb-8.1/gdb/rl78-tdep.c File Reference
`#include "defs.h"`
`#include "arch-utils.h"`
`#include "prologue-value.h"`
`#include "target.h"`
`#include "regcache.h"`
`#include "opcode/rl78.h"`
`#include "dis-asm.h"`
`#include "gdbtypes.h"`
`#include "frame.h"`
`#include "frame-unwind.h"`
`#include "frame-base.h"`
`#include "value.h"`
`#include "gdbcore.h"`
`#include "dwarf2-frame.h"`
`#include "reggroups.h"`
`#include "elf/rl78.h"`
`#include "elf-bfd.h"`

Go to the source code of this file.

## Classes
struct | gdbarch_tdep
struct | rl78_prologue

## Macros
#define | RL78_SP_ADDR 0xffff8

## Enumerations
enum | { RL78_BANK0 = 0, RL78_BANK1 = 1, RL78_BANK2 = 2, RL78_BANK3 = 3, RL78_NUMBANKS = 4, RL78_REGS_PER_BANK = 8 }
enum | { RL78_RAW_BANK0_R0_REGNUM = 0, RL78_RAW_BANK0_R1_REGNUM, RL78_RAW_BANK0_R2_REGNUM, RL78_RAW_BANK0_R3_REGNUM, RL78_RAW_BANK0_R4_REGNUM, RL78_RAW_BANK0_R5_REGNUM, RL78_RAW_BANK0_R6_REGNUM, RL78_RAW_BANK0_R7_REGNUM, RL78_RAW_BANK1_R0_REGNUM, RL78_RAW_BANK1_R1_REGNUM, RL78_RAW_BANK1_R2_REGNUM, RL78_RAW_BANK1_R3_REGNUM, RL78_RAW_BANK1_R4_REGNUM, RL78_RAW_BANK1_R5_REGNUM, RL78_RAW_BANK1_R6_REGNUM, RL78_RAW_BANK1_R7_REGNUM, RL78_RAW_BANK2_R0_REGNUM, RL78_RAW_BANK2_R1_REGNUM, RL78_RAW_BANK2_R2_REGNUM, RL78_RAW_BANK2_R3_REGNUM, RL78_RAW_BANK2_R4_REGNUM, RL78_RAW_BANK2_R5_REGNUM, RL78_RAW_BANK2_R6_REGNUM, RL78_RAW_BANK2_R7_REGNUM, RL78_RAW_BANK3_R0_REGNUM, RL78_RAW_BANK3_R1_REGNUM, RL78_RAW_BANK3_R2_REGNUM, RL78_RAW_BANK3_R3_REGNUM, RL78_RAW_BANK3_R4_REGNUM, RL78_RAW_BANK3_R5_REGNUM, RL78_RAW_BANK3_R6_REGNUM, RL78_RAW_BANK3_R7_REGNUM, RL78_PSW_REGNUM, RL78_ES_REGNUM, RL78_CS_REGNUM, RL78_RAW_PC_REGNUM, RL78_SPL_REGNUM, RL78_SPH_REGNUM, RL78_PMC_REGNUM, RL78_MEM_REGNUM, RL78_NUM_REGS, RL78_PC_REGNUM = RL78_NUM_REGS, RL78_SP_REGNUM, RL78_X_REGNUM, RL78_A_REGNUM, RL78_C_REGNUM, RL78_B_REGNUM, RL78_E_REGNUM, RL78_D_REGNUM, RL78_L_REGNUM, RL78_H_REGNUM, RL78_AX_REGNUM, RL78_BC_REGNUM, RL78_DE_REGNUM, RL78_HL_REGNUM, RL78_BANK0_R0_REGNUM, RL78_BANK0_R1_REGNUM, RL78_BANK0_R2_REGNUM, RL78_BANK0_R3_REGNUM, RL78_BANK0_R4_REGNUM, RL78_BANK0_R5_REGNUM, RL78_BANK0_R6_REGNUM, RL78_BANK0_R7_REGNUM, RL78_BANK1_R0_REGNUM, RL78_BANK1_R1_REGNUM, RL78_BANK1_R2_REGNUM, RL78_BANK1_R3_REGNUM, RL78_BANK1_R4_REGNUM, RL78_BANK1_R5_REGNUM, RL78_BANK1_R6_REGNUM, RL78_BANK1_R7_REGNUM, RL78_BANK2_R0_REGNUM, RL78_BANK2_R1_REGNUM, RL78_BANK2_R2_REGNUM, RL78_BANK2_R3_REGNUM, RL78_BANK2_R4_REGNUM, RL78_BANK2_R5_REGNUM, RL78_BANK2_R6_REGNUM, RL78_BANK2_R7_REGNUM, RL78_BANK3_R0_REGNUM, RL78_BANK3_R1_REGNUM, RL78_BANK3_R2_REGNUM, RL78_BANK3_R3_REGNUM, RL78_BANK3_R4_REGNUM, RL78_BANK3_R5_REGNUM, RL78_BANK3_R6_REGNUM, RL78_BANK3_R7_REGNUM, RL78_BANK0_RP0_REGNUM, RL78_BANK0_RP1_REGNUM, RL78_BANK0_RP2_REGNUM, RL78_BANK0_RP3_REGNUM, RL78_BANK1_RP0_REGNUM, RL78_BANK1_RP1_REGNUM, RL78_BANK1_RP2_REGNUM, RL78_BANK1_RP3_REGNUM, RL78_BANK2_RP0_REGNUM, RL78_BANK2_RP1_REGNUM, RL78_BANK2_RP2_REGNUM, RL78_BANK2_RP3_REGNUM, RL78_BANK3_RP0_REGNUM, RL78_BANK3_RP1_REGNUM, RL78_BANK3_RP2_REGNUM, RL78_BANK3_RP3_REGNUM, RL78_BANK0_RP0_PTR_REGNUM, RL78_BANK0_RP1_PTR_REGNUM, RL78_BANK0_RP2_PTR_REGNUM, RL78_BANK0_RP3_PTR_REGNUM, RL78_BANK1_RP0_PTR_REGNUM, RL78_BANK1_RP1_PTR_REGNUM, RL78_BANK1_RP2_PTR_REGNUM, RL78_BANK1_RP3_PTR_REGNUM, RL78_BANK2_RP0_PTR_REGNUM, RL78_BANK2_RP1_PTR_REGNUM, RL78_BANK2_RP2_PTR_REGNUM, RL78_BANK2_RP3_PTR_REGNUM, RL78_BANK3_RP0_PTR_REGNUM, RL78_BANK3_RP1_PTR_REGNUM, RL78_BANK3_RP2_PTR_REGNUM, RL78_BANK3_RP3_PTR_REGNUM, RL78_NUM_TOTAL_REGS, RL78_NUM_PSEUDO_REGS = RL78_NUM_TOTAL_REGS - RL78_NUM_REGS }

## Functions
static struct type * | rl78_psw_type (struct gdbarch *gdbarch)
static struct type * | rl78_register_type (struct gdbarch *gdbarch, int reg_nr)
static const char * | rl78_register_name (struct gdbarch *gdbarch, int regnr)
static const char * | rl78_g10_register_name (struct gdbarch *gdbarch, int regnr)
static int | rl78_register_reggroup_p (struct gdbarch *gdbarch, int regnum, struct reggroup *group)
static CORE_ADDR | rl78_make_instruction_address (CORE_ADDR addr)
static CORE_ADDR | rl78_make_data_address (CORE_ADDR addr)
static enum register_status | rl78_pseudo_register_read (struct gdbarch *gdbarch, struct regcache *regcache, int reg, gdb_byte *buffer)
static void | rl78_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, int reg, const gdb_byte *buffer)
typedef | BP_MANIPULATION (rl78_break_insn)
static int | opc_reg_to_gdb_regnum (int opcreg)
static int | rl78_get_opcode_byte (void *handle)
static void | check_for_saved (void *result_untyped, pv_t addr, CORE_ADDR size, pv_t value)
static void | rl78_analyze_prologue (CORE_ADDR start_pc, CORE_ADDR limit_pc, struct rl78_prologue *result)
static CORE_ADDR | rl78_addr_bits_remove (struct gdbarch *gdbarch, CORE_ADDR addr)
static void | rl78_address_to_pointer (struct gdbarch *gdbarch, struct type *type, gdb_byte *buf, CORE_ADDR addr)
static CORE_ADDR | rl78_pointer_to_address (struct gdbarch *gdbarch, struct type *type, const gdb_byte *buf)
static CORE_ADDR | rl78_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
static CORE_ADDR | rl78_unwind_pc (struct gdbarch *arch, struct frame_info *next_frame)
static CORE_ADDR | rl78_unwind_sp (struct gdbarch *arch, struct frame_info *next_frame)
static struct rl78_prologue * | rl78_analyze_frame_prologue (struct frame_info *this_frame, void **this_prologue_cache)
static CORE_ADDR | rl78_frame_base (struct frame_info *this_frame, void **this_prologue_cache)
static void | rl78_this_id (struct frame_info *this_frame, void **this_prologue_cache, struct frame_id *this_id)
static struct value * | rl78_prev_register (struct frame_info *this_frame, void **this_prologue_cache, int regnum)
static int | rl78_dwarf_reg_to_regnum (struct gdbarch *gdbarch, int reg)
static int | rl78_register_sim_regno (struct gdbarch *gdbarch, int regnum)
static enum return_value_convention | rl78_return_value (struct gdbarch *gdbarch, struct value *function, struct type *valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
static CORE_ADDR | rl78_frame_align (struct gdbarch *gdbarch, CORE_ADDR sp)
static struct frame_id | rl78_dummy_id (struct gdbarch *gdbarch, struct frame_info *this_frame)
static CORE_ADDR | rl78_push_dummy_call (struct gdbarch *gdbarch, struct value *function, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr)
static struct gdbarch * | rl78_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
void | _initialize_rl78_tdep (void)

## Variables
constexpr gdb_byte | rl78_break_insn [] = { 0xff }
static const struct frame_unwind | rl78_unwind

## Macro Definition Documentation

## ◆ RL78_SP_ADDR

#define RL78_SP_ADDR 0xffff8

Definition at line 208 of file rl78-tdep.c.

Referenced by rl78_analyze_prologue().

## Enumeration Type Documentation

## ◆ anonymous enum

anonymous enum

Enumerator
RL78_BANK0 |
RL78_BANK1 |
RL78_BANK2 |
RL78_BANK3 |
RL78_NUMBANKS |
RL78_REGS_PER_BANK |

Definition at line 43 of file rl78-tdep.c.

## ◆ anonymous enum

anonymous enum

Enumerator
RL78_RAW_BANK0_R0_REGNUM |
RL78_RAW_BANK0_R1_REGNUM |
RL78_RAW_BANK0_R2_REGNUM |
RL78_RAW_BANK0_R3_REGNUM |
RL78_RAW_BANK0_R4_REGNUM |
RL78_RAW_BANK0_R5_REGNUM |
RL78_RAW_BANK0_R6_REGNUM |
RL78_RAW_BANK0_R7_REGNUM |
RL78_RAW_BANK1_R0_REGNUM |
RL78_RAW_BANK1_R1_REGNUM |
RL78_RAW_BANK1_R2_REGNUM |
RL78_RAW_BANK1_R3_REGNUM |
RL78_RAW_BANK1_R4_REGNUM |
RL78_RAW_BANK1_R5_REGNUM |
RL78_RAW_BANK1_R6_REGNUM |
RL78_RAW_BANK1_R7_REGNUM |
RL78_RAW_BANK2_R0_REGNUM |
RL78_RAW_BANK2_R1_REGNUM |
RL78_RAW_BANK2_R2_REGNUM |
RL78_RAW_BANK2_R3_REGNUM |
RL78_RAW_BANK2_R4_REGNUM |
RL78_RAW_BANK2_R5_REGNUM |
RL78_RAW_BANK2_R6_REGNUM |
RL78_RAW_BANK2_R7_REGNUM |
RL78_RAW_BANK3_R0_REGNUM |
RL78_RAW_BANK3_R1_REGNUM |
RL78_RAW_BANK3_R2_REGNUM |
RL78_RAW_BANK3_R3_REGNUM |
RL78_RAW_BANK3_R4_REGNUM |
RL78_RAW_BANK3_R5_REGNUM |
RL78_RAW_BANK3_R6_REGNUM |
RL78_RAW_BANK3_R7_REGNUM |
RL78_PSW_REGNUM |
RL78_ES_REGNUM |
RL78_CS_REGNUM |
RL78_RAW_PC_REGNUM |
RL78_SPL_REGNUM |
RL78_SPH_REGNUM |
RL78_PMC_REGNUM |
RL78_MEM_REGNUM |
RL78_NUM_REGS |
RL78_PC_REGNUM |
RL78_SP_REGNUM |
RL78_X_REGNUM |
RL78_A_REGNUM |
RL78_C_REGNUM |
RL78_B_REGNUM |
RL78_E_REGNUM |
RL78_D_REGNUM |
RL78_L_REGNUM |
RL78_H_REGNUM |
RL78_AX_REGNUM |
RL78_BC_REGNUM |
RL78_DE_REGNUM |
RL78_HL_REGNUM |
RL78_BANK0_R0_REGNUM |
RL78_BANK0_R1_REGNUM |
RL78_BANK0_R2_REGNUM |
RL78_BANK0_R3_REGNUM |
RL78_BANK0_R4_REGNUM |
RL78_BANK0_R5_REGNUM |
RL78_BANK0_R6_REGNUM |
RL78_BANK0_R7_REGNUM |
RL78_BANK1_R0_REGNUM |
RL78_BANK1_R1_REGNUM |
RL78_BANK1_R2_REGNUM |
RL78_BANK1_R3_REGNUM |
RL78_BANK1_R4_REGNUM |
RL78_BANK1_R5_REGNUM |
RL78_BANK1_R6_REGNUM |
RL78_BANK1_R7_REGNUM |
RL78_BANK2_R0_REGNUM |
RL78_BANK2_R1_REGNUM |
RL78_BANK2_R2_REGNUM |
RL78_BANK2_R3_REGNUM |
RL78_BANK2_R4_REGNUM |
RL78_BANK2_R5_REGNUM |
RL78_BANK2_R6_REGNUM |
RL78_BANK2_R7_REGNUM |
RL78_BANK3_R0_REGNUM |
RL78_BANK3_R1_REGNUM |
RL78_BANK3_R2_REGNUM |
RL78_BANK3_R3_REGNUM |
RL78_BANK3_R4_REGNUM |
RL78_BANK3_R5_REGNUM |
RL78_BANK3_R6_REGNUM |
RL78_BANK3_R7_REGNUM |
RL78_BANK0_RP0_REGNUM |
RL78_BANK0_RP1_REGNUM |
RL78_BANK0_RP2_REGNUM |
RL78_BANK0_RP3_REGNUM |
RL78_BANK1_RP0_REGNUM |
RL78_BANK1_RP1_REGNUM |
RL78_BANK1_RP2_REGNUM |
RL78_BANK1_RP3_REGNUM |
RL78_BANK2_RP0_REGNUM |
RL78_BANK2_RP1_REGNUM |
RL78_BANK2_RP2_REGNUM |
RL78_BANK2_RP3_REGNUM |
RL78_BANK3_RP0_REGNUM |
RL78_BANK3_RP1_REGNUM |
RL78_BANK3_RP2_REGNUM |
RL78_BANK3_RP3_REGNUM |
RL78_BANK0_RP0_PTR_REGNUM |
RL78_BANK0_RP1_PTR_REGNUM |
RL78_BANK0_RP2_PTR_REGNUM |
RL78_BANK0_RP3_PTR_REGNUM |
RL78_BANK1_RP0_PTR_REGNUM |
RL78_BANK1_RP1_PTR_REGNUM |
RL78_BANK1_RP2_PTR_REGNUM |
RL78_BANK1_RP3_PTR_REGNUM |
RL78_BANK2_RP0_PTR_REGNUM |
RL78_BANK2_RP1_PTR_REGNUM |
RL78_BANK2_RP2_PTR_REGNUM |
RL78_BANK2_RP3_PTR_REGNUM |
RL78_BANK3_RP0_PTR_REGNUM |
RL78_BANK3_RP1_PTR_REGNUM |
RL78_BANK3_RP2_PTR_REGNUM |
RL78_BANK3_RP3_PTR_REGNUM |
RL78_NUM_TOTAL_REGS |
RL78_NUM_PSEUDO_REGS |

Definition at line 55 of file rl78-tdep.c.

## Function Documentation

## ◆ _initialize_rl78_tdep()

void _initialize_rl78_tdep | ( | void |  | ) |

Definition at line 1493 of file rl78-tdep.c.

References register_gdbarch_init(), and rl78_gdbarch_init().

## ◆ BP_MANIPULATION()

typedef BP_MANIPULATION | ( | rl78_break_insn |  | ) |

Definition at line 801 of file rl78-tdep.c.

## ◆ check_for_saved()

static void check_for_saved | ( | void * | result_untyped,
|  | pv_t | addr,
|  | CORE_ADDR | size,
|  | pv_t | value
| ) |  |
| static

Definition at line 893 of file rl78-tdep.c.

References prologue_value::k, pv_is_register(), pvk_register, value::reg, rl78_prologue::reg_offset, register_size(), RL78_SP_REGNUM, size, and target_gdbarch().

Referenced by rl78_analyze_prologue().

## ◆ opc_reg_to_gdb_regnum()

static int opc_reg_to_gdb_regnum | ( | int | opcreg | ) |
| static

Definition at line 811 of file rl78-tdep.c.

References _, internal_error(), RL78_A_REGNUM, RL78_AX_REGNUM, RL78_B_REGNUM, RL78_BC_REGNUM, RL78_C_REGNUM, RL78_CS_REGNUM, RL78_D_REGNUM, RL78_DE_REGNUM, RL78_E_REGNUM, RL78_ES_REGNUM, RL78_H_REGNUM, RL78_HL_REGNUM, RL78_L_REGNUM, RL78_MEM_REGNUM, RL78_PMC_REGNUM, RL78_PSW_REGNUM, RL78_SP_REGNUM, and RL78_X_REGNUM.

Referenced by rl78_analyze_prologue().

## ◆ rl78_addr_bits_remove()

static CORE_ADDR rl78_addr_bits_remove | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | addr
| ) |  |
| static

Definition at line 1024 of file rl78-tdep.c.

Referenced by rl78_gdbarch_init(), and rl78_unwind_pc().

## ◆ rl78_address_to_pointer()

static void rl78_address_to_pointer | ( | struct gdbarch * | gdbarch,
|  | struct type * | type,
|  | gdb_byte * | buf,
|  | CORE_ADDR | addr
| ) |  |
| static

Definition at line 1032 of file rl78-tdep.c.

References gdbarch_byte_order(), store_unsigned_integer(), and TYPE_LENGTH.

Referenced by rl78_gdbarch_init().

## ◆ rl78_analyze_frame_prologue()

static struct rl78_prologue* rl78_analyze_frame_prologue | ( | struct frame_info * | this_frame,
|  | void ** | this_prologue_cache
| ) |  |
| static

Definition at line 1102 of file rl78-tdep.c.

References FRAME_OBSTACK_ZALLOC, get_frame_func(), get_frame_pc(), and rl78_analyze_prologue().

Referenced by rl78_frame_base(), and rl78_prev_register().

## ◆ rl78_analyze_prologue()

static void rl78_analyze_prologue | ( | CORE_ADDR | start_pc,
|  | CORE_ADDR | limit_pc,
|  | struct rl78_prologue * | result
| ) |  |
| static

Definition at line 909 of file rl78-tdep.c.

References check_for_saved(), rl78_prologue::frame_size, gdbarch_addr_bit(), memset(), opc_reg_to_gdb_regnum(), pv_add_constant(), pv_is_register(), pv_register(), rl78_prologue::reg_offset, regnum, rl78_get_opcode_byte(), RL78_NUM_TOTAL_REGS, RL78_PC_REGNUM, RL78_REGS_PER_BANK, RL78_SP_ADDR, RL78_SP_REGNUM, pv_area::scan(), pv_area::store(), and target_gdbarch().

Referenced by rl78_analyze_frame_prologue(), and rl78_skip_prologue().

## ◆ rl78_dummy_id()

static struct frame_id rl78_dummy_id | ( | struct gdbarch * | gdbarch,
|  | struct frame_info * | this_frame
| ) |  |
| static

Definition at line 1324 of file rl78-tdep.c.

References frame_id_build(), get_frame_pc(), get_frame_register_unsigned(), rl78_make_data_address(), and RL78_SP_REGNUM.

Referenced by rl78_gdbarch_init().

## ◆ rl78_dwarf_reg_to_regnum()

static int rl78_dwarf_reg_to_regnum | ( | struct gdbarch * | gdbarch,
|  | int | reg
| ) |  |
| static

Definition at line 1206 of file rl78-tdep.c.

References RL78_BANK0_RP0_PTR_REGNUM, RL78_CS_REGNUM, RL78_ES_REGNUM, RL78_PC_REGNUM, RL78_PSW_REGNUM, and RL78_SP_REGNUM.

Referenced by rl78_gdbarch_init().

## ◆ rl78_frame_align()

static CORE_ADDR rl78_frame_align | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | sp
| ) |  |
| static

Definition at line 1315 of file rl78-tdep.c.

References align_down(), and rl78_make_data_address().

Referenced by rl78_gdbarch_init().

## ◆ rl78_frame_base()

static CORE_ADDR rl78_frame_base | ( | struct frame_info * | this_frame,
|  | void ** | this_prologue_cache
| ) |  |
| static

Definition at line 1129 of file rl78-tdep.c.

References rl78_prologue::frame_size, get_frame_register_unsigned(), rl78_analyze_frame_prologue(), rl78_make_data_address(), and RL78_SP_REGNUM.

Referenced by rl78_prev_register(), and rl78_this_id().

## ◆ rl78_g10_register_name()

static const char* rl78_g10_register_name | ( | struct gdbarch * | gdbarch,
|  | int | regnr
| ) |  |
| static

Definition at line 452 of file rl78-tdep.c.

Referenced by rl78_gdbarch_init().

## ◆ rl78_gdbarch_init()

static struct gdbarch* rl78_gdbarch_init | ( | struct gdbarch_info | info,
|  | struct gdbarch_list * | arches
| ) |  |
| static

Definition at line 1382 of file rl78-tdep.c.

References gdbarch_info::abfd, arch_integer_type(), arch_pointer_type(), arch_type(), core_addr_lessthan(), dwarf2_append_unwinders(), gdbarch_tdep::elf_flags, floatformats_ieee_double, floatformats_ieee_single, frame_unwind_append_unwinder(), gdbarch_list::gdbarch, gdbarch_alloc(), gdbarch_list_lookup_by_info(), gdbarch_list::next, rl78_addr_bits_remove(), rl78_address_to_pointer(), gdbarch_tdep::rl78_code_pointer, gdbarch_tdep::rl78_data_pointer, rl78_dummy_id(), rl78_dwarf_reg_to_regnum(), rl78_frame_align(), rl78_g10_register_name(), gdbarch_tdep::rl78_int16, gdbarch_tdep::rl78_int32, gdbarch_tdep::rl78_int8, RL78_NUM_PSEUDO_REGS, RL78_NUM_REGS, RL78_PC_REGNUM, rl78_pointer_to_address(), rl78_pseudo_register_read(), rl78_pseudo_register_write(), rl78_push_dummy_call(), rl78_register_name(), rl78_register_reggroup_p(), rl78_register_sim_regno(), rl78_register_type(), rl78_return_value(), rl78_skip_prologue(), RL78_SP_REGNUM, gdbarch_tdep::rl78_uint16, gdbarch_tdep::rl78_uint32, gdbarch_tdep::rl78_uint8, rl78_unwind, rl78_unwind_pc(), rl78_unwind_sp(), gdbarch_tdep::rl78_void, set_gdbarch_addr_bit(), set_gdbarch_addr_bits_remove(), set_gdbarch_address_to_pointer(), set_gdbarch_breakpoint_kind_from_pc(), set_gdbarch_char_signed(), set_gdbarch_decr_pc_after_break(), set_gdbarch_double_bit(), set_gdbarch_double_format(), set_gdbarch_dummy_id(), set_gdbarch_dwarf2_addr_size(), set_gdbarch_dwarf2_reg_to_regnum(), set_gdbarch_float_bit(), set_gdbarch_float_format(), set_gdbarch_frame_align(), set_gdbarch_inner_than(), set_gdbarch_int_bit(), set_gdbarch_long_bit(), set_gdbarch_long_double_bit(), set_gdbarch_long_double_format(), set_gdbarch_long_long_bit(), set_gdbarch_num_pseudo_regs(), set_gdbarch_num_regs(), set_gdbarch_pc_regnum(), set_gdbarch_pointer_to_address(), set_gdbarch_pseudo_register_read(), set_gdbarch_pseudo_register_write(), set_gdbarch_ptr_bit(), set_gdbarch_push_dummy_call(), set_gdbarch_register_name(), set_gdbarch_register_reggroup_p(), set_gdbarch_register_sim_regno(), set_gdbarch_register_type(), set_gdbarch_return_value(), set_gdbarch_short_bit(), set_gdbarch_skip_prologue(), set_gdbarch_sp_regnum(), set_gdbarch_sw_breakpoint_from_kind(), set_gdbarch_unwind_pc(), set_gdbarch_unwind_sp(), set_gdbarch_vbit_in_delta(), TARGET_CHAR_BIT, TYPE_CODE_VOID, and XCNEW.

Referenced by _initialize_rl78_tdep().

## ◆ rl78_get_opcode_byte()

static int rl78_get_opcode_byte | ( | void * | handle | ) |
| static

Definition at line 868 of file rl78-tdep.c.

References status, and target_read_memory().

Referenced by rl78_analyze_prologue().

## ◆ rl78_make_data_address()

static CORE_ADDR rl78_make_data_address | ( | CORE_ADDR | addr | ) |
| static

Definition at line 634 of file rl78-tdep.c.

Referenced by rl78_dummy_id(), rl78_frame_align(), rl78_frame_base(), rl78_pointer_to_address(), and rl78_push_dummy_call().

## ◆ rl78_make_instruction_address()

static CORE_ADDR rl78_make_instruction_address | ( | CORE_ADDR | addr | ) |
| static

Definition at line 626 of file rl78-tdep.c.

Referenced by rl78_pointer_to_address(), and rl78_prev_register().

## ◆ rl78_pointer_to_address()

static CORE_ADDR rl78_pointer_to_address | ( | struct gdbarch * | gdbarch,
|  | struct type * | type,
|  | const gdb_byte * | buf
| ) |  |
| static

Definition at line 1044 of file rl78-tdep.c.

References extract_unsigned_integer(), gdbarch_byte_order(), rl78_make_data_address(), rl78_make_instruction_address(), TYPE_CODE, TYPE_CODE_FUNC, TYPE_CODE_METHOD, TYPE_CODE_SPACE, TYPE_LENGTH, and TYPE_TARGET_TYPE.

Referenced by rl78_gdbarch_init().

## ◆ rl78_prev_register()

static struct value* rl78_prev_register | ( | struct frame_info * | this_frame,
|  | void ** | this_prologue_cache,
|  | int | regnum
| ) |  |
| static

Definition at line 1152 of file rl78-tdep.c.

References frame_unwind_got_constant(), frame_unwind_got_memory(), frame_unwind_got_register(), rl78_prologue::reg_offset, regnum, rl78_analyze_frame_prologue(), rl78_frame_base(), rl78_make_instruction_address(), RL78_PC_REGNUM, RL78_SP_REGNUM, RL78_SPH_REGNUM, RL78_SPL_REGNUM, and value_as_long().

## ◆ rl78_pseudo_register_read()

static enum register_status rl78_pseudo_register_read | ( | struct gdbarch * | gdbarch,
|  | struct regcache * | regcache,
|  | int | reg,
|  | gdb_byte * | buffer
| ) |  |
| static

Definition at line 642 of file rl78-tdep.c.

References gdb_assert_not_reached, REG_VALID, regcache_raw_read(), regcache_raw_read_unsigned(), RL78_AX_REGNUM, RL78_BANK0_R0_REGNUM, RL78_BANK0_RP0_PTR_REGNUM, RL78_BANK0_RP0_REGNUM, RL78_BANK3_R7_REGNUM, RL78_BANK3_RP3_PTR_REGNUM, RL78_BANK3_RP3_REGNUM, RL78_H_REGNUM, RL78_HL_REGNUM, RL78_PC_REGNUM, RL78_PSW_REGNUM, RL78_RAW_BANK0_R0_REGNUM, RL78_RAW_PC_REGNUM, RL78_REGS_PER_BANK, RL78_SP_REGNUM, RL78_SPH_REGNUM, RL78_SPL_REGNUM, RL78_X_REGNUM, and status.

Referenced by rl78_gdbarch_init().

## ◆ rl78_pseudo_register_write()

static void rl78_pseudo_register_write | ( | struct gdbarch * | gdbarch,
|  | struct regcache * | regcache,
|  | int | reg,
|  | const gdb_byte * | buffer
| ) |  |
| static

Definition at line 725 of file rl78-tdep.c.

References gdb_assert_not_reached, regcache_raw_read_unsigned(), regcache_raw_write(), RL78_AX_REGNUM, RL78_BANK0_R0_REGNUM, RL78_BANK0_RP0_PTR_REGNUM, RL78_BANK0_RP0_REGNUM, RL78_BANK3_R7_REGNUM, RL78_BANK3_RP3_PTR_REGNUM, RL78_BANK3_RP3_REGNUM, RL78_H_REGNUM, RL78_HL_REGNUM, RL78_PC_REGNUM, RL78_PSW_REGNUM, RL78_RAW_BANK0_R0_REGNUM, RL78_RAW_PC_REGNUM, RL78_REGS_PER_BANK, RL78_SP_REGNUM, RL78_SPH_REGNUM, RL78_SPL_REGNUM, and RL78_X_REGNUM.

Referenced by rl78_gdbarch_init().

## ◆ rl78_psw_type()

static struct type* rl78_psw_type | ( | struct gdbarch * | gdbarch | ) |
| static

Definition at line 267 of file rl78-tdep.c.

References append_flags_type_flag(), arch_flags_type(), gdbarch_tdep(), and gdbarch_tdep::rl78_psw_type.

Referenced by rl78_register_type().

## ◆ rl78_push_dummy_call()

static CORE_ADDR rl78_push_dummy_call | ( | struct gdbarch * | gdbarch,
|  | struct value * | function,
|  | struct regcache * | regcache,
|  | CORE_ADDR | bp_addr,
|  | int | nargs,
|  | struct value ** | args,
|  | CORE_ADDR | sp,
|  | int | struct_return,
|  | CORE_ADDR | struct_addr
| ) |  |
| static

Definition at line 1337 of file rl78-tdep.c.

References gdbarch_byte_order(), regcache_cooked_write_unsigned(), rl78_make_data_address(), RL78_SP_REGNUM, store_unsigned_integer(), TYPE_LENGTH, value_contents_all(), value_enclosing_type(), value_type(), and write_memory().

Referenced by rl78_gdbarch_init().

## ◆ rl78_register_name()

static const char* rl78_register_name | ( | struct gdbarch * | gdbarch,
|  | int | regnr
| ) |  |
| static

Definition at line 317 of file rl78-tdep.c.

Referenced by rl78_gdbarch_init().

## ◆ rl78_register_reggroup_p()

static int rl78_register_reggroup_p | ( | struct gdbarch * | gdbarch,
|  | int | regnum,
|  | struct reggroup * | group
| ) |  |
| static

Definition at line 587 of file rl78-tdep.c.

References all_reggroup, general_reggroup, regnum, restore_reggroup, RL78_BANK0_R0_REGNUM, RL78_BANK0_RP0_REGNUM, RL78_BANK3_R7_REGNUM, RL78_BANK3_RP3_REGNUM, RL78_CS_REGNUM, RL78_ES_REGNUM, RL78_MEM_REGNUM, RL78_NUM_REGS, RL78_PC_REGNUM, RL78_PMC_REGNUM, RL78_RAW_PC_REGNUM, RL78_SP_REGNUM, RL78_SPH_REGNUM, RL78_SPL_REGNUM, save_reggroup, and system_reggroup.

Referenced by rl78_gdbarch_init().

## ◆ rl78_register_sim_regno()

static int rl78_register_sim_regno | ( | struct gdbarch * | gdbarch,
|  | int | regnum
| ) |  |
| static

Definition at line 1237 of file rl78-tdep.c.

References gdb_assert, regnum, and RL78_NUM_REGS.

Referenced by rl78_gdbarch_init().

## ◆ rl78_register_type()

static struct type* rl78_register_type | ( | struct gdbarch * | gdbarch,
|  | int | reg_nr
| ) |  |
| static

Definition at line 291 of file rl78-tdep.c.

References gdbarch_tdep(), RL78_BANK0_R0_REGNUM, RL78_BANK0_RP0_PTR_REGNUM, RL78_BANK3_R7_REGNUM, RL78_BANK3_RP3_PTR_REGNUM, gdbarch_tdep::rl78_code_pointer, gdbarch_tdep::rl78_data_pointer, RL78_H_REGNUM, gdbarch_tdep::rl78_int16, gdbarch_tdep::rl78_int8, RL78_MEM_REGNUM, RL78_PC_REGNUM, RL78_PSW_REGNUM, rl78_psw_type(), RL78_RAW_PC_REGNUM, RL78_SP_REGNUM, gdbarch_tdep::rl78_uint32, and RL78_X_REGNUM.

Referenced by rl78_gdbarch_init().

## ◆ rl78_return_value()

static enum return_value_convention rl78_return_value | ( | struct gdbarch * | gdbarch,
|  | struct value * | function,
|  | struct type * | valtype,
|  | struct regcache * | regcache,
|  | gdb_byte * | readbuf,
|  | const gdb_byte * | writebuf
| ) |  |
| static

Definition at line 1250 of file rl78-tdep.c.

References gdbarch_tdep::elf_flags, extract_unsigned_integer(), gdbarch_byte_order(), gdbarch_tdep(), offset, read_memory_integer(), regcache_cooked_read_unsigned(), regcache_cooked_write_unsigned(), RETURN_VALUE_REGISTER_CONVENTION, RETURN_VALUE_STRUCT_CONVENTION, RL78_RAW_BANK1_R0_REGNUM, store_unsigned_integer(), TYPE_LENGTH, and write_memory().

Referenced by rl78_gdbarch_init().

## ◆ rl78_skip_prologue()

static CORE_ADDR rl78_skip_prologue | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | pc
| ) |  |
| static

Definition at line 1064 of file rl78-tdep.c.

References find_pc_partial_function(), name, rl78_prologue::prologue_end, and rl78_analyze_prologue().

Referenced by rl78_gdbarch_init().

## ◆ rl78_this_id()

static void rl78_this_id | ( | struct frame_info * | this_frame,
|  | void ** | this_prologue_cache,
|  | struct frame_id * | this_id
| ) |  |
| static

Definition at line 1141 of file rl78-tdep.c.

References frame_id_build(), get_frame_func(), and rl78_frame_base().

## ◆ rl78_unwind_pc()

static CORE_ADDR rl78_unwind_pc | ( | struct gdbarch * | arch,
|  | struct frame_info * | next_frame
| ) |  |
| static

Definition at line 1081 of file rl78-tdep.c.

References frame_unwind_register_unsigned(), rl78_addr_bits_remove(), and RL78_PC_REGNUM.

Referenced by rl78_gdbarch_init().

## ◆ rl78_unwind_sp()

static CORE_ADDR rl78_unwind_sp | ( | struct gdbarch * | arch,
|  | struct frame_info * | next_frame
| ) |  |
| static

Definition at line 1091 of file rl78-tdep.c.

References frame_unwind_register_unsigned(), and RL78_SP_REGNUM.

Referenced by rl78_gdbarch_init().

## Variable Documentation

## ◆ rl78_break_insn

constexpr gdb_byte rl78_break_insn[] = { 0xff }

Definition at line 799 of file rl78-tdep.c.

## ◆ rl78_unwind

const struct frame_unwind rl78_unwind
| static

Initial value:
=
{
NORMAL_FRAME,
default_frame_unwind_stop_reason,
rl78_this_id,
rl78_prev_register,
NULL,
default_frame_sniffer
}
rl78_this_id
static void rl78_this_id(struct frame_info *this_frame, void **this_prologue_cache, struct frame_id *this_id)
Definition: rl78-tdep.c:1141
NORMAL_FRAME
Definition: frame.h:244
default_frame_sniffer
int default_frame_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
Definition: frame-unwind.c:174
rl78_prev_register
static struct value * rl78_prev_register(struct frame_info *this_frame, void **this_prologue_cache, int regnum)
Definition: rl78-tdep.c:1152
default_frame_unwind_stop_reason
enum unwind_stop_reason default_frame_unwind_stop_reason(struct frame_info *this_frame, void **this_cache)
Definition: frame-unwind.c:184

Definition at line 1193 of file rl78-tdep.c.

Referenced by rl78_gdbarch_init().