Changeset 9db5b66 in mainline for arch/ia64/src/context.S


Ignore:
Timestamp:
2005-05-11T00:14:42Z (19 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
00a44bc
Parents:
79f1f38f
Message:

Move architecture independent memcopy() and memsetb() out of MIPS subtree and place them in src/lib/ as _memcopy() and _memsetb().
Add MIPS native memsetb().
Add IA-64 native memcpy().

More complete and *almost* functional versions of IA-64 context_save() and context_restore().

File:
1 edited

Legend:

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

    r79f1f38f r9db5b66  
    3333
    3434context_save:
     35        alloc loc0 = ar.pfs, 1, 2, 0, 0
     36       
     37        /*
     38         * TODO: save the rest of the context registers.
     39         */
     40
     41        st8 [in0] = r1, 8       ;;
     42        st8 [in0] = r2, 8       ;;
     43        st8 [in0] = r3, 8       ;;
     44        st8 [in0] = r4, 8       ;;
     45        st8 [in0] = r5, 8       ;;
     46        st8 [in0] = r6, 8       ;;
     47        st8 [in0] = r7, 8       ;;
     48        st8 [in0] = r8, 8       ;;
     49        st8 [in0] = r9, 8       ;;
     50        st8 [in0] = r10, 8      ;;
     51        st8 [in0] = r11, 8      ;;
     52        st8 [in0] = r12, 8      ;;      /* save sp */
     53        st8 [in0] = r13, 8      ;;
     54        st8 [in0] = r14, 8      ;;
     55        st8 [in0] = r15, 8      ;;
     56        st8 [in0] = r16, 8      ;;
     57        st8 [in0] = r17, 8      ;;
     58        st8 [in0] = r18, 8      ;;
     59        st8 [in0] = r19, 8      ;;
     60        st8 [in0] = r20, 8      ;;
     61        st8 [in0] = r21, 8      ;;
     62        st8 [in0] = r22, 8      ;;
     63        st8 [in0] = r23, 8      ;;
     64        st8 [in0] = r24, 8      ;;
     65        st8 [in0] = r25, 8      ;;
     66        st8 [in0] = r26, 8      ;;
     67        st8 [in0] = r27, 8      ;;
     68        st8 [in0] = r28, 8      ;;
     69        st8 [in0] = r29, 8      ;;
     70        st8 [in0] = r30, 8      ;;
     71        st8 [in0] = r31, 8      ;;
     72
     73        /* save pc */
     74        mov loc1 = b0           ;;
     75        st8 [in0] = loc1, 8
     76       
     77        mov ar.pfs = loc0
     78       
     79        add r8 = r0, r0, 1              /* context_save returns 1 */
    3580        br.ret.sptk.many rp
    3681
    3782context_restore:
     83        alloc loc0 = ar.pfs, 1, 2, 0, 0
     84
     85        /*
     86         * TODO: restore the rest of the context registers.
     87         */
     88       
     89        ld8 r1 = [in0], 8       ;;
     90        ld8 r2 = [in0], 8       ;;
     91        ld8 r3 = [in0], 8       ;;
     92        ld8 r4 = [in0], 8       ;;
     93        ld8 r5 = [in0], 8       ;;
     94        ld8 r6 = [in0], 8       ;;
     95        ld8 r7 = [in0], 8       ;;
     96        ld8 r8 = [in0], 8       ;;
     97        ld8 r9 = [in0], 8       ;;
     98        ld8 r10 = [in0], 8      ;;
     99        ld8 r11 = [in0], 8      ;;
     100        ld8 r12 = [in0], 8      ;;      /* restore sp */
     101        ld8 r13 = [in0], 8      ;;
     102        ld8 r14 = [in0], 8      ;;
     103        ld8 r15 = [in0], 8      ;;
     104        ld8 r16 = [in0], 8      ;;
     105        ld8 r17 = [in0], 8      ;;
     106        ld8 r18 = [in0], 8      ;;
     107        ld8 r19 = [in0], 8      ;;
     108        ld8 r20 = [in0], 8      ;;
     109        ld8 r21 = [in0], 8      ;;
     110        ld8 r22 = [in0], 8      ;;
     111        ld8 r23 = [in0], 8      ;;
     112        ld8 r24 = [in0], 8      ;;
     113        ld8 r25 = [in0], 8      ;;
     114        ld8 r26 = [in0], 8      ;;
     115        ld8 r27 = [in0], 8      ;;
     116        ld8 r28 = [in0], 8      ;;
     117        ld8 r29 = [in0], 8      ;;
     118        ld8 r30 = [in0], 8      ;;
     119        ld8 r31 = [in0], 8      ;;
     120
     121        /* restore pc */
     122        ld8 loc1 = [in0], 8     ;;
     123        mov b0 = loc1
     124       
     125        mov ar.pfs = loc0
     126       
     127        mov r8 = r0                     /* context_restore returns 0 */
    38128        br.ret.sptk.many rp
Note: See TracChangeset for help on using the changeset viewer.