Commit a2391c6a by Jie Zhang Committed by Bernd Schmidt

bfin.c (branch_dest): Add comment why it's necessary.

	* config/bfin/bfin.c (branch_dest): Add comment why it's
	necessary.
	* config/bfin/bfin.md (attr "length" default): Change the offset of
	forward conditional branch of length 4 from 4096 to 4092.

Co-Authored-By: Bernd Schmidt <bernd.schmidt@analog.com>

From-SVN: r99966
parent 389c6c8b
2005-05-18 Jie Zhang <jie.zhang@analog.com>
Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/bfin.c (branch_dest): Add comment why it's
necessary.
* config/bfin/bfin.md (attr "length" default): Change the offset of
forward conditional branch of length 4 from 4096 to 4092.
2005-05-19 Jan Beulich <jbeulich@novell.com>
* unwind-compat.c: Include tconfig.h and tsystem.h.
......
......@@ -1751,7 +1751,10 @@ override_options (void)
flag_schedule_insns = 0;
}
/* Return the destination address of BRANCH. */
/* Return the destination address of BRANCH.
We need to use this instead of get_attr_length, because the
cbranch_with_nops pattern conservatively sets its length to 6, and
we still prefer to use shorter sequences. */
static int
branch_dest (rtx branch)
......
......@@ -173,7 +173,9 @@
;;; if cc jmp; jump.[sl] offset
;;; offset of jump.[sl] is from the jump instruction but
;;; gcc calculates length from the if cc jmp instruction
;;; hence our range is (-4094, 4096) instead of (-4096, 4094) for a br
;;; furthermore gcc takes the end address of the branch instruction
;;; as (pc) for a forward branch
;;; hence our range is (-4094, 4092) instead of (-4096, 4094) for a br
;;;
;;; The way the (pc) rtx works in these calculations is somewhat odd;
;;; for backward branches it's the address of the current instruction,
......@@ -210,7 +212,7 @@
(ge (minus (match_dup 3) (pc)) (const_int -1024)))
(const_int 2)
(and
(le (minus (match_dup 3) (pc)) (const_int 4096))
(le (minus (match_dup 3) (pc)) (const_int 4092))
(ge (minus (match_dup 3) (pc)) (const_int -4094)))
(const_int 4)]
(const_int 6))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment