aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTim Newsome <tim@sifive.com>2021-10-06 13:45:14 -0700
committerTim Newsome <tim@sifive.com>2021-10-06 14:35:04 -0700
commit52b2a4a74455337387357bda341b5cb56310e793 (patch)
tree380d208e33e87a93186ef25b7d89376236ac60ff /src
parentc67a887a00789ae7cdb46027b198576672cbf408 (diff)
downloadriscv-openocd-52b2a4a74455337387357bda341b5cb56310e793.zip
riscv-openocd-52b2a4a74455337387357bda341b5cb56310e793.tar.gz
riscv-openocd-52b2a4a74455337387357bda341b5cb56310e793.tar.bz2
Fix incorrectly resolved conflict.
Change-Id: I8dde5f2fc1dbc7b4de6091a934cbe160baadb504 Signed-off-by: Tim Newsome <tim@sifive.com>
Diffstat (limited to 'src')
-rw-r--r--src/rtos/rtos_standard_stackings.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/rtos/rtos_standard_stackings.c b/src/rtos/rtos_standard_stackings.c
index d2bf5a3..465dd67 100644
--- a/src/rtos/rtos_standard_stackings.c
+++ b/src/rtos/rtos_standard_stackings.c
@@ -321,11 +321,13 @@ static target_addr_t rtos_generic_stack_align(struct target *target,
const uint8_t *stack_data, const struct rtos_register_stacking *stacking,
target_addr_t stack_ptr, int align)
{
- target_addr_t new_stack_ptr;
- target_addr_t aligned_stack_ptr;
- new_stack_ptr = stack_ptr - stacking->stack_growth_direction *
- stacking->stack_registers_size;
- aligned_stack_ptr = new_stack_ptr & ~((target_addr_t)align - 1);
+ target_addr_t new_stack_ptr = stack_ptr;
+ if (stacking->stack_growth_direction > 0)
+ new_stack_ptr -= stacking->stack_registers_size;
+ else
+ new_stack_ptr += stacking->stack_registers_size;
+ target_addr_t aligned_stack_ptr = new_stack_ptr & ~((int64_t)align - 1);
+
if (aligned_stack_ptr != new_stack_ptr &&
stacking->stack_growth_direction == -1) {
/* If we have a downward growing stack, the simple alignment code