Ignore:
Timestamp:
Aug 29, 2017, 12:03:37 PM (4 years ago)
Author:
alain
Message:

This version executed successfully the user "init" process on a mono-processor TSAR architecture.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/hal/tsar_mips32/core/hal_switch.S

    r367 r406  
    3030#---------------------------------------------------------------------------------
    3131
    32     .section   .text , "ax" , @progbits
     32    .section   .switch , "ax" , @progbits
    3333
    34     .ent   hal_do_switch
    35     .globl hal_do_switch
     34    .ent     hal_do_switch
     35    .global hal_do_switch
    3636
    37     .set   noat
    38     .set   noreorder
     37    .set     noat
     38    .set     noreorder
    3939
    4040hal_do_switch:
     
    8484    sw      $31,  31*4($26)         
    8585
     86    mfc0    $27,  $12               
     87        sw      $27,  34*4($26)           /* save c0_sr to slot 34 */
     88    mfc0    $27,  $4, 2             
     89        sw      $27,  35*4($26)           /* save c0_th to slot 35 */
     90
    8691        mfc2    $27,  $0               
    8792        sw      $27,  32*4($26)           /* save c2_ptpr to slot 32 */
    8893        mfc2    $27,  $1               
    8994        sw      $27,  33*4($26)           /* save c2_mode to slot 33 */
    90 
    91     mfc0    $27,  $12               
    92         sw      $27,  34*4($26)           /* save c0_sr to slot 34 */
    93     mfc0    $27,  $4, 2             
    94         sw      $27,  35*4($26)           /* save c0_th to slot 35 */
    9595
    9696    sync                           
     
    140140        lw      $31,  31*4($26)         
    141141
    142         lw      $27,  32*4($26)         
     142        lw      $27,  32*4($26)            /* $27 <= c2_ptpr */
    143143        mtc2    $27,  $0                   /* restore c2_ptpr from slot 32 */
    144         lw      $27,  33*4($26)         
     144
     145        lw      $27,  35*4($26)            /* $27 <= c0_th */     
     146    mtc0        $27,  $4, 2                /* restore c0_th from slot 35 */
     147
     148        lw      $27,  33*4($26)            /* $27 <= c2_mode */
     149        lw      $26,  34*4($26)            /* $26 <= c0_sr */
     150
    145151        mtc2    $27,  $1                   /* restore c2_mode from slot 33 */
    146 
    147         lw      $27,  34*4($26)         
    148     mtc0        $27,  $12                  /* restore c0_sr from slot 34 */
    149         lw      $27,  35*4($26)         
    150     mtc0        $27,  $4, 2                /* restore co_th from slot 35 */
     152    mtc0        $26,  $12                  /* restore c0_sr from slot 34 */
    151153
    152154    jr      $31                        /* return to caller */
Note: See TracChangeset for help on using the changeset viewer.