From: Georg-Johann Lay Date: Fri, 4 Oct 2024 13:38:59 +0000 (+0200) Subject: AVR: Implement TARGET_FLOATN_MODE. X-Git-Tag: basepoints/gcc-16~5480 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=98a1a886e4c0c58ad9f9846caf5697ff00e4f24a;p=thirdparty%2Fgcc.git AVR: Implement TARGET_FLOATN_MODE. gcc/ * config/avr/avr.cc (avr_floatn_mode): New static function. (TARGET_FLOATN_MODE): New define. --- diff --git a/gcc/config/avr/avr.cc b/gcc/config/avr/avr.cc index 92013c3845d..b73c251b64b 100644 --- a/gcc/config/avr/avr.cc +++ b/gcc/config/avr/avr.cc @@ -15473,6 +15473,24 @@ avr_c_mode_for_floating_type (tree_index ti) } +/* Implement `TARGET_FLOATN_MODE'. */ + +static opt_scalar_float_mode +avr_floatn_mode (int n, bool /*extended*/) +{ + if (n == 32) + return SFmode; + + // Notice that -m[long-]double= just tells which library (AVR-LibC + // or libgcc/libf7) is providing symbols like sin. DFmode support + // is provided by libf7 no matter what. + if (n == 64) + return DFmode; + + return opt_scalar_float_mode (); +} + + /* Worker function for `FLOAT_LIB_COMPARE_RETURNS_BOOL'. */ bool @@ -15705,6 +15723,9 @@ avr_use_lra_p () #undef TARGET_C_MODE_FOR_FLOATING_TYPE #define TARGET_C_MODE_FOR_FLOATING_TYPE avr_c_mode_for_floating_type +#undef TARGET_FLOATN_MODE +#define TARGET_FLOATN_MODE avr_floatn_mode + gcc_target targetm = TARGET_INITIALIZER;