supply_register (regno, buf);
regcache_raw_supply (current_regcache, regnum, buf);
fetch_register (int regno){  /* This isn't really an address.  But ptrace thinks of it as one.  */  CORE_ADDR regaddr;  char mess[128];		/* For messages */  int i;  unsigned int offset;		/* Offset of registers within the u area.  */  char buf[MAX_REGISTER_SIZE];  int tid;  if (CANNOT_FETCH_REGISTER (regno))    {      memset (buf, '\0', DEPRECATED_REGISTER_RAW_SIZE (regno));	/* Supply zeroes */      supply_register (regno, buf);      return;    }  /* Overload thread id onto process id */  if ((tid = TIDGET (inferior_ptid)) == 0)    tid = PIDGET (inferior_ptid);	/* no thread id, just use process id */  offset = U_REGS_OFFSET;  regaddr = register_addr (regno, offset);  for (i = 0; i < DEPRECATED_REGISTER_RAW_SIZE (regno); i += sizeof (PTRACE_XFER_TYPE))    {      errno = 0;      *(PTRACE_XFER_TYPE *) & buf[i] = ptrace (PT_READ_U, tid,					       (PTRACE_ARG3_TYPE) regaddr, 0);      regaddr += sizeof (PTRACE_XFER_TYPE);      if (errno != 0)	{	  sprintf (mess, "reading register %s (#%d)", 		   REGISTER_NAME (regno), regno);	  perror_with_name (mess);	}    }  supply_register (regno, buf);}