#include "qemu/osdep.h"
#include "hw/sh4/sh.h"
#include "sh7750_regs.h"
#include "sh7750_regnames.h"

#define REGNAME(r) {r, #r},

typedef struct {
    uint32_t regaddr;
    const char *regname;
} regname_t;

static regname_t regnames[] = {
    REGNAME(SH7750_PTEH_A7)
	REGNAME(SH7750_PTEL_A7)
	REGNAME(SH7750_PTEA_A7)
	REGNAME(SH7750_TTB_A7)
	REGNAME(SH7750_TEA_A7)
	REGNAME(SH7750_MMUCR_A7)
	REGNAME(SH7750_CCR_A7)
	REGNAME(SH7750_QACR0_A7)
	REGNAME(SH7750_QACR1_A7)
	REGNAME(SH7750_TRA_A7)
	REGNAME(SH7750_EXPEVT_A7)
	REGNAME(SH7750_INTEVT_A7)
	REGNAME(SH7750_STBCR_A7)
	REGNAME(SH7750_STBCR2_A7)
	REGNAME(SH7750_FRQCR_A7)
	REGNAME(SH7750_WTCNT_A7)
	REGNAME(SH7750_WTCSR_A7)
	REGNAME(SH7750_R64CNT_A7)
	REGNAME(SH7750_RSECCNT_A7)
	REGNAME(SH7750_RMINCNT_A7)
	REGNAME(SH7750_RHRCNT_A7)
	REGNAME(SH7750_RWKCNT_A7)
	REGNAME(SH7750_RDAYCNT_A7)
	REGNAME(SH7750_RMONCNT_A7)
	REGNAME(SH7750_RYRCNT_A7)
	REGNAME(SH7750_RSECAR_A7)
	REGNAME(SH7750_RMINAR_A7)
	REGNAME(SH7750_RHRAR_A7)
	REGNAME(SH7750_RWKAR_A7)
	REGNAME(SH7750_RDAYAR_A7)
	REGNAME(SH7750_RMONAR_A7)
	REGNAME(SH7750_RCR1_A7)
	REGNAME(SH7750_RCR2_A7)
	REGNAME(SH7750_BCR1_A7)
	REGNAME(SH7750_BCR2_A7)
	REGNAME(SH7750_WCR1_A7)
	REGNAME(SH7750_WCR2_A7)
	REGNAME(SH7750_WCR3_A7)
	REGNAME(SH7750_MCR_A7)
	REGNAME(SH7750_PCR_A7)
	REGNAME(SH7750_RTCSR_A7)
	REGNAME(SH7750_RTCNT_A7)
	REGNAME(SH7750_RTCOR_A7)
	REGNAME(SH7750_RFCR_A7)
	REGNAME(SH7750_SAR0_A7)
	REGNAME(SH7750_SAR1_A7)
	REGNAME(SH7750_SAR2_A7)
	REGNAME(SH7750_SAR3_A7)
	REGNAME(SH7750_DAR0_A7)
	REGNAME(SH7750_DAR1_A7)
	REGNAME(SH7750_DAR2_A7)
	REGNAME(SH7750_DAR3_A7)
	REGNAME(SH7750_DMATCR0_A7)
	REGNAME(SH7750_DMATCR1_A7)
	REGNAME(SH7750_DMATCR2_A7)
	REGNAME(SH7750_DMATCR3_A7)
	REGNAME(SH7750_CHCR0_A7)
	REGNAME(SH7750_CHCR1_A7)
	REGNAME(SH7750_CHCR2_A7)
	REGNAME(SH7750_CHCR3_A7)
	REGNAME(SH7750_DMAOR_A7)
	REGNAME(SH7750_PCTRA_A7)
	REGNAME(SH7750_PDTRA_A7)
	REGNAME(SH7750_PCTRB_A7)
	REGNAME(SH7750_PDTRB_A7)
	REGNAME(SH7750_GPIOIC_A7)
	REGNAME(SH7750_ICR_A7)
	REGNAME(SH7750_BCR3_A7)
	REGNAME(SH7750_BCR4_A7)
	REGNAME(SH7750_SDMR2_A7)
	REGNAME(SH7750_SDMR3_A7) {(uint32_t) - 1, NULL}
};

const char *regname(uint32_t addr)
{
    unsigned int i;

    for (i = 0; regnames[i].regaddr != (uint32_t) - 1; i++) {
	if (regnames[i].regaddr == addr)
	    return regnames[i].regname;
    }

    return "<unknown reg>";
}
