[cond-optab] Convert arm
Paolo Bonzini
bonzini@gnu.org
Fri Mar 27 15:38:00 GMT 2009
>> -;; True for comparisons other than LTGT or UNEQ.
>> +;; True for integer comparisons and, if FP is active, for comparisons
>> +;; other than LTGT or UNEQ.
>> (define_special_predicate "arm_comparison_operator"
>> - (match_code "eq,ne,le,lt,ge,gt,geu,gtu,leu,ltu,unordered,ordered,unlt,unle,unge,ungt"))
>> + (ior (match_code "eq,ne,le,lt,ge,gt,geu,gtu,leu,ltu")
>> + (and (match_test "TARGET_32BIT && TARGET_HARD_FLOAT
>> + && (TARGET_FPA || TARGET_VFP)")
>> + (match_code "unordered,ordered,unlt,unle,unge,ungt"))))
>
> Shouldn't that test also include TARGET_MAVERICK?
I got it from:
(define_expand "bunordered"
[(set (pc)
(if_then_else (unordered (match_dup 1) (const_int 0))
(label_ref (match_operand 0 "" ""))
(pc)))]
"TARGET_32BIT && TARGET_HARD_FLOAT && (TARGET_FPA || TARGET_VFP)"
"operands[1] = arm_gen_compare_reg (UNORDERED, arm_compare_op0,
arm_compare_op1);"
)
But the comment "if FP is active" is inexact, I agree.
Paolo
More information about the Gcc-patches
mailing list