{
ANNOUNCE();
assert(mode);
- assert(get_mode_sort(mode) == float_number);
- fc_get_nan();
- return get_tarval(fc_get_buffer(), fc_get_buffer_length(), mode);
+ if (get_mode_sort(mode) == float_number) {
+ fc_get_nan();
+ return get_tarval(fc_get_buffer(), fc_get_buffer_length(), mode);
+ }
+ else {
+ assert(0 && "tarval is not floating point");
+ return tarval_bad;
+ }
}
tarval *get_tarval_inf(ir_mode *mode)
{
ANNOUNCE();
assert(mode);
- assert(get_mode_sort(mode) == float_number);
- fc_get_inf();
- return get_tarval(fc_get_buffer(), fc_get_buffer_length(), mode);
+ if (get_mode_sort(mode) == float_number) {
+ fc_get_inf();
+ return get_tarval(fc_get_buffer(), fc_get_buffer_length(), mode);
+ }
+ else {
+ assert(0 && "tarval is not floating point");
+ return tarval_bad;
+ }
}
/*
default:
assert(0 && "not implemented");
+ return 0;
}
}
assert(mode_is_num(a->mode)); /* negation only for numerical values */
assert(mode_is_signed(a->mode)); /* negation is difficult without negative numbers, isn't it */
+printf("NEG\n");
switch (get_mode_sort(a->mode))
{
case int_number:
return get_tarval(sc_get_buffer(), sc_get_buffer_length(), a->mode);
case float_number:
+printf("FP NEG\n");
fc_neg(a->value);
return get_tarval(fc_get_buffer(), fc_get_buffer_length(), a->mode);