Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • boot/arch/ia64/src/asm.S

    ra2da43c rfe7abd0  
    11#
    22# Copyright (c) 2006 Martin Decky
    3 # Copyright (c) 2006 Jakub Jermar
     3# Copyright (c) 2006 Jakub Jermar 
    44# All rights reserved.
    55#
     
    3939        br halt
    4040
     41memcpy:
     42        alloc loc0 = ar.pfs, 3, 1, 0, 0
     43
     44        adds r14 = 7, in1
     45        mov r2 = ar.lc
     46        mov r8 = in0 ;;
     47        and r14 = -8, r14 ;;
     48        cmp.ne p6, p7 = r14, in1
     49(p7)    br.cond.dpnt 3f ;;
     500:
     51        cmp.ne p6, p7 = 0, in2
     52(p7)    br.cond.dpnt 2f ;;
     53(p6)    adds r14 = -1, in2
     54(p6)    mov r16 = r0
     55(p6)    mov r17 = r0 ;;
     56(p6)    mov ar.lc = r14
     571:
     58        add r14 = r16, in1
     59        add r15 = r16, in0
     60        adds r17 = 1, r17 ;;
     61        ld1 r14 = [r14]
     62        mov r16 = r17 ;;
     63        st1 [r15] = r14
     64        br.cloop.sptk.few 1b ;;
     652:
     66        mov ar.lc = r2
     67        mov ar.pfs = loc0
     68        br.ret.sptk.many rp
     693:
     70        adds r14 = 7, in0 ;;
     71        and r14 = -8, r14 ;;
     72        cmp.eq p6, p7 = r14, in0
     73(p7)    br.cond.dptk 0b
     74        shr.u r18 = in2, 3 ;;
     75        cmp.ne p6, p7 = 0, r18
     76(p7)    br.cond.dpnt 5f ;;
     77(p6)    adds r14 = -1, r18
     78(p6)    mov r16 = r0
     79(p6)    mov r17 = r0 ;;
     80(p6)    mov ar.lc = r14
     814:
     82        shladd r14 = r16, 3, r0
     83        adds r16 = 1, r17 ;;
     84        add r15 = in1, r14
     85        add r14 = in0, r14
     86        mov r17 = r16 ;;
     87        ld8 r15 = [r15] ;;
     88        st8 [r14] = r15
     89        br.cloop.sptk.few 4b
     905:
     91        and r15 = 7, in2
     92        shladd r14 = r18, 3, r0
     93        mov r16 = r0
     94        mov r18 = r0 ;;
     95        cmp.eq p6, p7 = 0, r15
     96        add in0 = r14, in0
     97        adds r15 = -1, r15
     98        add r17 = r14, in1
     99(p6)    br.cond.dpnt 2b ;;
     100        mov ar.lc = r15
     1016:
     102        add r14 = r16, r17
     103        add r15 = r16, in0
     104        adds r16 = 1, r18 ;;
     105        ld1 r14 = [r14]
     106        mov r18 = r16 ;;
     107        st1 [r15] = r14
     108        br.cloop.sptk.few 6b ;;
     109        mov ar.lc = r2
     110        mov ar.pfs = loc0
     111        br.ret.sptk.many rp
     112
    41113jump_to_kernel:
    42114        alloc loc0 = ar.pfs, 1, 1, 0, 0
Note: See TracChangeset for help on using the changeset viewer.