arc: branch too far when STACK_CHECKING enabled.
A build error was resulting if CONFIG_ARC_STACK_CHECKING is enabled. There is a breq that was too far. Adding conditional code to re-arrange the branching so that it can be done. See ZEP-1116. Change-Id: Idea85817b2e05617bbaa4450437aa74c5737e213 Signed-off-by: Chuck Jordan <cjordan@synopsys.com>
This commit is contained in:
parent
a08c4b81e9
commit
cd198764ba
1 changed files with 8 additions and 0 deletions
|
@ -144,8 +144,16 @@ SECTION_FUNC(TEXT, _rirq_exit)
|
||||||
|
|
||||||
/* scheduler locked ? do not schedule */
|
/* scheduler locked ? do not schedule */
|
||||||
ld_s r0, [r2, _thread_offset_to_sched_locked]
|
ld_s r0, [r2, _thread_offset_to_sched_locked]
|
||||||
|
#ifdef CONFIG_ARC_STACK_CHECKING
|
||||||
|
brle.d r0, 0, _rirq_reschedule_check
|
||||||
|
ld sp, [r2, _thread_offset_to_sp]
|
||||||
|
b _rirq_no_reschedule
|
||||||
|
/* This branch is a bit far */
|
||||||
|
_rirq_reschedule_check:
|
||||||
|
#else
|
||||||
brgt.d r0, 0, _rirq_no_reschedule
|
brgt.d r0, 0, _rirq_no_reschedule
|
||||||
ld sp, [r2, _thread_offset_to_sp]
|
ld sp, [r2, _thread_offset_to_sp]
|
||||||
|
#endif
|
||||||
|
|
||||||
/* check if the current thread needs to be rescheduled */
|
/* check if the current thread needs to be rescheduled */
|
||||||
push_s r2
|
push_s r2
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue