114 aligned_stack_ptr = new_stack_ptr & ~((
target_addr_t)align - 1);
115 if (aligned_stack_ptr != new_stack_ptr &&
123 return aligned_stack_ptr;
131 stacking, stack_ptr, 8);
157 const uint32_t ALIGN_NEEDED = (1 << 9);
164 if ((xpsr & ALIGN_NEEDED) != 0) {
165 LOG_DEBUG(
"XPSR(0x%08" PRIx32
") indicated stack alignment was necessary\r\n",
169 return new_stack_ptr;
176 const int XPSR_OFFSET = 0x3c;
178 stack_ptr, XPSR_OFFSET);
185 const int XPSR_OFFSET = 0x40;
187 stack_ptr, XPSR_OFFSET);
194 const int XPSR_OFFSET = 0x80;
196 stack_ptr, XPSR_OFFSET);
202 .stack_growth_direction = -1,
210 .stack_growth_direction = -1,
218 .stack_growth_direction = -1,
226 .stack_growth_direction = -1,
227 .num_output_registers = 26,
#define ARMV7M_NUM_CORE_REGS
#define LOG_DEBUG(expr ...)
static target_addr_t rtos_standard_cortex_m4f_stack_align(struct target *target, const uint8_t *stack_data, const struct rtos_register_stacking *stacking, target_addr_t stack_ptr)
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)
static const struct stack_register_offset rtos_standard_cortex_m4f_stack_offsets[]
static const struct stack_register_offset rtos_standard_cortex_m3_stack_offsets[ARMV7M_NUM_CORE_REGS]
const struct rtos_register_stacking rtos_standard_cortex_m3_stacking
static const struct stack_register_offset rtos_standard_cortex_m4f_fpu_stack_offsets[]
const struct rtos_register_stacking rtos_standard_cortex_m4f_fpu_stacking
const struct rtos_register_stacking rtos_standard_cortex_m4f_stacking
static target_addr_t rtos_standard_cortex_m4f_fpu_stack_align(struct target *target, const uint8_t *stack_data, const struct rtos_register_stacking *stacking, target_addr_t stack_ptr)
const struct rtos_register_stacking rtos_standard_cortex_r4_stacking
static target_addr_t rtos_standard_cortex_m3_stack_align(struct target *target, const uint8_t *stack_data, const struct rtos_register_stacking *stacking, target_addr_t stack_ptr)
static const struct stack_register_offset rtos_standard_cortex_r4_stack_offsets[]
target_addr_t rtos_cortex_m_stack_align(struct target *target, const uint8_t *stack_data, const struct rtos_register_stacking *stacking, target_addr_t stack_ptr, size_t xpsr_offset)
target_addr_t rtos_generic_stack_align8(struct target *target, const uint8_t *stack_data, const struct rtos_register_stacking *stacking, target_addr_t stack_ptr)
unsigned char stack_registers_size
signed char stack_growth_direction
uint32_t target_buffer_get_u32(struct target *target, const uint8_t *buffer)