This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patches] Re: convert jump.c, ifcvt.c, cse.c and simplify-rtx.c to new fp conditionals
- To: Jan Hubicka <jh at suse dot cz>
- Subject: Re: [patches] Re: convert jump.c, ifcvt.c, cse.c and simplify-rtx.c to new fp conditionals
- From: Richard Earnshaw <rearnsha at arm dot com>
- Date: Mon, 08 Jan 2001 12:57:54 +0000
- Cc: Richard Henderson <rth at redhat dot com>, patches at x86-64 dot org, gcc-patches at gcc dot gnu dot org
- Cc: rearnsha at arm dot com
- Organization: ARM Ltd.
- Reply-To: rearnsha at arm dot com
> > The ARM can implement all FP conditions (including unordered) in a single
> > instruction except for LTGT and UNEQ. IIRC these two form a reversed
> Good.
> Does it have instruction for ordered compares (such as LT, GT etc.), that
> never trap?
That's controlled by the comparison instruction. If traps are required we
use cmfe, if not, we use cmf. So to get this right, the mode of the
compare has to be correct.
> > pair, so we can safely use reverse_condition on any other comparison. The
> > unhandled comparisons are handled with special branch instructions in the
> > md file which use two conditional branch instructions. The unhandled
> > cases are never allowed to be used in conditional execution.
> I would rather see this moved to generic code - in exapnd_branch we can
> easilly break these beasts into primitive ones - this is important bit
> for me, since I would like to make fold-const to construct such compares
> and thus all backends handle this properly.
I'm not sure how you could do this, the restriction is specific to the
arm. Anyway, see arm_comparison_operator() in arm.c -- it just calls
comparison_operator and rejects the unhandled cases.
R.