[Bug target/88909] New: struct builtin_description doesn't support ix86_isa_flags2

hjl.tools at gmail dot com gcc-bugzilla@gcc.gnu.org
Fri Jan 18 13:39:00 GMT 2019


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88909

            Bug ID: 88909
           Summary: struct builtin_description doesn't support
                    ix86_isa_flags2
           Product: gcc
           Version: 9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: hjl.tools at gmail dot com
                CC: crazylht at gmail dot com, ubizjak at gmail dot com
  Target Milestone: ---
            Target: i386,x86-64

There are

struct builtin_description
{
  const HOST_WIDE_INT mask; 
  const enum insn_code icode;
  const char *const name; 
  const enum ix86_builtins code; 
  const enum rtx_code comparison;
  const int flag; 
};

Since "mask" is used for both ix86_isa_flags and ix86_isa_flags2, we wind up
with

BDESC (OPTION_MASK_ISA_PTWRITE, CODE_FOR_ptwritedi, "__builtin_ia32_ptwrite64",
IX86_BUILTIN_PTWRITE64, UNKNOWN, (int) VOID_FTYPE_UINT64)

and

static inline tree
def_builtin2 (HOST_WIDE_INT mask, const char *name,
              enum ix86_builtin_func_type tcode,
              enum ix86_builtins code)
{
  tree decl = NULL_TREE;

  if (tcode == VOID_FTYPE_UINT64)
    {
      if (!TARGET_64BIT)
        return decl;
      ix86_builtins_isa[(int) code].isa = OPTION_MASK_ISA_64BIT;
    }
  ix86_builtins_isa[(int) code].isa2 = mask;

We should add "const HOST_WIDE_INT mask2;" to struct builtin_description
to handle it properly.


More information about the Gcc-bugs mailing list