supply_register (r, context_offset);
regcache_raw_supply (current_regcache, r, context_offset);
do_child_fetch_inferior_registers (int r){  char *context_offset = ((char *) &current_thread->context) + mappings[r];  long l;  if (!current_thread)    return;	/* Windows sometimes uses a non-existent thread id in its		   events */  if (current_thread->reload_context)    {      thread_info *th = current_thread;      th->context.ContextFlags = CONTEXT_DEBUGGER_DR;      GetThreadContext (th->h, &th->context);      /* Copy dr values from that thread.  */      dr[0] = th->context.Dr0;      dr[1] = th->context.Dr1;      dr[2] = th->context.Dr2;      dr[3] = th->context.Dr3;      dr[6] = th->context.Dr6;      dr[7] = th->context.Dr7;      current_thread->reload_context = 0;    }#define I387_ST0_REGNUM I386_ST0_REGNUM  if (r == I387_FISEG_REGNUM)    {      l = *((long *) context_offset) & 0xffff;      supply_register (r, (char *) &l);    }  else if (r == I387_FOP_REGNUM)    {      l = (*((long *) context_offset) >> 16) & ((1 << 11) - 1);      supply_register (r, (char *) &l);    }  else if (r >= 0)    supply_register (r, context_offset);  else    {      for (r = 0; r < NUM_REGS; r++)	do_child_fetch_inferior_registers (r);    }#undef I387_ST0_REGNUM}