OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [insight/] [gdb/] [config/] [or1k/] [tm-or1k.h] - Diff between revs 593 and 1142

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 593 Rev 1142
Line 219... Line 219...
 
 
/* Number of bytes of storage in the actual machine representation for
/* Number of bytes of storage in the actual machine representation for
   register N.  NOTE: This indirectly defines the register size
   register N.  NOTE: This indirectly defines the register size
   transfered by the GDB protocol.  If we have 64bit processor
   transfered by the GDB protocol.  If we have 64bit processor
   implementation, GPR register raw size is 8B, otherwise 4B.  */
   implementation, GPR register raw size is 8B, otherwise 4B.  */
#define REGISTER_RAW_SIZE(N) ((OR1K_IS_GPR(N)?((OR1K_64BIT_IMPLEMENTATION)?\
#define REGISTER_RAW_SIZE(N) or1k_register_raw_size(N)
(8):(4)):(OR1K_SPR_REGSIZE)))
extern int or1k_register_raw_size PARAMS ((int regnum));
 
 
/* Number of bytes of storage in the program's representation
/* Number of bytes of storage in the program's representation
   for register N. Same as RAW_SIZE.  */
   for register N. Same as RAW_SIZE.  */
#define REGISTER_VIRTUAL_SIZE(N) TYPE_LENGTH (REGISTER_VIRTUAL_TYPE (N))
#define REGISTER_VIRTUAL_SIZE(N) TYPE_LENGTH (REGISTER_VIRTUAL_TYPE (N))
 
 
Line 253... Line 253...
/* Should not store into R0.  */
/* Should not store into R0.  */
#define CANNOT_STORE_REGISTER(N) ((N) == 0)
#define CANNOT_STORE_REGISTER(N) ((N) == 0)
 
 
/* Index within `registers' of the first byte of the space for
/* Index within `registers' of the first byte of the space for
   register N.  */
   register N.  */
#define REGISTER_BYTE(N) ((N) * OR1K_SPR_REGSIZE)
#define REGISTER_BYTE(N) or1k_register_byte(N)
 
extern int or1k_register_byte PARAMS ((int regnum));
 
 
/* Total amount of space needed to store our copies of the machine's
/* Total amount of space needed to store our copies of the machine's
   register state, the array `registers'.  */
   register state, the array `registers'.  */
#define REGISTER_BYTES (NUM_REGS * OR1K_GPR_REGSIZE)
#define REGISTER_BYTES ((NUM_GPR_REGS * OR1K_GPR_REGSIZE) + \
 
                        (NUM_VF_REGS * OR1K_VF_REGSIZE) + \
 
                        (3 * OR1K_SPR_REGSIZE ))
 
 
extern void or1k_do_registers_info PARAMS ((int, int));
extern void or1k_do_registers_info PARAMS ((int, int));
#define DO_REGISTERS_INFO(regnum, fp) or1k_do_registers_info(regnum, fp)
#define DO_REGISTERS_INFO(regnum, fp) or1k_do_registers_info(regnum, fp)
 
 
 
 
Line 307... Line 310...
#define HAVE_NONSTEPPABLE_WATCHPOINT
#define HAVE_NONSTEPPABLE_WATCHPOINT
 
 
extern int or1k_stopped_by_watchpoint PARAMS ((void));
extern int or1k_stopped_by_watchpoint PARAMS ((void));
#define STOPPED_BY_WATCHPOINT(w) or1k_stopped_by_watchpoint ()
#define STOPPED_BY_WATCHPOINT(w) or1k_stopped_by_watchpoint ()
 
 
typedef enum bptype;
typedef enum bptype bptype;
extern int or1k_can_use_hardware_watchpoint PARAMS ((enum bptype, int));
extern int or1k_can_use_hardware_watchpoint PARAMS ((enum bptype, int));
#define TARGET_CAN_USE_HARDWARE_WATCHPOINT(bp_type, cnt, ot) \
#define TARGET_CAN_USE_HARDWARE_WATCHPOINT(bp_type, cnt, ot) \
  or1k_can_use_hardware_watchpoint(bp_type, cnt)
  or1k_can_use_hardware_watchpoint(bp_type, cnt)
 
 
 
 
Line 362... Line 365...
#define EXTRACT_STRUCT_VALUE_ADDRESS_P 1
#define EXTRACT_STRUCT_VALUE_ADDRESS_P 1
#endif
#endif
 
 
/* Advance PC across any function entry prologue instructions
/* Advance PC across any function entry prologue instructions
   to reach some "real" code.  */
   to reach some "real" code.  */
extern CORE_ADDR or1k_skip_prologue PARAMS ((CORE_ADDR addr));
extern CORE_ADDR or1k_skip_prologue PARAMS ((CORE_ADDR addr, struct frame_info *fi));
#define SKIP_PROLOGUE(pc) (or1k_skip_prologue (pc))
#define SKIP_PROLOGUE(pc) (or1k_skip_prologue (pc, NULL))
 
 
/* FRAMES */
/* FRAMES */
 
 
#define FRAME_ARGS_ADDRESS(fi)  (fi)->frame
#define FRAME_ARGS_ADDRESS(fi)  (fi)->frame
 
 
Line 376... Line 379...
/* FRAME_CHAIN takes a frame's nominal address
/* FRAME_CHAIN takes a frame's nominal address
   and produces the frame's chain-pointer. */
   and produces the frame's chain-pointer. */
#define FRAME_CHAIN(thisframe) (CORE_ADDR) or1k_frame_chain (thisframe)
#define FRAME_CHAIN(thisframe) (CORE_ADDR) or1k_frame_chain (thisframe)
extern CORE_ADDR or1k_frame_chain PARAMS ((struct frame_info *));
extern CORE_ADDR or1k_frame_chain PARAMS ((struct frame_info *));
 
 
 
extern void or1k_init_extra_frame_info (int fromleaf, struct frame_info *);
 
#define INIT_EXTRA_FRAME_INFO(fromleaf, fi) or1k_init_extra_frame_info (fromleaf, fi)
 
 
/* Discard from the stack the innermost frame, restoring all registers.  */
/* Discard from the stack the innermost frame, restoring all registers.  */
extern void or1k_pop_frame PARAMS ((void));
extern void or1k_pop_frame PARAMS ((void));
#define POP_FRAME or1k_pop_frame()
#define POP_FRAME or1k_pop_frame()
 
 
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.