Changeset 60049aa in mainline


Ignore:
Timestamp:
2005-05-27T16:57:56Z (20 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
87cb9e2
Parents:
fc9c4e1
Message:

IA-64 work.
Save/restore the rest of AR registers (i.e. RSE registers) in context_save()/context_restore().

File:
1 edited

Legend:

Unmodified
Added
Removed
  • arch/ia64/src/context.S

    rfc9c4e1 r60049aa  
    3737        /* loc2 */
    3838        mov loc3 = ar.rsc
    39         mov loc4 = ar.bsp
     39
     40        .auto
     41
     42        /*
     43         * Flush dirty registers to backing store.
     44         * After this ar.bsp and ar.bspstore are equal.
     45         */
     46        flushrs
     47        mov loc4 = ar.bsp       
     48       
     49        /*
     50         * Put RSE to enforced lazy mode.
     51         * So that ar.rnat can be read.
     52         */
     53        movl loc5 = ~3
     54        and loc5 = loc3, loc5
     55        mov ar.rsc = loc5
    4056        mov loc5 = ar.rnat
     57
     58        .explicit
     59
    4160        mov loc6 = ar.lc
    4261        mov loc7 = ar.ec
     
    146165        ld8 loc10 = [in0], 8    ;;      /* load ar.ssd */
    147166       
     167        .auto   
     168
     169        /*
     170         * Invalidate the ALAT
     171         */
     172        invala
     173
    148174        /*
    149175         * Restore application registers
    150176         */
     177
     178        mov ar.bspstore = loc4
     179        mov ar.rnat = loc5
     180        mov ar.pfs = loc0
     181        mov ar.rsc = loc3
     182
     183        .explicit
     184
    151185        mov ar.unat = loc2      ;;
    152         /* TODO: restore ar.rsc, ar.rnat, ar.bspstore */       
    153186        mov ar.lc = loc6
    154187        mov ar.ec = loc7
     
    218251        mov pr = loc2, ~0
    219252       
    220         mov ar.pfs = loc0
    221253        mov ar.unat = loc1
    222254       
Note: See TracChangeset for help on using the changeset viewer.