Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ppc32/src/fpu_context.S

    r9d58539 ra595f5a  
    2828
    2929#include <arch/asm/regname.h>
    30 #include <arch/context_offset.h>
     30#include <arch/fpu_context_struct.h>
     31#include <arch/msr.h>
    3132
    3233.text
     
    3940
    4041.macro FPU_CONTEXT_STORE r
    41         stfd fr14, OFFSET_FR14(\r)
    42         stfd fr15, OFFSET_FR15(\r)
    43         stfd fr16, OFFSET_FR16(\r)
    44         stfd fr17, OFFSET_FR17(\r)
    45         stfd fr18, OFFSET_FR18(\r)
    46         stfd fr19, OFFSET_FR19(\r)
    47         stfd fr20, OFFSET_FR20(\r)
    48         stfd fr21, OFFSET_FR21(\r)
    49         stfd fr22, OFFSET_FR22(\r)
    50         stfd fr23, OFFSET_FR23(\r)
    51         stfd fr24, OFFSET_FR24(\r)
    52         stfd fr25, OFFSET_FR25(\r)
    53         stfd fr26, OFFSET_FR26(\r)
    54         stfd fr27, OFFSET_FR27(\r)
    55         stfd fr28, OFFSET_FR28(\r)
    56         stfd fr29, OFFSET_FR29(\r)
    57         stfd fr30, OFFSET_FR30(\r)
    58         stfd fr31, OFFSET_FR31(\r)
     42        stfd fr0, FPU_CONTEXT_OFFSET_FR0(\r)
     43        stfd fr1, FPU_CONTEXT_OFFSET_FR1(\r)
     44        stfd fr2, FPU_CONTEXT_OFFSET_FR2(\r)
     45        stfd fr3, FPU_CONTEXT_OFFSET_FR3(\r)
     46        stfd fr4, FPU_CONTEXT_OFFSET_FR4(\r)
     47        stfd fr5, FPU_CONTEXT_OFFSET_FR5(\r)
     48        stfd fr6, FPU_CONTEXT_OFFSET_FR6(\r)
     49        stfd fr7, FPU_CONTEXT_OFFSET_FR7(\r)
     50        stfd fr8, FPU_CONTEXT_OFFSET_FR8(\r)
     51        stfd fr9, FPU_CONTEXT_OFFSET_FR9(\r)
     52        stfd fr10, FPU_CONTEXT_OFFSET_FR10(\r)
     53        stfd fr11, FPU_CONTEXT_OFFSET_FR11(\r)
     54        stfd fr12, FPU_CONTEXT_OFFSET_FR12(\r)
     55        stfd fr13, FPU_CONTEXT_OFFSET_FR13(\r)
     56        stfd fr14, FPU_CONTEXT_OFFSET_FR14(\r)
     57        stfd fr15, FPU_CONTEXT_OFFSET_FR15(\r)
     58        stfd fr16, FPU_CONTEXT_OFFSET_FR16(\r)
     59        stfd fr17, FPU_CONTEXT_OFFSET_FR17(\r)
     60        stfd fr18, FPU_CONTEXT_OFFSET_FR18(\r)
     61        stfd fr19, FPU_CONTEXT_OFFSET_FR19(\r)
     62        stfd fr20, FPU_CONTEXT_OFFSET_FR20(\r)
     63        stfd fr21, FPU_CONTEXT_OFFSET_FR21(\r)
     64        stfd fr22, FPU_CONTEXT_OFFSET_FR22(\r)
     65        stfd fr23, FPU_CONTEXT_OFFSET_FR23(\r)
     66        stfd fr24, FPU_CONTEXT_OFFSET_FR24(\r)
     67        stfd fr25, FPU_CONTEXT_OFFSET_FR25(\r)
     68        stfd fr26, FPU_CONTEXT_OFFSET_FR26(\r)
     69        stfd fr27, FPU_CONTEXT_OFFSET_FR27(\r)
     70        stfd fr28, FPU_CONTEXT_OFFSET_FR28(\r)
     71        stfd fr29, FPU_CONTEXT_OFFSET_FR29(\r)
     72        stfd fr30, FPU_CONTEXT_OFFSET_FR30(\r)
     73        stfd fr31, FPU_CONTEXT_OFFSET_FR31(\r)
    5974.endm
    6075
    6176.macro FPU_CONTEXT_LOAD r
    62         lfd fr14, OFFSET_FR14(\r)
    63         lfd fr15, OFFSET_FR15(\r)
    64         lfd fr16, OFFSET_FR16(\r)
    65         lfd fr17, OFFSET_FR17(\r)
    66         lfd fr18, OFFSET_FR18(\r)
    67         lfd fr19, OFFSET_FR19(\r)
    68         lfd fr20, OFFSET_FR20(\r)
    69         lfd fr21, OFFSET_FR21(\r)
    70         lfd fr22, OFFSET_FR22(\r)
    71         lfd fr23, OFFSET_FR23(\r)
    72         lfd fr24, OFFSET_FR24(\r)
    73         lfd fr25, OFFSET_FR25(\r)
    74         lfd fr26, OFFSET_FR26(\r)
    75         lfd fr27, OFFSET_FR27(\r)
    76         lfd fr28, OFFSET_FR28(\r)
    77         lfd fr29, OFFSET_FR29(\r)
    78         lfd fr30, OFFSET_FR30(\r)
    79         lfd fr31, OFFSET_FR31(\r)
     77        lfd fr0, FPU_CONTEXT_OFFSET_FR0(\r)
     78        lfd fr1, FPU_CONTEXT_OFFSET_FR1(\r)
     79        lfd fr2, FPU_CONTEXT_OFFSET_FR2(\r)
     80        lfd fr3, FPU_CONTEXT_OFFSET_FR3(\r)
     81        lfd fr4, FPU_CONTEXT_OFFSET_FR4(\r)
     82        lfd fr5, FPU_CONTEXT_OFFSET_FR5(\r)
     83        lfd fr6, FPU_CONTEXT_OFFSET_FR6(\r)
     84        lfd fr7, FPU_CONTEXT_OFFSET_FR7(\r)
     85        lfd fr8, FPU_CONTEXT_OFFSET_FR8(\r)
     86        lfd fr9, FPU_CONTEXT_OFFSET_FR9(\r)
     87        lfd fr10, FPU_CONTEXT_OFFSET_FR10(\r)
     88        lfd fr11, FPU_CONTEXT_OFFSET_FR11(\r)
     89        lfd fr12, FPU_CONTEXT_OFFSET_FR12(\r)
     90        lfd fr13, FPU_CONTEXT_OFFSET_FR13(\r)
     91        lfd fr14, FPU_CONTEXT_OFFSET_FR14(\r)
     92        lfd fr15, FPU_CONTEXT_OFFSET_FR15(\r)
     93        lfd fr16, FPU_CONTEXT_OFFSET_FR16(\r)
     94        lfd fr17, FPU_CONTEXT_OFFSET_FR17(\r)
     95        lfd fr18, FPU_CONTEXT_OFFSET_FR18(\r)
     96        lfd fr19, FPU_CONTEXT_OFFSET_FR19(\r)
     97        lfd fr20, FPU_CONTEXT_OFFSET_FR20(\r)
     98        lfd fr21, FPU_CONTEXT_OFFSET_FR21(\r)
     99        lfd fr22, FPU_CONTEXT_OFFSET_FR22(\r)
     100        lfd fr23, FPU_CONTEXT_OFFSET_FR23(\r)
     101        lfd fr24, FPU_CONTEXT_OFFSET_FR24(\r)
     102        lfd fr25, FPU_CONTEXT_OFFSET_FR25(\r)
     103        lfd fr26, FPU_CONTEXT_OFFSET_FR26(\r)
     104        lfd fr27, FPU_CONTEXT_OFFSET_FR27(\r)
     105        lfd fr28, FPU_CONTEXT_OFFSET_FR28(\r)
     106        lfd fr29, FPU_CONTEXT_OFFSET_FR29(\r)
     107        lfd fr30, FPU_CONTEXT_OFFSET_FR30(\r)
     108        lfd fr31, FPU_CONTEXT_OFFSET_FR31(\r)
    80109.endm
    81110
    82111fpu_context_save:
    83 //      FPU_CONTEXT_STORE r3
    84 //     
    85 //      mffs fr0
    86 //      stfd fr0, OFFSET_FPSCR(r3)
     112        FPU_CONTEXT_STORE r3
     113       
     114        mffs fr0
     115        stfd fr0, FPU_CONTEXT_OFFSET_FPSCR(r3)
    87116       
    88117        blr
    89118
    90119fpu_context_restore:
    91 //      FPU_CONTEXT_LOAD r3
    92 //     
    93 //      lfd fr0, OFFSET_FPSCR(r3)
    94 //      mtfsf 7, fr0
     120        lfd fr0, FPU_CONTEXT_OFFSET_FPSCR(r3)
     121        mtfsf 7, fr0
     122
     123        FPU_CONTEXT_LOAD r3
    95124       
    96125        blr
    97126
    98127fpu_init:
     128        mfmsr r0
     129        ori r0, r0, MSR_FP
     130
     131        # Disable FPU exceptions
     132        li r3, MSR_FE0 | MSR_FE1
     133        andc r0, r0, r3
     134
     135        mtmsr r0
    99136        blr
    100137
    101138fpu_enable:
     139        mfmsr r0
     140        ori r0, r0, MSR_FP
     141        mtmsr r0
    102142        blr
    103143
    104144fpu_disable:
     145        mfmsr r0
     146        li r3, MSR_FP
     147        andc r0, r0, r3
     148        mtmsr r0
    105149        blr
     150
Note: See TracChangeset for help on using the changeset viewer.