forked from Imagelibrary/rtems
sparc: Move CPU_Interrupt_frame related defines
Move CPU_Interrupt_frame related defines to <rtems/score/cpuimpl.h>. Update #2809.
This commit is contained in:
@@ -393,7 +393,7 @@ dont_do_the_window:
|
|||||||
* REGISTERS SAME AS AT _ISR_Handler
|
* REGISTERS SAME AS AT _ISR_Handler
|
||||||
*/
|
*/
|
||||||
|
|
||||||
sub %fp, CONTEXT_CONTROL_INTERRUPT_FRAME_SIZE, %sp
|
sub %fp, CPU_INTERRUPT_FRAME_SIZE, %sp
|
||||||
! make space for ISF
|
! make space for ISF
|
||||||
|
|
||||||
std %l0, [%sp + ISF_PSR_OFFSET] ! save psr, PC
|
std %l0, [%sp + ISF_PSR_OFFSET] ! save psr, PC
|
||||||
|
|||||||
@@ -106,7 +106,12 @@ SPARC_ASSERT_ISF_OFFSET(y, Y);
|
|||||||
SPARC_ASSERT_ISF_OFFSET(tpc, TPC);
|
SPARC_ASSERT_ISF_OFFSET(tpc, TPC);
|
||||||
|
|
||||||
RTEMS_STATIC_ASSERT(
|
RTEMS_STATIC_ASSERT(
|
||||||
sizeof(CPU_Interrupt_frame) == CONTEXT_CONTROL_INTERRUPT_FRAME_SIZE,
|
sizeof(SPARC_Minimum_stack_frame) == SPARC_MINIMUM_STACK_FRAME_SIZE,
|
||||||
|
SPARC_MINIMUM_STACK_FRAME_SIZE
|
||||||
|
);
|
||||||
|
|
||||||
|
RTEMS_STATIC_ASSERT(
|
||||||
|
sizeof(CPU_Interrupt_frame) == CPU_INTERRUPT_FRAME_SIZE,
|
||||||
CPU_Interrupt_frame_size
|
CPU_Interrupt_frame_size
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -344,9 +344,6 @@ typedef struct {
|
|||||||
/** This macro defines an offset into the stack frame for use in assembly. */
|
/** This macro defines an offset into the stack frame for use in assembly. */
|
||||||
#define CPU_STACK_FRAME_PAD0_OFFSET 0x5c
|
#define CPU_STACK_FRAME_PAD0_OFFSET 0x5c
|
||||||
|
|
||||||
/** This defines the size of the minimum stack frame. */
|
|
||||||
#define SPARC_MINIMUM_STACK_FRAME_SIZE 0x60
|
|
||||||
|
|
||||||
#define CPU_MAXIMUM_PROCESSORS 32
|
#define CPU_MAXIMUM_PROCESSORS 32
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -683,53 +680,6 @@ typedef struct {
|
|||||||
|
|
||||||
#endif /* ASM */
|
#endif /* ASM */
|
||||||
|
|
||||||
/*
|
|
||||||
* Offsets of fields with CPU_Interrupt_frame for assembly routines.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/** This macro defines an offset into the ISF for use in assembly. */
|
|
||||||
#define ISF_PSR_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x00
|
|
||||||
/** This macro defines an offset into the ISF for use in assembly. */
|
|
||||||
#define ISF_PC_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x04
|
|
||||||
/** This macro defines an offset into the ISF for use in assembly. */
|
|
||||||
#define ISF_NPC_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x08
|
|
||||||
/** This macro defines an offset into the ISF for use in assembly. */
|
|
||||||
#define ISF_G1_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x0c
|
|
||||||
/** This macro defines an offset into the ISF for use in assembly. */
|
|
||||||
#define ISF_G2_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x10
|
|
||||||
/** This macro defines an offset into the ISF for use in assembly. */
|
|
||||||
#define ISF_G3_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x14
|
|
||||||
/** This macro defines an offset into the ISF for use in assembly. */
|
|
||||||
#define ISF_G4_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x18
|
|
||||||
/** This macro defines an offset into the ISF for use in assembly. */
|
|
||||||
#define ISF_G5_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x1c
|
|
||||||
/** This macro defines an offset into the ISF for use in assembly. */
|
|
||||||
#define ISF_G7_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x24
|
|
||||||
/** This macro defines an offset into the ISF for use in assembly. */
|
|
||||||
#define ISF_I0_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x28
|
|
||||||
/** This macro defines an offset into the ISF for use in assembly. */
|
|
||||||
#define ISF_I1_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x2c
|
|
||||||
/** This macro defines an offset into the ISF for use in assembly. */
|
|
||||||
#define ISF_I2_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x30
|
|
||||||
/** This macro defines an offset into the ISF for use in assembly. */
|
|
||||||
#define ISF_I3_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x34
|
|
||||||
/** This macro defines an offset into the ISF for use in assembly. */
|
|
||||||
#define ISF_I4_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x38
|
|
||||||
/** This macro defines an offset into the ISF for use in assembly. */
|
|
||||||
#define ISF_I5_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x3c
|
|
||||||
/** This macro defines an offset into the ISF for use in assembly. */
|
|
||||||
#define ISF_I6_FP_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x40
|
|
||||||
/** This macro defines an offset into the ISF for use in assembly. */
|
|
||||||
#define ISF_I7_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x44
|
|
||||||
/** This macro defines an offset into the ISF for use in assembly. */
|
|
||||||
#define ISF_Y_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x48
|
|
||||||
/** This macro defines an offset into the ISF for use in assembly. */
|
|
||||||
#define ISF_TPC_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x4c
|
|
||||||
|
|
||||||
/** This defines the size of the ISF area for use in assembly. */
|
|
||||||
#define CONTEXT_CONTROL_INTERRUPT_FRAME_SIZE \
|
|
||||||
SPARC_MINIMUM_STACK_FRAME_SIZE + 0x50
|
|
||||||
|
|
||||||
#ifndef ASM
|
#ifndef ASM
|
||||||
/**
|
/**
|
||||||
* This variable is contains the initialize context for the FP unit.
|
* This variable is contains the initialize context for the FP unit.
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2007 On-Line Applications Research Corporation (OAR)
|
* Copyright (c) 1989, 2007 On-Line Applications Research Corporation (OAR)
|
||||||
* Copyright (c) 2013, 2016 embedded brains GmbH
|
* Copyright (c) 2013, 2016 embedded brains GmbH
|
||||||
*
|
*
|
||||||
* The license and distribution terms for this file may be
|
* The license and distribution terms for this file may be
|
||||||
@@ -18,6 +18,55 @@
|
|||||||
|
|
||||||
#include <rtems/score/cpu.h>
|
#include <rtems/score/cpu.h>
|
||||||
|
|
||||||
|
/** This defines the size of the minimum stack frame. */
|
||||||
|
#define SPARC_MINIMUM_STACK_FRAME_SIZE 0x60
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Offsets of fields with CPU_Interrupt_frame for assembly routines.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** This macro defines an offset into the ISF for use in assembly. */
|
||||||
|
#define ISF_PSR_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x00
|
||||||
|
/** This macro defines an offset into the ISF for use in assembly. */
|
||||||
|
#define ISF_PC_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x04
|
||||||
|
/** This macro defines an offset into the ISF for use in assembly. */
|
||||||
|
#define ISF_NPC_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x08
|
||||||
|
/** This macro defines an offset into the ISF for use in assembly. */
|
||||||
|
#define ISF_G1_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x0c
|
||||||
|
/** This macro defines an offset into the ISF for use in assembly. */
|
||||||
|
#define ISF_G2_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x10
|
||||||
|
/** This macro defines an offset into the ISF for use in assembly. */
|
||||||
|
#define ISF_G3_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x14
|
||||||
|
/** This macro defines an offset into the ISF for use in assembly. */
|
||||||
|
#define ISF_G4_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x18
|
||||||
|
/** This macro defines an offset into the ISF for use in assembly. */
|
||||||
|
#define ISF_G5_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x1c
|
||||||
|
/** This macro defines an offset into the ISF for use in assembly. */
|
||||||
|
#define ISF_G7_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x24
|
||||||
|
/** This macro defines an offset into the ISF for use in assembly. */
|
||||||
|
#define ISF_I0_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x28
|
||||||
|
/** This macro defines an offset into the ISF for use in assembly. */
|
||||||
|
#define ISF_I1_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x2c
|
||||||
|
/** This macro defines an offset into the ISF for use in assembly. */
|
||||||
|
#define ISF_I2_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x30
|
||||||
|
/** This macro defines an offset into the ISF for use in assembly. */
|
||||||
|
#define ISF_I3_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x34
|
||||||
|
/** This macro defines an offset into the ISF for use in assembly. */
|
||||||
|
#define ISF_I4_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x38
|
||||||
|
/** This macro defines an offset into the ISF for use in assembly. */
|
||||||
|
#define ISF_I5_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x3c
|
||||||
|
/** This macro defines an offset into the ISF for use in assembly. */
|
||||||
|
#define ISF_I6_FP_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x40
|
||||||
|
/** This macro defines an offset into the ISF for use in assembly. */
|
||||||
|
#define ISF_I7_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x44
|
||||||
|
/** This macro defines an offset into the ISF for use in assembly. */
|
||||||
|
#define ISF_Y_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x48
|
||||||
|
/** This macro defines an offset into the ISF for use in assembly. */
|
||||||
|
#define ISF_TPC_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x4c
|
||||||
|
|
||||||
|
/** This defines the size of the ISF area for use in assembly. */
|
||||||
|
#define CPU_INTERRUPT_FRAME_SIZE SPARC_MINIMUM_STACK_FRAME_SIZE + 0x50
|
||||||
|
|
||||||
#if ( SPARC_HAS_FPU == 1 )
|
#if ( SPARC_HAS_FPU == 1 )
|
||||||
#define CPU_PER_CPU_CONTROL_SIZE 8
|
#define CPU_PER_CPU_CONTROL_SIZE 8
|
||||||
#else
|
#else
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <rtems/asm.h>
|
#include <rtems/asm.h>
|
||||||
#include <rtems/score/cpu.h>
|
#include <rtems/score/cpuimpl.h>
|
||||||
|
|
||||||
#define FRAME_OFFSET_BUFFER_0 (SPARC_MINIMUM_STACK_FRAME_SIZE)
|
#define FRAME_OFFSET_BUFFER_0 (SPARC_MINIMUM_STACK_FRAME_SIZE)
|
||||||
#define FRAME_OFFSET_BUFFER_1 (FRAME_OFFSET_BUFFER_0 + 0x04)
|
#define FRAME_OFFSET_BUFFER_1 (FRAME_OFFSET_BUFFER_0 + 0x04)
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <rtems/asm.h>
|
#include <rtems/asm.h>
|
||||||
#include <rtems/score/cpu.h>
|
#include <rtems/score/cpuimpl.h>
|
||||||
|
|
||||||
#define SCRATCH_0 (SPARC_MINIMUM_STACK_FRAME_SIZE)
|
#define SCRATCH_0 (SPARC_MINIMUM_STACK_FRAME_SIZE)
|
||||||
#define SCRATCH_1 (SCRATCH_0 + 0x04)
|
#define SCRATCH_1 (SCRATCH_0 + 0x04)
|
||||||
|
|||||||
Reference in New Issue
Block a user