Addressing functions of the epiphany 3 architecture. More...
Macros | |
#define | mc_addr_mask_id(addr) (((mc_addr_t)(addr)) & mc_glb_id_mask) |
Masks the id part of 'addr'. | |
#define | mc_addr_mask_ad(addr) (((mc_addr_t)(addr)) & mc_glb_addr_mask) |
Masks the displacement (local-addr) part of 'addr'. | |
#define | mc_addr_has_id(addr) mc_addr_mask_id(addr) |
True 'addr' has 'id' (not zero id) | |
#define | mc_addr_get_id(addr) ((mc_workeru_id_t)(mc_addr_mask_id(addr) >> mc_glb_addr_sz)) |
Returns the id part of 'addr' as mc_workeru_id_t value. | |
#define | mc_addr_set_id(id, addr) ((mc_addr_t)((((mc_addr_t)(id)) << mc_glb_addr_sz) | mc_addr_mask_ad(addr))) |
Sets the id part of 'addr' with 'id'. | |
#define | mc_addr_get_disp(addr) ((mc_addr_t)mc_addr_mask_ad(addr)) |
Returns the displacement (local-addr) part of 'addr' as mc_addr_t value. | |
#define | mc_addr_set_disp(disp, addr) ((mc_addr_t)(mc_addr_mask_id(addr) | mc_addr_mask_ad(disp))) |
Sets the displacement (local-addr) part of 'addr' with 'disp'. | |
#define | mc_addr_same_id(addr1, addr2) (mc_addr_mask_id(addr1) == mc_addr_mask_id(addr2)) |
True if 'addr1' and 'addr2' have the same id part value. | |
Typedefs | |
typedef uint32_t | mc_addr_t |
Type for epiphany addresses. | |
typedef uint16_t | mc_workeru_id_t |
Type for workeru ids. | |
typedef uint16_t | mc_workeru_co_t |
Type for workeru coordinates (row and col) | |
typedef uint16_t | mc_workeru_nn_t |
Type for workeru numbers (starts in 0) | |
Addressing functions of the epiphany 3 architecture.