19d4c9946SPeter Maydell #include "qemu/osdep.h" 20d09e41aSPaolo Bonzini #include "hw/sh4/sh.h" 347b43a1fSPaolo Bonzini #include "sh7750_regs.h" 447b43a1fSPaolo Bonzini #include "sh7750_regnames.h" 57a2771d1SPaolo Bonzini 67a2771d1SPaolo Bonzini #define REGNAME(r) {r, #r}, 77a2771d1SPaolo Bonzini 87a2771d1SPaolo Bonzini typedef struct { 97a2771d1SPaolo Bonzini uint32_t regaddr; 107a2771d1SPaolo Bonzini const char *regname; 117a2771d1SPaolo Bonzini } regname_t; 127a2771d1SPaolo Bonzini 137a2771d1SPaolo Bonzini static regname_t regnames[] = { 147a2771d1SPaolo Bonzini REGNAME(SH7750_PTEH_A7) 157a2771d1SPaolo Bonzini REGNAME(SH7750_PTEL_A7) 167a2771d1SPaolo Bonzini REGNAME(SH7750_PTEA_A7) 177a2771d1SPaolo Bonzini REGNAME(SH7750_TTB_A7) 187a2771d1SPaolo Bonzini REGNAME(SH7750_TEA_A7) 197a2771d1SPaolo Bonzini REGNAME(SH7750_MMUCR_A7) 207a2771d1SPaolo Bonzini REGNAME(SH7750_CCR_A7) 217a2771d1SPaolo Bonzini REGNAME(SH7750_QACR0_A7) 227a2771d1SPaolo Bonzini REGNAME(SH7750_QACR1_A7) 237a2771d1SPaolo Bonzini REGNAME(SH7750_TRA_A7) 247a2771d1SPaolo Bonzini REGNAME(SH7750_EXPEVT_A7) 257a2771d1SPaolo Bonzini REGNAME(SH7750_INTEVT_A7) 267a2771d1SPaolo Bonzini REGNAME(SH7750_STBCR_A7) 277a2771d1SPaolo Bonzini REGNAME(SH7750_STBCR2_A7) 287a2771d1SPaolo Bonzini REGNAME(SH7750_FRQCR_A7) 297a2771d1SPaolo Bonzini REGNAME(SH7750_WTCNT_A7) 307a2771d1SPaolo Bonzini REGNAME(SH7750_WTCSR_A7) 317a2771d1SPaolo Bonzini REGNAME(SH7750_R64CNT_A7) 327a2771d1SPaolo Bonzini REGNAME(SH7750_RSECCNT_A7) 337a2771d1SPaolo Bonzini REGNAME(SH7750_RMINCNT_A7) 347a2771d1SPaolo Bonzini REGNAME(SH7750_RHRCNT_A7) 357a2771d1SPaolo Bonzini REGNAME(SH7750_RWKCNT_A7) 367a2771d1SPaolo Bonzini REGNAME(SH7750_RDAYCNT_A7) 377a2771d1SPaolo Bonzini REGNAME(SH7750_RMONCNT_A7) 387a2771d1SPaolo Bonzini REGNAME(SH7750_RYRCNT_A7) 397a2771d1SPaolo Bonzini REGNAME(SH7750_RSECAR_A7) 407a2771d1SPaolo Bonzini REGNAME(SH7750_RMINAR_A7) 417a2771d1SPaolo Bonzini REGNAME(SH7750_RHRAR_A7) 427a2771d1SPaolo Bonzini REGNAME(SH7750_RWKAR_A7) 437a2771d1SPaolo Bonzini REGNAME(SH7750_RDAYAR_A7) 447a2771d1SPaolo Bonzini REGNAME(SH7750_RMONAR_A7) 457a2771d1SPaolo Bonzini REGNAME(SH7750_RCR1_A7) 467a2771d1SPaolo Bonzini REGNAME(SH7750_RCR2_A7) 477a2771d1SPaolo Bonzini REGNAME(SH7750_BCR1_A7) 487a2771d1SPaolo Bonzini REGNAME(SH7750_BCR2_A7) 497a2771d1SPaolo Bonzini REGNAME(SH7750_WCR1_A7) 507a2771d1SPaolo Bonzini REGNAME(SH7750_WCR2_A7) 517a2771d1SPaolo Bonzini REGNAME(SH7750_WCR3_A7) 527a2771d1SPaolo Bonzini REGNAME(SH7750_MCR_A7) 537a2771d1SPaolo Bonzini REGNAME(SH7750_PCR_A7) 547a2771d1SPaolo Bonzini REGNAME(SH7750_RTCSR_A7) 557a2771d1SPaolo Bonzini REGNAME(SH7750_RTCNT_A7) 567a2771d1SPaolo Bonzini REGNAME(SH7750_RTCOR_A7) 577a2771d1SPaolo Bonzini REGNAME(SH7750_RFCR_A7) 587a2771d1SPaolo Bonzini REGNAME(SH7750_SAR0_A7) 597a2771d1SPaolo Bonzini REGNAME(SH7750_SAR1_A7) 607a2771d1SPaolo Bonzini REGNAME(SH7750_SAR2_A7) 617a2771d1SPaolo Bonzini REGNAME(SH7750_SAR3_A7) 627a2771d1SPaolo Bonzini REGNAME(SH7750_DAR0_A7) 637a2771d1SPaolo Bonzini REGNAME(SH7750_DAR1_A7) 647a2771d1SPaolo Bonzini REGNAME(SH7750_DAR2_A7) 657a2771d1SPaolo Bonzini REGNAME(SH7750_DAR3_A7) 667a2771d1SPaolo Bonzini REGNAME(SH7750_DMATCR0_A7) 677a2771d1SPaolo Bonzini REGNAME(SH7750_DMATCR1_A7) 687a2771d1SPaolo Bonzini REGNAME(SH7750_DMATCR2_A7) 697a2771d1SPaolo Bonzini REGNAME(SH7750_DMATCR3_A7) 707a2771d1SPaolo Bonzini REGNAME(SH7750_CHCR0_A7) 717a2771d1SPaolo Bonzini REGNAME(SH7750_CHCR1_A7) 727a2771d1SPaolo Bonzini REGNAME(SH7750_CHCR2_A7) 737a2771d1SPaolo Bonzini REGNAME(SH7750_CHCR3_A7) 747a2771d1SPaolo Bonzini REGNAME(SH7750_DMAOR_A7) 757a2771d1SPaolo Bonzini REGNAME(SH7750_PCTRA_A7) 767a2771d1SPaolo Bonzini REGNAME(SH7750_PDTRA_A7) 777a2771d1SPaolo Bonzini REGNAME(SH7750_PCTRB_A7) 787a2771d1SPaolo Bonzini REGNAME(SH7750_PDTRB_A7) 797a2771d1SPaolo Bonzini REGNAME(SH7750_GPIOIC_A7) 807a2771d1SPaolo Bonzini REGNAME(SH7750_ICR_A7) 817a2771d1SPaolo Bonzini REGNAME(SH7750_BCR3_A7) 827a2771d1SPaolo Bonzini REGNAME(SH7750_BCR4_A7) 837a2771d1SPaolo Bonzini REGNAME(SH7750_SDMR2_A7) 84f94bff13SBALATON Zoltan REGNAME(SH7750_SDMR3_A7) 85f94bff13SBALATON Zoltan { (uint32_t)-1, NULL } 867a2771d1SPaolo Bonzini }; 877a2771d1SPaolo Bonzini regname(uint32_t addr)887a2771d1SPaolo Bonziniconst char *regname(uint32_t addr) 897a2771d1SPaolo Bonzini { 907a2771d1SPaolo Bonzini unsigned int i; 917a2771d1SPaolo Bonzini 927a2771d1SPaolo Bonzini for (i = 0; regnames[i].regaddr != (uint32_t)-1; i++) { 93*ac3c9e74SBALATON Zoltan if (regnames[i].regaddr == addr) { 947a2771d1SPaolo Bonzini return regnames[i].regname; 957a2771d1SPaolo Bonzini } 96*ac3c9e74SBALATON Zoltan } 977a2771d1SPaolo Bonzini 987a2771d1SPaolo Bonzini return "<unknown reg>"; 997a2771d1SPaolo Bonzini } 100