RFC: Jump to const_int

Richard Henderson rth@redhat.com
Sun Jan 14 01:05:00 GMT 2001


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)")
  


More information about the Gcc-bugs mailing list