>    (2) When and if you switch to this:
> 
>         class machine_mode
>         {
>           enum value_t {
>            VOIDmode, SImode, // ...
>           } value;
> 
>          // accessors, whatever ...
>         };

I think what Mark wants is to migrate to this:

        class machine_mode_desc
        {
          unsigned char bits;
          unsigned char is_signed:1;
          unsigned char partial_bits;
          unsigned char vector_width;
          char *name;
          // accessors, whatever
        };
        class machine_mode
        {
          machine_mode_desc *mode_data;
          // various constructors
        }

And the target can do this in tm.c:

        class machine_mode SImode ("SI", 32);
        class machine_mode V4QImode ("V4QI", 8, 0, 8, 4);

Then, the MI parts can obtain a mode with certain characteristics,
enumerate available modes, and get info about a given mode, but don't
have a compile-time identifier for a "well-known named" mode.

Reply via email to