Line 35... |
Line 35... |
unsigned int UPR;
|
unsigned int UPR;
|
/* Number of total available matchpoints in this implementation. */
|
/* Number of total available matchpoints in this implementation. */
|
unsigned int num_matchpoints;
|
unsigned int num_matchpoints;
|
/* Number of currently used matchpoints. */
|
/* Number of currently used matchpoints. */
|
unsigned int num_used_matchpoints;
|
unsigned int num_used_matchpoints;
|
|
/* Has watchpoint driven counters. */
|
|
int has_counters;
|
/* Number of registers. */
|
/* Number of registers. */
|
unsigned int num_gpr_regs;
|
unsigned int num_gpr_regs;
|
unsigned int num_vf_regs;
|
unsigned int num_vfpr_regs;
|
|
/* Is there any vf support? */
|
int vf_present;
|
int vf_present;
|
};
|
};
|
|
|
struct or1k_target_ops
|
struct or1k_target_ops
|
{
|
{
|
Line 89... |
Line 92... |
/* Special purpose regisers. */
|
/* Special purpose regisers. */
|
#define SPR_GROUP_SIZE_BITS (11)
|
#define SPR_GROUP_SIZE_BITS (11)
|
#define SPR_GROUP_SIZE (1 << SPR_GROUP_SIZE_BITS)
|
#define SPR_GROUP_SIZE (1 << SPR_GROUP_SIZE_BITS)
|
#define SPR_SYSTEM_GROUP (0)
|
#define SPR_SYSTEM_GROUP (0)
|
#define SPR_DEBUG_GROUP (6)
|
#define SPR_DEBUG_GROUP (6)
|
#define SPR_GPR (1024)
|
#define SPR_GPR_START (1024)
|
#define SPR_VFPR ((MAX_CID + 1) * MAX_GPR_REGS + SPR_GPR)
|
#define SPR_VFPR_START ((MAX_CID + 1) * MAX_GPR_REGS + SPR_GPR_START)
|
#define OR1K_NUM_SPR_GROUPS (11)
|
#define OR1K_NUM_SPR_GROUPS (12)
|
|
|
/* Define register values. */
|
/* Define register values. */
|
#define SPR_REG(group, index) (((group) << SPR_GROUP_SIZE_BITS) + (index))
|
#define SPR_REG(group, index) (((group) << SPR_GROUP_SIZE_BITS) + (index))
|
|
|
#define VR_SPRNUM SPR_REG(SPR_SYSTEM_GROUP, 1)
|
#define VR_SPRNUM SPR_REG(SPR_SYSTEM_GROUP, 0)
|
#define UPR_SPRNUM SPR_REG(SPR_SYSTEM_GROUP, 2)
|
#define UPR_SPRNUM SPR_REG(SPR_SYSTEM_GROUP, 1)
|
#define SR_SPRNUM SPR_REG(SPR_SYSTEM_GROUP, 3)
|
#define CPUCFGR_SPRNUM SPR_REG(SPR_SYSTEM_GROUP, 2)
|
|
#define DCFGR_SPRNUM SPR_REG(SPR_SYSTEM_GROUP, 7)
|
|
#define PC_SPRNUM SPR_REG(SPR_SYSTEM_GROUP, 16)
|
|
#define SR_SPRNUM SPR_REG(SPR_SYSTEM_GROUP, 17)
|
#define CCR_SPRNUM(cid) SPR_REG(SPR_SYSTEM_GROUP, 4 + (cid))
|
#define CCR_SPRNUM(cid) SPR_REG(SPR_SYSTEM_GROUP, 4 + (cid))
|
#define DVR0_SPRNUM SPR_REG(SPR_DEBUG_GROUP, 0)
|
#define DVR0_SPRNUM SPR_REG(SPR_DEBUG_GROUP, 32)
|
#define DCR0_SPRNUM SPR_REG(SPR_DEBUG_GROUP, 8)
|
#define DCR0_SPRNUM SPR_REG(SPR_DEBUG_GROUP, 40)
|
#define DMR1_SPRNUM SPR_REG(SPR_DEBUG_GROUP, 16)
|
#define DMR1_SPRNUM SPR_REG(SPR_DEBUG_GROUP, 48)
|
#define DMR2_SPRNUM SPR_REG(SPR_DEBUG_GROUP, 17)
|
#define DMR2_SPRNUM SPR_REG(SPR_DEBUG_GROUP, 49)
|
#define DCWR0_SPRNUM SPR_REG(SPR_DEBUG_GROUP, 18)
|
#define DCWR0_SPRNUM SPR_REG(SPR_DEBUG_GROUP, 50)
|
#define DCWR1_SPRNUM SPR_REG(SPR_DEBUG_GROUP, 19)
|
#define DCWR1_SPRNUM SPR_REG(SPR_DEBUG_GROUP, 51)
|
#define DSR_SPRNUM SPR_REG(SPR_DEBUG_GROUP, 20)
|
#define DSR_SPRNUM SPR_REG(SPR_DEBUG_GROUP, 52)
|
#define DRR_SPRNUM SPR_REG(SPR_DEBUG_GROUP, 21)
|
#define DRR_SPRNUM SPR_REG(SPR_DEBUG_GROUP, 53)
|
#define DIR_SPRNUM SPR_REG(SPR_DEBUG_GROUP, 22)
|
#define DIR_SPRNUM SPR_REG(SPR_DEBUG_GROUP, 54)
|
#define PC_SPRNUM SPR_REG(SPR_SYSTEM_GROUP, 2)
|
|
#define ZERO_REGNUM (0)
|
#define ZERO_REGNUM (0)
|
#define SP_REGNUM (1)
|
#define SP_REGNUM (1)
|
#define FP_REGNUM (2)
|
#define FP_REGNUM (2)
|
#define A0_REGNUM (3)
|
#define A0_REGNUM (3)
|
#define A5_REGNUM (8)
|
#define A5_REGNUM (8)
|