/[qemu]/qemu/gdbstub.c
ViewVC logotype

Diff of /qemu/gdbstub.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.33 by bellard, Sat Nov 26 10:38:38 2005 UTC revision 1.34 by bellard, Mon Dec 5 19:55:19 2005 UTC
# Line 421  static void cpu_gdb_write_registers(CPUS Line 421  static void cpu_gdb_write_registers(CPUS
421      ptr += 8 * 12 + 4;      ptr += 8 * 12 + 4;
422      cpsr_write (env, tswapl(*(uint32_t *)ptr), 0xffffffff);      cpsr_write (env, tswapl(*(uint32_t *)ptr), 0xffffffff);
423  }  }
424    #elif defined (TARGET_MIPS)
425    static int cpu_gdb_read_registers(CPUState *env, uint8_t *mem_buf)
426    {
427        int i;
428        uint8_t *ptr;
429    
430        ptr = mem_buf;
431        for (i = 0; i < 32; i++)
432          {
433            *(uint32_t *)ptr = tswapl(env->gpr[i]);
434            ptr += 4;
435          }
436    
437        *(uint32_t *)ptr = tswapl(env->CP0_Status);
438        ptr += 4;
439    
440        *(uint32_t *)ptr = tswapl(env->LO);
441        ptr += 4;
442    
443        *(uint32_t *)ptr = tswapl(env->HI);
444        ptr += 4;
445    
446        *(uint32_t *)ptr = tswapl(env->CP0_BadVAddr);
447        ptr += 4;
448    
449        *(uint32_t *)ptr = tswapl(env->CP0_Cause);
450        ptr += 4;
451    
452        *(uint32_t *)ptr = tswapl(env->PC);
453        ptr += 4;
454    
455        /* 32 FP registers, fsr, fir, fp.  Not yet implemented.  */
456    
457        return ptr - mem_buf;
458    }
459    
460    static void cpu_gdb_write_registers(CPUState *env, uint8_t *mem_buf, int size)
461    {
462        int i;
463        uint8_t *ptr;
464    
465        ptr = mem_buf;
466        for (i = 0; i < 32; i++)
467          {
468            env->gpr[i] = tswapl(*(uint32_t *)ptr);
469            ptr += 4;
470          }
471    
472        env->CP0_Status = tswapl(*(uint32_t *)ptr);
473        ptr += 4;
474    
475        env->LO = tswapl(*(uint32_t *)ptr);
476        ptr += 4;
477    
478        env->HI = tswapl(*(uint32_t *)ptr);
479        ptr += 4;
480    
481        env->CP0_BadVAddr = tswapl(*(uint32_t *)ptr);
482        ptr += 4;
483    
484        env->CP0_Cause = tswapl(*(uint32_t *)ptr);
485        ptr += 4;
486    
487        env->PC = tswapl(*(uint32_t *)ptr);
488        ptr += 4;
489    }
490  #else  #else
491  static int cpu_gdb_read_registers(CPUState *env, uint8_t *mem_buf)  static int cpu_gdb_read_registers(CPUState *env, uint8_t *mem_buf)
492  {  {
# Line 511  static int gdb_handle_packet(GDBState *s Line 577  static int gdb_handle_packet(GDBState *s
577          if (*p == ',')          if (*p == ',')
578              p++;              p++;
579          len = strtoul(p, NULL, 16);          len = strtoul(p, NULL, 16);
580          if (cpu_memory_rw_debug(env, addr, mem_buf, len, 0) != 0)          if (cpu_memory_rw_debug(env, addr, mem_buf, len, 0) != 0) {
581              memset(mem_buf, 0, len);              put_packet (s, "E14");
582          memtohex(buf, mem_buf, len);          } else {
583          put_packet(s, buf);              memtohex(buf, mem_buf, len);
584                put_packet(s, buf);
585            }
586          break;          break;
587      case 'M':      case 'M':
588          addr = strtoul(p, (char **)&p, 16);          addr = strtoul(p, (char **)&p, 16);

Legend:
Removed from v.1.33  
changed lines
  Added in v.1.34

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26