Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset 5f2926a in mainline


Ignore:
Timestamp:
2017-08-21T18:41:40Z (3 years ago)
Author:
Martin Decky <martin@…>
Branches:
master
Children:
c16479e
Parents:
05b3640
Message:

riscv64: context saving/restoring routines

Location:
kernel/arch/riscv64
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/riscv64/include/arch/context.h

    r05b3640 r5f2926a  
    4040#define SP_DELTA  16
    4141
    42 // FIXME
    43 
    4442#define context_set(context, pc, stack, size) \
    4543        context_set_generic(context, pc, stack, size)
  • kernel/arch/riscv64/include/arch/context_struct.ag

    r05b3640 r5f2926a  
    3838        members : [
    3939                #
    40                 # There is a room for optimization (we can store just those
    41                 # registers that must be preserved during ABI function call).
     40                # Only save registers that must be preserved across function
     41                # calls.
    4242                #
    4343
     
    5252
    5353                {
    54                         name : zero,
     54                        name : gp,
    5555                        type : uint64_t
    5656                },
    5757                {
    58                         name : ra,
    59                         type : uint64_t
    60                 },
    61 
    62                 {
    63                         name : x3,
     58                        name : tp,
    6459                        type : uint64_t
    6560                },
    6661                {
    67                         name : x4,
     62                        name : s0,
    6863                        type : uint64_t
    6964                },
    7065                {
    71                         name : x5,
     66                        name : s1,
    7267                        type : uint64_t
    7368                },
    7469                {
    75                         name : x6,
     70                        name : s2,
    7671                        type : uint64_t
    7772                },
    7873                {
    79                         name : x7,
     74                        name : s3,
    8075                        type : uint64_t
    8176                },
    8277                {
    83                         name : x8,
     78                        name : s4,
    8479                        type : uint64_t
    8580                },
    8681                {
    87                         name : x9,
     82                        name : s5,
    8883                        type : uint64_t
    8984                },
    9085                {
    91                         name : x10,
     86                        name : s6,
    9287                        type : uint64_t
    9388                },
    9489                {
    95                         name : x11,
     90                        name : s7,
    9691                        type : uint64_t
    9792                },
    9893                {
    99                         name : x12,
     94                        name : s8,
    10095                        type : uint64_t
    10196                },
    10297                {
    103                         name : x13,
     98                        name : s9,
    10499                        type : uint64_t
    105100                },
    106101                {
    107                         name : x14,
     102                        name : s10,
    108103                        type : uint64_t
    109104                },
    110105                {
    111                         name : x15,
    112                         type : uint64_t
    113                 },
    114                 {
    115                         name : x16,
    116                         type : uint64_t
    117                 },
    118                 {
    119                         name : x17,
    120                         type : uint64_t
    121                 },
    122                 {
    123                         name : x18,
    124                         type : uint64_t
    125                 },
    126                 {
    127                         name : x19,
    128                         type : uint64_t
    129                 },
    130                 {
    131                         name : x20,
    132                         type : uint64_t
    133                 },
    134                 {
    135                         name : x21,
    136                         type : uint64_t
    137                 },
    138                 {
    139                         name : x22,
    140                         type : uint64_t
    141                 },
    142                 {
    143                         name : x23,
    144                         type : uint64_t
    145                 },
    146                 {
    147                         name : x24,
    148                         type : uint64_t
    149                 },
    150                 {
    151                         name : x25,
    152                         type : uint64_t
    153                 },
    154                 {
    155                         name : x26,
    156                         type : uint64_t
    157                 },
    158                 {
    159                         name : x27,
    160                         type : uint64_t
    161                 },
    162                 {
    163                         name : x28,
    164                         type : uint64_t
    165                 },
    166                 {
    167                         name : x29,
    168                         type : uint64_t
    169                 },
    170                 {
    171                         name : x30,
    172                         type : uint64_t
    173                 },
    174                 {
    175                         name : x31,
     106                        name : s11,
    176107                        type : uint64_t
    177108                },
Note: See TracChangeset for help on using the changeset viewer.