-static void rts_map(void) {
- static const struct {
- ir_entity_ptr *ent; /**< address of the rts entity */
- i_mapper_func func; /**< mapper function. */
- } mapper[] = {
- /* integer */
- { &rts_entities[rts_abs], i_mapper_abs },
- { &rts_entities[rts_labs], i_mapper_abs },
- { &rts_entities[rts_llabs], i_mapper_abs },
- { &rts_entities[rts_imaxabs], i_mapper_abs },
-
- /* double -> double */
- { &rts_entities[rts_fabs], i_mapper_abs },
- { &rts_entities[rts_sqrt], i_mapper_sqrt },
- { &rts_entities[rts_cbrt], i_mapper_cbrt },
- { &rts_entities[rts_pow], i_mapper_pow },
- { &rts_entities[rts_exp], i_mapper_exp },
- { &rts_entities[rts_exp2], i_mapper_exp },
- { &rts_entities[rts_exp10], i_mapper_exp },
- { &rts_entities[rts_log], i_mapper_log },
- { &rts_entities[rts_log2], i_mapper_log2 },
- { &rts_entities[rts_log10], i_mapper_log10 },
- { &rts_entities[rts_sin], i_mapper_sin },
- { &rts_entities[rts_cos], i_mapper_cos },
- { &rts_entities[rts_tan], i_mapper_tan },
- { &rts_entities[rts_asin], i_mapper_asin },
- { &rts_entities[rts_acos], i_mapper_acos },
- { &rts_entities[rts_atan], i_mapper_atan },
- { &rts_entities[rts_sinh], i_mapper_sinh },
- { &rts_entities[rts_cosh], i_mapper_cosh },
- { &rts_entities[rts_tanh], i_mapper_tanh },
-
- /* float -> float */
- { &rts_entities[rts_fabsf], i_mapper_abs },
- { &rts_entities[rts_sqrtf], i_mapper_sqrt },
- { &rts_entities[rts_cbrtf], i_mapper_cbrt },
- { &rts_entities[rts_powf], i_mapper_pow },
- { &rts_entities[rts_expf], i_mapper_exp },
- { &rts_entities[rts_exp2f], i_mapper_exp },
- { &rts_entities[rts_exp10f], i_mapper_exp },
- { &rts_entities[rts_logf], i_mapper_log },
- { &rts_entities[rts_log2f], i_mapper_log2 },
- { &rts_entities[rts_log10f], i_mapper_log10 },
- { &rts_entities[rts_sinf], i_mapper_sin },
- { &rts_entities[rts_cosf], i_mapper_cos },
- { &rts_entities[rts_tanf], i_mapper_tan },
- { &rts_entities[rts_asinf], i_mapper_asin },
- { &rts_entities[rts_acosf], i_mapper_acos },
- { &rts_entities[rts_atanf], i_mapper_atan },
- { &rts_entities[rts_sinhf], i_mapper_sinh },
- { &rts_entities[rts_coshf], i_mapper_cosh },
- { &rts_entities[rts_tanhf], i_mapper_tanh },
-
- /* long double -> long double */
- { &rts_entities[rts_fabsl], i_mapper_abs },
- { &rts_entities[rts_sqrtl], i_mapper_sqrt },
- { &rts_entities[rts_cbrtl], i_mapper_cbrt },
- { &rts_entities[rts_powl], i_mapper_pow },
- { &rts_entities[rts_expl], i_mapper_exp },
- { &rts_entities[rts_exp2l], i_mapper_exp },
- { &rts_entities[rts_exp10l], i_mapper_exp },
- { &rts_entities[rts_logl], i_mapper_log },
- { &rts_entities[rts_log2l], i_mapper_log2 },
- { &rts_entities[rts_log10l], i_mapper_log10 },
- { &rts_entities[rts_sinl], i_mapper_sin },
- { &rts_entities[rts_cosl], i_mapper_cos },
- { &rts_entities[rts_tanl], i_mapper_tan },
- { &rts_entities[rts_asinl], i_mapper_asin },
- { &rts_entities[rts_acosl], i_mapper_acos },
- { &rts_entities[rts_atanl], i_mapper_atan },
- { &rts_entities[rts_sinhl], i_mapper_sinh },
- { &rts_entities[rts_coshl], i_mapper_cosh },
- { &rts_entities[rts_tanhl], i_mapper_tanh },
-
- /* string */
- { &rts_entities[rts_memcpy], i_mapper_memcpy },
- { &rts_entities[rts_memset], i_mapper_memset },
- { &rts_entities[rts_strcmp], i_mapper_strcmp },
- { &rts_entities[rts_strncmp], i_mapper_strncmp },
- { &rts_entities[rts_strlen], i_mapper_strlen }
- };
- i_record rec[sizeof(mapper)/sizeof(mapper[0])];
- unsigned i, n_map;
-
- for (i = n_map = 0; i < sizeof(mapper)/sizeof(mapper[0]); ++i)
- if (*mapper[i].ent != NULL) {
- rec[n_map].i_call.kind = INTRINSIC_CALL;
- rec[n_map].i_call.i_ent = *mapper[i].ent;
- rec[n_map].i_call.i_mapper = mapper[i].func;
- rec[n_map].i_call.ctx = NULL;
- rec[n_map].i_call.link = NULL;
- ++n_map;
- } /* if */
- if (n_map > 0)
- lower_intrinsics(rec, n_map, /* part_block_used=*/0);
-} /* rts_map */
+static void rts_map(void)
+{
+ static const struct {
+ ir_entity_ptr *ent; /**< address of the rts entity */
+ i_mapper_func func; /**< mapper function. */
+ } mapper[] = {
+ /* integer */
+ { &rts_entities[rts_abs], i_mapper_abs },
+ { &rts_entities[rts_labs], i_mapper_abs },
+ { &rts_entities[rts_llabs], i_mapper_abs },
+ { &rts_entities[rts_imaxabs], i_mapper_abs },
+
+ /* double -> double */
+ { &rts_entities[rts_fabs], i_mapper_abs },
+ { &rts_entities[rts_sqrt], i_mapper_sqrt },
+ { &rts_entities[rts_cbrt], i_mapper_cbrt },
+ { &rts_entities[rts_pow], i_mapper_pow },
+ { &rts_entities[rts_exp], i_mapper_exp },
+ { &rts_entities[rts_exp2], i_mapper_exp },
+ { &rts_entities[rts_exp10], i_mapper_exp },
+ { &rts_entities[rts_log], i_mapper_log },
+ { &rts_entities[rts_log2], i_mapper_log2 },
+ { &rts_entities[rts_log10], i_mapper_log10 },
+ { &rts_entities[rts_sin], i_mapper_sin },
+ { &rts_entities[rts_cos], i_mapper_cos },
+ { &rts_entities[rts_tan], i_mapper_tan },
+ { &rts_entities[rts_asin], i_mapper_asin },
+ { &rts_entities[rts_acos], i_mapper_acos },
+ { &rts_entities[rts_atan], i_mapper_atan },
+ { &rts_entities[rts_sinh], i_mapper_sinh },
+ { &rts_entities[rts_cosh], i_mapper_cosh },
+ { &rts_entities[rts_tanh], i_mapper_tanh },
+
+ /* float -> float */
+ { &rts_entities[rts_fabsf], i_mapper_abs },
+ { &rts_entities[rts_sqrtf], i_mapper_sqrt },
+ { &rts_entities[rts_cbrtf], i_mapper_cbrt },
+ { &rts_entities[rts_powf], i_mapper_pow },
+ { &rts_entities[rts_expf], i_mapper_exp },
+ { &rts_entities[rts_exp2f], i_mapper_exp },
+ { &rts_entities[rts_exp10f], i_mapper_exp },
+ { &rts_entities[rts_logf], i_mapper_log },
+ { &rts_entities[rts_log2f], i_mapper_log2 },
+ { &rts_entities[rts_log10f], i_mapper_log10 },
+ { &rts_entities[rts_sinf], i_mapper_sin },
+ { &rts_entities[rts_cosf], i_mapper_cos },
+ { &rts_entities[rts_tanf], i_mapper_tan },
+ { &rts_entities[rts_asinf], i_mapper_asin },
+ { &rts_entities[rts_acosf], i_mapper_acos },
+ { &rts_entities[rts_atanf], i_mapper_atan },
+ { &rts_entities[rts_sinhf], i_mapper_sinh },
+ { &rts_entities[rts_coshf], i_mapper_cosh },
+ { &rts_entities[rts_tanhf], i_mapper_tanh },
+
+ /* long double -> long double */
+ { &rts_entities[rts_fabsl], i_mapper_abs },
+ { &rts_entities[rts_sqrtl], i_mapper_sqrt },
+ { &rts_entities[rts_cbrtl], i_mapper_cbrt },
+ { &rts_entities[rts_powl], i_mapper_pow },
+ { &rts_entities[rts_expl], i_mapper_exp },
+ { &rts_entities[rts_exp2l], i_mapper_exp },
+ { &rts_entities[rts_exp10l], i_mapper_exp },
+ { &rts_entities[rts_logl], i_mapper_log },
+ { &rts_entities[rts_log2l], i_mapper_log2 },
+ { &rts_entities[rts_log10l], i_mapper_log10 },
+ { &rts_entities[rts_sinl], i_mapper_sin },
+ { &rts_entities[rts_cosl], i_mapper_cos },
+ { &rts_entities[rts_tanl], i_mapper_tan },
+ { &rts_entities[rts_asinl], i_mapper_asin },
+ { &rts_entities[rts_acosl], i_mapper_acos },
+ { &rts_entities[rts_atanl], i_mapper_atan },
+ { &rts_entities[rts_sinhl], i_mapper_sinh },
+ { &rts_entities[rts_coshl], i_mapper_cosh },
+ { &rts_entities[rts_tanhl], i_mapper_tanh },
+
+ /* string */
+ { &rts_entities[rts_strcmp], i_mapper_strcmp },
+ { &rts_entities[rts_strncmp], i_mapper_strncmp },
+ { &rts_entities[rts_strcpy], i_mapper_strcpy },
+ { &rts_entities[rts_strlen], i_mapper_strlen },
+ { &rts_entities[rts_memcpy], i_mapper_memcpy },
+ { &rts_entities[rts_mempcpy], i_mapper_mempcpy },
+ { &rts_entities[rts_memmove], i_mapper_memmove },
+ { &rts_entities[rts_memset], i_mapper_memset },
+ { &rts_entities[rts_memcmp], i_mapper_memcmp }
+ };
+ i_record rec[sizeof(mapper)/sizeof(mapper[0])];
+ unsigned i, n_map;
+
+ for (i = n_map = 0; i < sizeof(mapper)/sizeof(mapper[0]); ++i) {
+ if (*mapper[i].ent != NULL) {
+ rec[n_map].i_call.kind = INTRINSIC_CALL;
+ rec[n_map].i_call.i_ent = *mapper[i].ent;
+ rec[n_map].i_call.i_mapper = mapper[i].func;
+ rec[n_map].i_call.ctx = NULL;
+ rec[n_map].i_call.link = NULL;
+ ++n_map;
+ }
+ }
+
+ if (n_map > 0)
+ lower_intrinsics(rec, n_map, /* part_block_used=*/0);
+}