This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: RFC: Jump to const_int
- To: John David Anglin <dave at hiauly1 dot hia dot nrc dot ca>
- Subject: Re: RFC: Jump to const_int
- From: Richard Henderson <rth at redhat dot com>
- Date: Sun, 14 Jan 2001 01:05:42 -0800
- Cc: gcc-bugs at gcc dot gnu dot org, gcc-patches at gcc dot gnu dot org
- References: <200101121843.NAA20711@hiauly1.hia.nrc.ca>
On Fri, Jan 12, 2001 at 01:43:22PM -0500, John David Anglin wrote:
> (jump_insn 8 3 9 (set (pc)
> (const_int -1161904448 [0xbabebec0])) -1 (nil)
> (nil))
Indeed this is a problem. One solution is to modify computed_jump_p
so that it recognizes this. I'll probably do that. But another is
to change the predicate to match the constraints on indirect_jump so
that this value is pulled into a register right from the start.
r~
* config/vax/vax.md (indirect_jump): Use register_operand.
Index: config/vax/vax.md
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/vax/vax.md,v
retrieving revision 1.13
diff -c -p -d -r1.13 vax.md
*** vax.md 2001/01/14 08:59:18 1.13
--- vax.md 2001/01/14 09:01:45
***************
*** 1932,1938 ****
;; If you are tempted to try `g', please don't--it's not worth
;; the risk we will reopen the same bug.
(define_insn "indirect_jump"
! [(set (pc) (match_operand:SI 0 "general_operand" "r"))]
""
"jmp (%0)")
--- 1932,1938 ----
;; If you are tempted to try `g', please don't--it's not worth
;; the risk we will reopen the same bug.
(define_insn "indirect_jump"
! [(set (pc) (match_operand:SI 0 "register_operand" "r"))]
""
"jmp (%0)")