Ignore:
Timestamp:
Jul 19, 2018, 8:15:53 AM (16 months ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
master
Children:
8db3f0e
Parents:
d779a1e2
git-author:
Sebastian Huber <sebastian.huber@…> (07/19/18 08:15:53)
git-committer:
Sebastian Huber <sebastian.huber@…> (07/25/18 08:07:43)
Message:

riscv: New CPU_Exception_frame

Use the CPU_Interrupt_frame for the volatile context. Add non-volatile
registers and extra state on top of it.

Update #3433.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cpukit/score/cpu/riscv/include/rtems/score/cpu.h

    rd779a1e2 r5694b0c  
    261261
    262262typedef struct {
    263   unsigned long x[32];;
     263  uintptr_t mstatus;
     264  uintptr_t mepc;
     265  uintptr_t a2;
     266  uintptr_t s0;
     267  uintptr_t s1;
     268  uintptr_t ra;
     269  uintptr_t a3;
     270  uintptr_t a4;
     271  uintptr_t a5;
     272  uintptr_t a6;
     273  uintptr_t a7;
     274  uintptr_t t0;
     275  uintptr_t t1;
     276  uintptr_t t2;
     277  uintptr_t t3;
     278  uintptr_t t4;
     279  uintptr_t t5;
     280  uintptr_t t6;
     281#if __riscv_flen > 0
     282  uint32_t fcsr;
     283  RISCV_Float ft0;
     284  RISCV_Float ft1;
     285  RISCV_Float ft2;
     286  RISCV_Float ft3;
     287  RISCV_Float ft4;
     288  RISCV_Float ft5;
     289  RISCV_Float ft6;
     290  RISCV_Float ft7;
     291  RISCV_Float ft8;
     292  RISCV_Float ft9;
     293  RISCV_Float ft10;
     294  RISCV_Float ft11;
     295  RISCV_Float fa0;
     296  RISCV_Float fa1;
     297  RISCV_Float fa2;
     298  RISCV_Float fa3;
     299  RISCV_Float fa4;
     300  RISCV_Float fa5;
     301  RISCV_Float fa6;
     302  RISCV_Float fa7;
     303#endif
     304  uintptr_t a0;
     305  uintptr_t a1;
     306} RTEMS_ALIGNED( CPU_STACK_ALIGNMENT ) CPU_Interrupt_frame;
     307
     308typedef struct {
     309  CPU_Interrupt_frame Interrupt_frame;
     310  uintptr_t mcause;
     311  uintptr_t sp;
     312  uintptr_t gp;
     313  uintptr_t tp;
     314  uintptr_t s2;
     315  uintptr_t s3;
     316  uintptr_t s4;
     317  uintptr_t s5;
     318  uintptr_t s6;
     319  uintptr_t s7;
     320  uintptr_t s8;
     321  uintptr_t s9;
     322  uintptr_t s10;
     323  uintptr_t s11;
     324#if __riscv_flen > 0
     325  RISCV_Float fs0;
     326  RISCV_Float fs1;
     327  RISCV_Float fs2;
     328  RISCV_Float fs3;
     329  RISCV_Float fs4;
     330  RISCV_Float fs5;
     331  RISCV_Float fs6;
     332  RISCV_Float fs7;
     333  RISCV_Float fs8;
     334  RISCV_Float fs9;
     335  RISCV_Float fs10;
     336  RISCV_Float fs11;
     337#endif
    264338} CPU_Exception_frame;
    265339
Note: See TracChangeset for help on using the changeset viewer.