Hi all,
After my CRC32 intrinsics patch that added new entries into the bdesc_2arg
table, the arm_init_iwmmxt_builtins function tries to iterate over them and
blows up, causing an ICE when trying to compile with -mcpu=iwmmxt.
This patch fixes that by ignoring the non-iwmmxt entries in that table when
initialising the iwmmxt builtins.
With this patch the gcc.target/arm/mmx-2.c comes back and PASSes.
Tested arm-none-eabi on qemu.
Ok for trunk?
Thanks,
Kyrill
2014-01-09 Kyrylo Tkachov <[email protected]>
* config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
non-iwmmxt builtins.diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index c8bf7c1..842d67f 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -24244,7 +24244,7 @@ arm_init_iwmmxt_builtins (void)
enum machine_mode mode;
tree type;
- if (d->name == 0)
+ if (d->name == 0 || !(d->mask == FL_IWMMXT || d->mask == FL_IWMMXT2))
continue;
mode = insn_data[d->icode].operand[1].mode;