[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