This is a minor change to restore bootstrap on systems using gcc 4.8
as a host compiler. The fatal error is:
In file included from gcc/gcc/coretypes.h:471:0,
from gcc/gcc/config/i386/i386-expand.cc:23:
gcc/gcc/config/i386/i386-expand.cc: In function 'void ix86_expand_fp_absneg_operator(rtx_code, machine_mode, rtx_def**)':
./insn-modes.h:315:75: error: temporary of non-literal type 'scalar_float_mode' in a constant expression
#define HFmode (scalar_float_mode ((scalar_float_mode::from_int) E_HFmode))
^
gcc/gcc/config/i386/i386-expand.cc:2179:8: note: in expansion of macro 'HFmode'
case HFmode:
^
The solution is to use the E_?Fmode enumeration constants as case values
in switch statements.
2024-07-14 Roger Sayle <roger@nextmovesoftware.com>
* config/i386/i386-expand.cc (ix86_expand_fp_absneg_operator):
Use E_?Fmode enumeration constants in switch statement.
(ix86_expand_copysign): Likewise.
(ix86_expand_xorsign): Likewise.
switch (mode)
{
- case HFmode:
+ case E_HFmode:
use_sse = true;
vmode = V8HFmode;
break;
- case BFmode:
+ case E_BFmode:
use_sse = true;
vmode = V8BFmode;
break;
- case SFmode:
+ case E_SFmode:
use_sse = TARGET_SSE_MATH && TARGET_SSE;
vmode = V4SFmode;
break;
- case DFmode:
+ case E_DFmode:
use_sse = TARGET_SSE_MATH && TARGET_SSE2;
vmode = V2DFmode;
break;
switch (mode)
{
- case HFmode:
+ case E_HFmode:
vmode = V8HFmode;
break;
- case BFmode:
+ case E_BFmode:
vmode = V8BFmode;
break;
- case SFmode:
+ case E_SFmode:
vmode = V4SFmode;
break;
- case DFmode:
+ case E_DFmode:
vmode = V2DFmode;
break;
- case TFmode:
+ case E_TFmode:
vmode = mode;
break;
default:
switch (mode)
{
- case HFmode:
+ case E_HFmode:
vmode = V8HFmode;
break;
- case BFmode:
+ case E_BFmode:
vmode = V8BFmode;
break;
- case SFmode:
+ case E_SFmode:
vmode = V4SFmode;
break;
- case DFmode:
+ case E_DFmode:
vmode = V2DFmode;
break;
default: