Exemplo n.º 1
0
static void
copy_reg(unsigned reg, frame_state *udata, frame_state *target_udata)
{
    word_type *preg = get_reg_addr (reg, udata, ((void *)0) );
    word_type *ptreg = get_reg_addr (reg, target_udata, ((void *)0) );

    memcpy(ptreg, preg, __builtin_dwarf_reg_size (reg));
}
Exemplo n.º 2
0
static void
copy_reg (unsigned int reg, frame_state *udata,	 /* {{ dg-error "expected" }} */
	  frame_state *target_udata)	
{  
  word_type *preg = get_reg_addr (reg, udata, 0);	
  word_type *ptreg = get_reg_addr (reg, target_udata, 0); 
   
  memcpy (ptreg, preg, __builtin_dwarf_reg_size (reg));
}
Exemplo n.º 3
0
/*
 * Get contents of register REGNO in task TASK.
 */
static long
get_reg(struct task_struct * task, unsigned long regno)
{
	/* Special hack for fpcr -- combine hardware and software bits.  */
	if (regno == 63) {
		unsigned long fpcr = *get_reg_addr(task, regno);
		unsigned long swcr = task->thread.flags & IEEE_SW_MASK;
		swcr = swcr_update_status(swcr, fpcr);
		return fpcr | swcr;
	}
	return *get_reg_addr(task, regno);
}
Exemplo n.º 4
0
static unsigned long
get_reg(struct task_struct * task, unsigned long regno)
{
	
	if (regno == 63) {
		unsigned long fpcr = *get_reg_addr(task, regno);
		unsigned long swcr
		  = task_thread_info(task)->ieee_state & IEEE_SW_MASK;
		swcr = swcr_update_status(swcr, fpcr);
		return fpcr | swcr;
	}
	return *get_reg_addr(task, regno);
}
Exemplo n.º 5
0
/*
 * Write contents of register REGNO in task TASK.
 */
static int
put_reg(struct task_struct *task, unsigned long regno, long data)
{
	if (regno == 63) {
		task->thread.flags = ((task->thread.flags & ~IEEE_SW_MASK)
				      | (data & IEEE_SW_MASK));
		data = (data & FPCR_DYN_MASK) | ieee_swcr_to_fpcr(data);
	}
	*get_reg_addr(task, regno) = data;
	return 0;
}
Exemplo n.º 6
0
static __inline__  void
put_reg(unsigned reg, void *val, frame_state *udata)
{
    *get_reg_addr (reg, udata, ((void *)0) ) = (word_type)(ptr_type) val;
}
Exemplo n.º 7
0
static __inline__  void *
get_reg(unsigned reg, frame_state *udata, frame_state *sub_udata)
{
    return (void *)(ptr_type) *get_reg_addr (reg, udata, sub_udata);
}