Update #2809. --- cpukit/score/cpu/arm/rtems/score/cpu.h | 2 -- cpukit/score/cpu/arm/rtems/score/cpuimpl.h | 56 +++++++++++++++++++++++++++++- 2 files changed, 55 insertions(+), 3 deletions(-)
diff --git a/cpukit/score/cpu/arm/rtems/score/cpu.h b/cpukit/score/cpu/arm/rtems/score/cpu.h index e4f9e37..326abbb 100644 --- a/cpukit/score/cpu/arm/rtems/score/cpu.h +++ b/cpukit/score/cpu/arm/rtems/score/cpu.h @@ -687,8 +687,6 @@ typedef struct { uint32_t reserved_for_stack_alignment; } CPU_Exception_frame; -typedef CPU_Exception_frame CPU_Interrupt_frame; - void _CPU_Exception_frame_print( const CPU_Exception_frame *frame ); void _ARM_Exception_default( CPU_Exception_frame *frame ); diff --git a/cpukit/score/cpu/arm/rtems/score/cpuimpl.h b/cpukit/score/cpu/arm/rtems/score/cpuimpl.h index 75a2952..0885c2e 100644 --- a/cpukit/score/cpu/arm/rtems/score/cpuimpl.h +++ b/cpukit/score/cpu/arm/rtems/score/cpuimpl.h @@ -5,7 +5,7 @@ */ /* - * Copyright (c) 2013 embedded brains GmbH + * Copyright (c) 2013, 2016 embedded brains GmbH * * The license and distribution terms for this file may be * found in the file LICENSE in this distribution or at @@ -19,6 +19,18 @@ #define CPU_PER_CPU_CONTROL_SIZE 0 +#ifdef ARM_MULTILIB_ARCH_V4 + +#if defined(ARM_MULTILIB_VFP_D32) +#define CPU_INTERRUPT_FRAME_SIZE 240 +#elif defined(ARM_MULTILIB_VFP) +#define CPU_INTERRUPT_FRAME_SIZE 112 +#else +#define CPU_INTERRUPT_FRAME_SIZE 40 +#endif + +#endif /* ARM_MULTILIB_ARCH_V4 */ + #ifndef ASM #ifdef __cplusplus @@ -27,6 +39,48 @@ extern "C" { #ifdef ARM_MULTILIB_ARCH_V4 +typedef struct { +#ifdef ARM_MULTILIB_VFP + uint32_t fpscr; +#ifdef ARM_MULTILIB_VFP_D32 + double d16; + double d17; + double d18; + double d19; + double d20; + double d21; + double d22; + double d23; + double d24; + double d25; + double d26; + double d27; + double d28; + double d29; + double d30; + double d31; +#endif /* ARM_MULTILIB_VFP_D32 */ + double d0; + double d1; + double d2; + double d3; + double d4; + double d5; + double d6; + double d7; +#endif /* ARM_MULTILIB_VFP */ + uint32_t r9; + uint32_t lr; + uint32_t r0; + uint32_t r1; + uint32_t r2; + uint32_t r3; + uint32_t return_pc; + uint32_t return_cpsr; + uint32_t r7; + uint32_t r12; +} CPU_Interrupt_frame; + #ifdef RTEMS_SMP static inline struct Per_CPU_Control *_ARM_Get_current_per_CPU_control( void ) -- 1.8.4.5 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel