if (reg_nr >= tdep->ppc_gp0_regnum && reg_nr <= tdep->ppc_gplast_regnum) { base_regnum = reg_nr - tdep->ppc_gp0_regnum + tdep->ppc_ev0_regnum;  if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG) offset = 4;   regcache_raw_read (regcache, base_regnum, temp_buffer);   memcpy (temp_buffer + offset, (char *) buffer, 4); regcache_raw_write (regcache, base_regnum, temp_buffer); }
gdb_assert (regcache_arch == gdbarch);  if (tdep->ppc_ev0_regnum <= reg_nr && reg_nr < tdep->ppc_ev0_regnum + ppc_num_gprs) e500_move_ev_register ((void (*) (struct regcache *, int, void *)) regcache_raw_write, regcache, reg_nr, (void *) buffer); else internal_error (__FILE__, __LINE__, "e500_pseudo_register_read: " "called on unexpected register '%s' (%d)", gdbarch_register_name (gdbarch, reg_nr), reg_nr);
e500_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache,			    int reg_nr, const void *buffer){  int base_regnum;  int offset = 0;  char temp_buffer[MAX_REGISTER_SIZE];  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);   if (reg_nr >= tdep->ppc_gp0_regnum       && reg_nr <= tdep->ppc_gplast_regnum)    {      base_regnum = reg_nr - tdep->ppc_gp0_regnum + tdep->ppc_ev0_regnum;      /* reg_nr is 32 bit here, and base_regnum is 64 bits.  */      if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)	offset = 4;      /* Let's read the value of the base register into a temporary	 buffer, so that overwriting the last four bytes with the new	 value of the pseudo will leave the upper 4 bytes unchanged.  */      regcache_raw_read (regcache, base_regnum, temp_buffer);      /* Write as an 8 byte quantity.  */      memcpy (temp_buffer + offset, (char *) buffer, 4);      regcache_raw_write (regcache, base_regnum, temp_buffer);    }}