macsim/src/arch/rvmpb.c
// Store to memory with check for memory mapped devices
// Maybe replaced by a core specific version with extended memory mapping
Store to memory with check for memory mapped devices
Maybe replaced by a core specific version with extended memory mapping
Store to memory with check for memory mapped devices Maybe replaced by a core specific version with extended memory mapping
static inline int_fast16_t memory_store(node_t *node, unsigned access_type, 
    addr_t addr, uint64_t data)
{
    if (addr>=0xc0000000) {
        if (addr<0xd8000000) {
            rank_t dest = (addr>>16)-0xc000;
            if (dest >= conf_max_rank) 
                fatal("MPB access to unavailable core %xh", node);
            return RVMPB_LATENCY_MPB + generic_memory_store(
                nodes[dest],
                access_type, 
                (addr & 0x0000ffff) + 0xd8000000,
                data);
        } else if (addr>=0xd9000000) {
            fatal("Memory store to address %xh", addr);
        }
    }
    return generic_memory_store(node, access_type, addr, data);
}
static inline int_fast16_t memory_store ( node_t * node , unsigned access_type , addr_t addr , uint64_t data ) { if ( addr >= 0xc0000000 ) { if ( addr < 0xd8000000 ) { rank_t dest = ( addr >> 16 ) - 0xc000 ; if ( dest >= conf_max_rank ) fatal ( " " , node ) ; return RVMPB_LATENCY_MPB + generic_memory_store ( nodes [ dest ] , access_type , ( addr & 0x0000ffff ) + 0xd8000000 , data ) ; } else if ( addr >= 0xd9000000 ) { fatal ( " " , addr ) ; } } return generic_memory_store ( node , access_type , addr , data ) ; }
Store to memory with check for memory mapped devices
Maybe replaced by a core specific version with extended memory mapping
Store to memory with check for memory mapped devices Maybe replaced by a core specific version with extended memory mapping