diff options
author | Tim Newsome <tim@sifive.com> | 2021-10-06 13:45:14 -0700 |
---|---|---|
committer | Tim Newsome <tim@sifive.com> | 2021-10-06 14:35:04 -0700 |
commit | 52b2a4a74455337387357bda341b5cb56310e793 (patch) | |
tree | 380d208e33e87a93186ef25b7d89376236ac60ff /src | |
parent | c67a887a00789ae7cdb46027b198576672cbf408 (diff) | |
download | riscv-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.c | 12 |
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 |