This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Fix for 991213-3.c in new arm backend
- To: rearnsha at arm dot com
- Subject: Re: Fix for 991213-3.c in new arm backend
- From: Nick Clifton <nickc at cygnus dot com>
- Date: Thu, 9 Mar 2000 10:30:49 -0800
- CC: gcc-patches at gcc dot gnu dot org
Hi Richard,
: > int jump () { goto * (int (*) ()) 0xbabebec0; }
: >
: > and the expand for the ARM was failing to force the address into a
: > register.
:
: I think it would be far better to restrict the indirect_jump expander's
: predicate to just s_register_operand (a subset of register_operand). The
: cse/combine patches can then generate the extended forms of indirect jump
: (eg from an address in memory) that are supported in ARM mode.
:
: ergo:
:
: ;; Basic form supported by both targets.
: (define_expand "indirect_jump"
: [(set (pc)
: (match_operand:SI 0 "s_register_operand" ""))]
: "TARGET_EITHER"
: ""
: )
Agreed - I will check this form in.
Cheers
Nick