Changeset 94d614e in mainline for kernel/arch/sparc64/src/asm.S


Ignore:
Timestamp:
2006-07-13T17:32:38Z (19 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
a5f76758
Parents:
63cda71
Message:

Remove OpenFirmware calls from kernel/ entirely.

Switch the sparc64 port to use bootinfo.

Copy memcpy from boot/ to sparc64 kernel/ and
adjust it for memcpy_from/to_uspace.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/sparc64/src/asm.S

    r63cda71 r94d614e  
    4343memcpy_from_uspace:
    4444memcpy_to_uspace:
     45        .register       %g2, #scratch
     46        .register       %g3, #scratch
     47        add     %o1, 7, %g1
     48        and     %g1, -8, %g1
     49        cmp     %o1, %g1
     50        be,pn   %xcc, 3f
     51        add     %o0, 7, %g1
     52        mov     0, %g3
     530:
     54        brz,pn  %o2, 2f
     55        mov     0, %g2
     561:
     57        ldub    [%g3 + %o1], %g1
     58        add     %g2, 1, %g2
     59        cmp     %o2, %g2
     60        stb     %g1, [%g3 + %o0]
     61        bne,pt  %xcc, 1b
     62        mov     %g2, %g3
     632:
     64        jmp     %o7 + 8                 ! exit point
     65        mov     %o1, %o0
     663:
     67        and     %g1, -8, %g1
     68        cmp     %o0, %g1
     69        bne,pt  %xcc, 0b
     70        mov     0, %g3
     71        srlx    %o2, 3, %g4
     72        brz,pn  %g4, 5f
     73        mov     0, %g5
     744:
     75        sllx    %g3, 3, %g2
     76        add     %g5, 1, %g3
     77        ldx     [%o1 + %g2], %g1
     78        mov     %g3, %g5
     79        cmp     %g4, %g3
     80        bne,pt  %xcc, 4b
     81        stx     %g1, [%o0 + %g2]
     825:
     83        and     %o2, 7, %o2
     84        brz,pn  %o2, 2b
     85        sllx    %g4, 3, %g1
     86        mov     0, %g2
     87        add     %g1, %o0, %o0
     88        add     %g1, %o1, %g4
     89        mov     0, %g3
     906:
     91        ldub    [%g2 + %g4], %g1
     92        stb     %g1, [%g2 + %o0]
     93        add     %g3, 1, %g2
     94        cmp     %o2, %g2
     95        bne,pt  %xcc, 6b
     96        mov     %g2, %g3
    4597
    46         b _memcpy
    47         nop
     98        jmp     %o7 + 8                 ! exit point
     99        mov     %o1, %o0
    48100
    49101memcpy_from_uspace_failover_address:
    50102memcpy_to_uspace_failover_address:
    51         b memcpy_from_uspace_failover_address
    52         nop
     103        jmp     %o7 + 8                 ! exit point
     104        mov     %g0, %o0                ! return 0 on failure
    53105
    54106memsetb:
    55107        b _memsetb
    56108        nop
    57 
    58 .global ofw
    59 ofw:
    60         save %sp, -STACK_WINDOW_SAVE_AREA_SIZE, %sp
    61         set ofw_cif, %l0
    62         ldx [%l0], %l0
    63 
    64         rdpr  %pstate, %l1
    65         and  %l1, ~PSTATE_AM_BIT, %l2
    66         wrpr  %l2, 0, %pstate
    67            
    68         jmpl %l0, %o7
    69         mov %i0, %o0
    70        
    71         wrpr  %l1, 0, %pstate
    72 
    73         ret
    74         restore %o0, 0, %o0
Note: See TracChangeset for help on using the changeset viewer.