static uint64_t mcf_intc_read(void *opaque, target_phys_addr_t addr,

                              unsigned size)

{

    int offset;

    mcf_intc_state *s = (mcf_intc_state *)opaque;

    offset = addr & 0xff;

    if (offset >= 0x40 && offset < 0x80) {

        return s->icr[offset - 0x40];

    }

    switch (offset) {

    case 0x00:

        return (uint32_t)(s->ipr >> 32);

    case 0x04:

        return (uint32_t)s->ipr;

    case 0x08:

        return (uint32_t)(s->imr >> 32);

    case 0x0c:

        return (uint32_t)s->imr;

    case 0x10:

        return (uint32_t)(s->ifr >> 32);

    case 0x14:

        return (uint32_t)s->ifr;

    case 0xe0: /* SWIACK.  */

        return s->active_vector;

    case 0xe1: case 0xe2: case 0xe3: case 0xe4:

    case 0xe5: case 0xe6: case 0xe7:

        /* LnIACK */

        hw_error("mcf_intc_read: LnIACK not implemented\n");

    default:

        return 0;

    }

}

static uint64_t mcf_intc_read(void *opaque, target_phys_addr_t addr,

                              unsigned size)

{

    int offset;

    mcf_intc_state *s = (mcf_intc_state *)opaque;

    offset = addr & 0xff;

    if (offset >= 0x40 && offset < 0x80) {

        return s->icr[offset - 0x40];

    }

    switch (offset) {

    case 0x00:

        return (uint32_t)(s->ipr >> 32);

    case 0x04:

        return (uint32_t)s->ipr;

    case 0x08:

        return (uint32_t)(s->imr >> 32);

    case 0x0c:

        return (uint32_t)s->imr;

    case 0x10:

        return (uint32_t)(s->ifr >> 32);

    case 0x14:

        return (uint32_t)s->ifr;

    case 0xe0: 

        return s->active_vector;

    case 0xe1: case 0xe2: case 0xe3: case 0xe4:

    case 0xe5: case 0xe6: case 0xe7:

        

        hw_error("mcf_intc_read: LnIACK not implemented\n");

    default:

        return 0;

    }

}

static uint64_t FUNC_0(void *opaque, target_phys_addr_t addr,

                              unsigned size)

{

    int VAR_0;

    mcf_intc_state *s = (mcf_intc_state *)opaque;

    VAR_0 = addr & 0xff;

    if (VAR_0 >= 0x40 && VAR_0 < 0x80) {

        return s->icr[VAR_0 - 0x40];

    }

    switch (VAR_0) {

    case 0x00:

        return (uint32_t)(s->ipr >> 32);

    case 0x04:

        return (uint32_t)s->ipr;

    case 0x08:

        return (uint32_t)(s->imr >> 32);

    case 0x0c:

        return (uint32_t)s->imr;

    case 0x10:

        return (uint32_t)(s->ifr >> 32);

    case 0x14:

        return (uint32_t)s->ifr;

    case 0xe0: 

        return s->active_vector;

    case 0xe1: case 0xe2: case 0xe3: case 0xe4:

    case 0xe5: case 0xe6: case 0xe7:

        

        hw_error("FUNC_0: LnIACK not implemented\n");

    default:

        return 0;

    }

}

static uint64_t FUNC_0(void *opaque, target_phys_addr_t addr,
unsigned size)
{ int VAR_0; mcf_intc_state *s = (mcf_intc_state *)opaque; VAR_0 = addr & 0xff; if (VAR_0 >= 0x40 && VAR_0 < 0x80) { return s->icr[VAR_0 - 0x40]; } switch (VAR_0) { case 0x00:
return (uint32_t)(s->ipr >> 32); case 0x04:
return (uint32_t)s->ipr; case 0x08:
return (uint32_t)(s->imr >> 32); case 0x0c:
return (uint32_t)s->imr; case 0x10:
return (uint32_t)(s->ifr >> 32); case 0x14:
return (uint32_t)s->ifr; case 0xe0:
return s->active_vector; case 0xe1: case 0xe2: case 0xe3: case 0xe4:
case 0xe5: case 0xe6: case 0xe7:
hw_error("FUNC_0: LnIACK not implemented\n"); default:
return 0; } }