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  <kyrylo.tkac...@arm.com>

    * 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;

Reply via email to