Hello, Here is copy-and-paste from issue raised by Ian (in the bottom). Fix is attached. ChangeLog entry: 2012-11-22 Michael Zolotukhin <[email protected]>
* 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
