Hello, Here is copy-and-paste from issue raised by Ian (in the bottom). Fix is attached. ChangeLog entry: 2012-11-22 Michael Zolotukhin <michael.v.zolotuk...@intel.com>
* gensupport.c (add_c_test): Check if expr isn't NULL. Is it ok for trunk? === CUT HERE === It looks like the recent VEC rewrite might have interacted badly with this patch. I am getting a segfault in genconditions.c when add_c_test is called for "desc". I think it is because the condition is not within a vector. Example of "desc" for working pattern: (define_insn ("*zero_extendqihi2_aarch64") [ (set (match_operand:HI 0 ("register_operand") ("=r,r")) (zero_extend:HI (match_operand:QI 1 ("nonimmediate_operand") ("r,m")))) ] ("") ("@ uxtb\t%w0, %w1 ldrb\t%w0, %1") [ (set_attr ("v8type") ("extend,load1")) (set_attr ("mode") ("HI")) ]) Example of "desc" for broken one that uses define_subst: (define_insn ("*addsi3_aarch64_noextend") [ (set (match_operand:SI 0 ("register_operand") ("=rk,rk,rk")) (plus:SI (match_operand:SI 1 ("register_operand") ("%rk,rk,rk")) (match_operand:SI 2 ("aarch64_plus_operand") ("I,r,J")))) ] "" ("@ add\t%w0, %w1, %2 add\t%w0, %w1, %w2 sub\t%w0, %w1, #%n2") [ (set_attr ("v8type") ("alu")) (set_attr ("mode") ("SI")) ]) Note that there are no brackets around the "" condition. That's the issue, I think. === CUT HERE === Thanks, K
add_c_test.patch
Description: Binary data