Changeset 48c1ef9 in mainline for arch/ppc64/src/asm.S


Ignore:
Timestamp:
2006-05-21T20:38:18Z (19 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
040542aa
Parents:
bd55bbb
Message:

port ppc32 changes to ppc64 (raw)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • arch/ppc64/src/asm.S

    rbd55bbb r48c1ef9  
    3131.text
    3232
     33.global userspace_asm
    3334.global iret
     35.global iret_syscall
    3436.global memsetb
    3537.global memcpy
     38.global memcpy_from_uspace
     39.global memcpy_to_uspace
     40.global memcpy_from_uspace_failover_address
     41.global memcpy_to_uspace_failover_address
     42
     43userspace_asm:
     44
     45        # r3 = uspace_uarg
     46        # r4 = stack
     47        # r5 = entry
     48       
     49        # disable interrupts
     50
     51        mfmsr r31
     52        rlwinm r31, r31, 0, 17, 15
     53        mtmsr r31
     54       
     55        # set entry point
     56       
     57        mtsrr0 r5
     58       
     59        # set problem state, enable interrupts
     60       
     61        ori r31, r31, msr_pr
     62        ori r31, r31, msr_ee
     63        mtsrr1 r31
     64       
     65        # set stack
     66       
     67        mr sp, r4
     68       
     69        # jump to userspace
     70       
     71        rfi
    3672
    3773iret:
    38         lwz r3, 144(sp)
    39         mtxer r3
    40        
    41         lwz r3, 140(sp)
    42         mtctr r3
    43        
    44         lwz r3, 136(sp)
    45         mtcr r3
    46        
    47         lwz r3, 132(sp)
    48         mtlr r3
    49        
    50         lwz r3, 128(sp)
    51         mtspr srr1, r3
    52        
    53         lwz r3, 124(sp)
    54         mtspr srr0, r3
    55        
    56         lwz r0, 0(sp)
    57         lwz r2, 4(sp)
    58         lwz r3, 8(sp)
    59         lwz r4, 12(sp)
    60         lwz r5, 16(sp)
    61         lwz r6, 20(sp)
    62         lwz r7, 24(sp)
    63         lwz r8, 28(sp)
    64         lwz r9, 32(sp)
    65         lwz r10, 36(sp)
    66         lwz r11, 40(sp)
    67         lwz r12, 44(sp)
    68         lwz r13, 48(sp)
    69         lwz r14, 52(sp)
    70         lwz r15, 56(sp)
    71         lwz r16, 60(sp)
    72         lwz r17, 64(sp)
    73         lwz r18, 68(sp)
    74         lwz r19, 72(sp)
    75         lwz r20, 76(sp)
    76         lwz r21, 80(sp)
    77         lwz r22, 84(sp)
    78         lwz r23, 88(sp)
    79         lwz r24, 92(sp)
    80         lwz r25, 96(sp)
    81         lwz r26, 100(sp)
    82         lwz r27, 104(sp)
    83         lwz r28, 108(sp)
    84         lwz r29, 112(sp)
    85         lwz r30, 116(sp)
    86         lwz r31, 120(sp)
    87        
    88         mfspr sp, sprg1
    89        
     74       
     75        # disable interrupts
     76       
     77        mfmsr r31
     78        rlwinm r31, r31, 0, 17, 15
     79        mtmsr r31
     80       
     81        lwz r0, 8(sp)
     82        lwz r2, 12(sp)
     83        lwz r3, 16(sp)
     84        lwz r4, 20(sp)
     85        lwz r5, 24(sp)
     86        lwz r6, 28(sp)
     87        lwz r7, 32(sp)
     88        lwz r8, 36(sp)
     89        lwz r9, 40(sp)
     90        lwz r10, 44(sp)
     91        lwz r11, 48(sp)
     92        lwz r13, 52(sp)
     93        lwz r14, 56(sp)
     94        lwz r15, 60(sp)
     95        lwz r16, 64(sp)
     96        lwz r17, 68(sp)
     97        lwz r18, 72(sp)
     98        lwz r19, 76(sp)
     99        lwz r20, 80(sp)
     100        lwz r21, 84(sp)
     101        lwz r22, 88(sp)
     102        lwz r23, 92(sp)
     103        lwz r24, 96(sp)
     104        lwz r25, 100(sp)
     105        lwz r26, 104(sp)
     106        lwz r27, 108(sp)
     107        lwz r28, 112(sp)
     108        lwz r29, 116(sp)
     109        lwz r30, 120(sp)
     110        lwz r31, 124(sp)
     111       
     112        lwz r12, 128(sp)
     113        mtcr r12
     114       
     115        lwz r12, 132(sp)
     116        mtsrr0 r12
     117       
     118        lwz r12, 136(sp)
     119        mtsrr1 r12
     120       
     121        lwz r12, 140(sp)
     122        mtlr r12
     123       
     124        lwz r12, 144(sp)
     125        mtctr r12
     126       
     127        lwz r12, 148(sp)
     128        mtxer r12
     129       
     130        lwz r12, 152(sp)
     131        lwz sp, 156(sp)
     132       
     133        rfi
     134
     135iret_syscall:
     136       
     137        # reset decrementer
     138
     139        li r31, 1000
     140        mtdec r31
     141       
     142        # disable interrupts
     143       
     144        mfmsr r31
     145        rlwinm r31, r31, 0, 17, 15
     146        mtmsr r31
     147       
     148        lwz r0, 8(sp)
     149        lwz r2, 12(sp)
     150        lwz r4, 20(sp)
     151        lwz r5, 24(sp)
     152        lwz r6, 28(sp)
     153        lwz r7, 32(sp)
     154        lwz r8, 36(sp)
     155        lwz r9, 40(sp)
     156        lwz r10, 44(sp)
     157        lwz r11, 48(sp)
     158        lwz r13, 52(sp)
     159        lwz r14, 56(sp)
     160        lwz r15, 60(sp)
     161        lwz r16, 64(sp)
     162        lwz r17, 68(sp)
     163        lwz r18, 72(sp)
     164        lwz r19, 76(sp)
     165        lwz r20, 80(sp)
     166        lwz r21, 84(sp)
     167        lwz r22, 88(sp)
     168        lwz r23, 92(sp)
     169        lwz r24, 96(sp)
     170        lwz r25, 100(sp)
     171        lwz r26, 104(sp)
     172        lwz r27, 108(sp)
     173        lwz r28, 112(sp)
     174        lwz r29, 116(sp)
     175        lwz r30, 120(sp)
     176        lwz r31, 124(sp)
     177       
     178        lwz r12, 128(sp)
     179        mtcr r12
     180       
     181        lwz r12, 132(sp)
     182        mtsrr0 r12
     183       
     184        lwz r12, 136(sp)
     185        mtsrr1 r12
     186       
     187        lwz r12, 140(sp)
     188        mtlr r12
     189       
     190        lwz r12, 144(sp)
     191        mtctr r12
     192       
     193        lwz r12, 148(sp)
     194        mtxer r12
     195       
     196        lwz r12, 152(sp)
     197        lwz sp, 156(sp)
     198
    90199        rfi
    91200       
     
    134243
    135244memcpy:
     245memcpy_from_uspace:
     246memcpy_to_uspace:
     247
    136248        srwi. r7, r5, 3
    137249        addi r6, r3, -4
     
    194306        mtctr r7
    195307        b 1b
     308
     309memcpy_from_uspace_failover_address:
     310memcpy_to_uspace_failover_address:
     311        b memcpy_from_uspace_failover_address
Note: See TracChangeset for help on using the changeset viewer.