Changeset b1facba in mainline for libc/arch/ia64/src/psthread.S


Ignore:
Timestamp:
2006-06-08T09:48:51Z (20 years ago)
Author:
Jakub Vana <jakub.vana@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
7674793
Parents:
07d7870
Message:

Uspace synchronous fpu context managing

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libc/arch/ia64/src/psthread.S

    r07d7870 rb1facba  
    105105         */
    106106        mov loc2 = pr           ;;
    107         st8 [in0] = loc2, 8     ;;
    108        
     107        st8 [in0] = loc2, 16;;          /* Next fpu registers should be spilled to 16B aligned address */
     108
     109        /*
     110         * Save floating-point registers.
     111         */
     112        stf.spill [in0] = f2, 16 ;;
     113        stf.spill [in0] = f3, 16 ;;
     114        stf.spill [in0] = f4, 16 ;;
     115        stf.spill [in0] = f5, 16 ;;
     116
     117        stf.spill [in0] = f16, 16 ;;
     118        stf.spill [in0] = f17, 16 ;;
     119        stf.spill [in0] = f18, 16 ;;
     120        stf.spill [in0] = f19, 16 ;;
     121        stf.spill [in0] = f20, 16 ;;
     122        stf.spill [in0] = f21, 16 ;;
     123        stf.spill [in0] = f22, 16 ;;
     124        stf.spill [in0] = f23, 16 ;;
     125        stf.spill [in0] = f24, 16 ;;
     126        stf.spill [in0] = f25, 16 ;;
     127        stf.spill [in0] = f26, 16 ;;
     128        stf.spill [in0] = f27, 16 ;;
     129        stf.spill [in0] = f28, 16 ;;
     130        stf.spill [in0] = f29, 16 ;;
     131        stf.spill [in0] = f30, 16 ;;
     132        stf.spill [in0] = f31, 16 ;;   
     133
    109134        mov ar.unat = loc1
    110135       
     
    188213         * Restore predicate registers
    189214         */
    190         ld8 loc2 = [in0], 8     ;;
     215        ld8 loc2 = [in0], 16    ;;
    191216        mov pr = loc2, ~0
     217
     218        /*
     219         * Restore floating-point registers.
     220         */
     221        ldf.fill f2 = [in0], 16 ;;
     222        ldf.fill f3 = [in0], 16 ;;
     223        ldf.fill f4 = [in0], 16 ;;
     224        ldf.fill f5 = [in0], 16 ;;
     225
     226        ldf.fill f16 = [in0], 16 ;;
     227        ldf.fill f17 = [in0], 16 ;;
     228        ldf.fill f18 = [in0], 16 ;;
     229        ldf.fill f19 = [in0], 16 ;;
     230        ldf.fill f20 = [in0], 16 ;;
     231        ldf.fill f21 = [in0], 16 ;;
     232        ldf.fill f22 = [in0], 16 ;;
     233        ldf.fill f23 = [in0], 16 ;;
     234        ldf.fill f24 = [in0], 16 ;;
     235        ldf.fill f25 = [in0], 16 ;;
     236        ldf.fill f26 = [in0], 16 ;;
     237        ldf.fill f27 = [in0], 16 ;;
     238        ldf.fill f28 = [in0], 16 ;;
     239        ldf.fill f29 = [in0], 16 ;;
     240        ldf.fill f30 = [in0], 16 ;;
     241        ldf.fill f31 = [in0], 16 ;;
    192242       
    193243        mov ar.unat = loc1
Note: See TracChangeset for help on using the changeset viewer.