Skip to content
Permalink
Browse files

arc: use different load instruction

If the offset within the thread struct to the
ARC arch-specific 'relinquish_cause' member is too
large, ld_s instructions referencing it will not
compile. This happens easily if CONFIG_THREAD_NAME
reserves a name buffer within the thread struct, since
all the arch-specific members come last.

Use the regular 'ld' instruction instead.

Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
  • Loading branch information...
andrewboie committed Jun 29, 2019
1 parent 5a8b40b commit 1ee017050bb822516ee7a7bca9f621d34fee904c
Showing with 3 additions and 3 deletions.
  1. +1 −1 arch/arc/core/fast_irq.S
  2. +1 −1 arch/arc/core/regular_irq.S
  3. +1 −1 arch/arc/core/switch.S
@@ -238,7 +238,7 @@ _firq_reschedule:
pop_s r2
#endif

ld_s r3, [r2, _thread_offset_to_relinquish_cause]
ld r3, [r2, _thread_offset_to_relinquish_cause]

breq r3, _CAUSE_RIRQ, _firq_return_from_rirq
nop
@@ -181,7 +181,7 @@ _rirq_common_interrupt_swap:
pop_s r2
#endif

ld_s r3, [r2, _thread_offset_to_relinquish_cause]
ld r3, [r2, _thread_offset_to_relinquish_cause]

breq r3, _CAUSE_RIRQ, _rirq_return_from_rirq
nop
@@ -126,7 +126,7 @@ _switch_to_target_thread:
pop_s r2
#endif

ld_s r3, [r2, _thread_offset_to_relinquish_cause]
ld r3, [r2, _thread_offset_to_relinquish_cause]

breq r3, _CAUSE_RIRQ, _switch_return_from_rirq
nop

0 comments on commit 1ee0170

Please sign in to comment.
You can’t perform that action at this time.