*/
typedef struct _i_call_record {
enum ikind kind; /**< must be INTRINSIC_CALL */
- entity *i_ent; /**< the entity representing an intrinsic call */
+ ir_entity *i_ent; /**< the entity representing an intrinsic call */
i_mapper_func i_mapper; /**< the mapper function to call */
void *ctx; /**< mapper context */
+ void *link; /**< used in the construction algorithm, must be NULL */
} i_call_record;
/**
ir_op *op; /**< the opcode that must be mapped. */
i_mapper_func i_mapper; /**< the mapper function to call */
void *ctx; /**< mapper context */
+ void *link; /**< used in the construction algorithm, must be NULL */
} i_instr_record;
/**
*
* @return number of found intrinsics.
*/
-unsigned lower_intrinsics(const i_record *list, int length);
+unsigned lower_intrinsics(i_record *list, int length);
/**
* A mapper for the integer absolute value: inttype abs(inttype v).
* A runtime routine description.
*/
typedef struct _runtime_rt {
- entity *ent; /**< The entity representing the runtime routine. */
- ir_mode *mode; /**< The operation mode of the mapped instruction. */
- long mem_proj_nr; /**< if >= 0, create a memory ProjM() */
- long exc_proj_nr; /**< if >= 0, create a exception ProjX() */
- long exc_mem_proj_nr; /**< if >= 0, create a exception memory ProjM() */
- long res_proj_nr; /**< if >= 0, first result projection number */
+ ir_entity *ent; /**< The entity representing the runtime routine. */
+ ir_mode *mode; /**< The operation mode of the mapped instruction. */
+ long mem_proj_nr; /**< if >= 0, create a memory ProjM() */
+ long exc_proj_nr; /**< if >= 0, create a exception ProjX() */
+ long exc_mem_proj_nr; /**< if >= 0, create a exception memory ProjM() */
+ long res_proj_nr; /**< if >= 0, first result projection number */
} runtime_rt;
/**
INTRINSIC_INSTR,
op_Div,
i_mapper_RuntimeCall,
- &rt_Div
+ &rt_Div,
+ NULL
};
@endcode
*
INTRINSIC_INSTR,
op_Conv,
i_mapper_RuntimeCall,
- &rt_Float2Double
+ &rt_Float2Double,
+ NULL
};
@endcode
*/