Ignore:
File:
1 edited

Legend:

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

    rb66cc97 ra35b458  
    4040         * r5 = entry
    4141         */
    42        
     42
    4343        /* Disable interrupts */
    44        
     44
    4545        mfmsr r31
    4646        rlwinm r31, r31, 0, 17, 15
    4747        mtmsr r31
    4848        isync
    49        
     49
    5050        /* Set entry point */
    51        
     51
    5252        mtsrr0 r5
    53        
     53
    5454        /* Set privileged state, enable interrupts */
    55        
     55
    5656        ori r31, r31, MSR_PR
    5757        ori r31, r31, MSR_EE
    5858        mtsrr1 r31
    59        
     59
    6060        /* Set stack */
    61        
     61
    6262        mr sp, r4
    63        
     63
    6464        /* %r6 is defined to hold pcb_ptr - set it to 0 */
    65        
     65
    6666        xor r6, r6, r6
    67        
     67
    6868        /* Jump to userspace */
    69        
     69
    7070        rfi
    7171FUNCTION_END(userspace_asm)
     
    7373SYMBOL(iret)
    7474        /* Disable interrupts */
    75        
     75
    7676        mfmsr r31
    7777        rlwinm r31, r31, 0, 17, 15
    7878        mtmsr r31
    7979        isync
    80        
     80
    8181        lwz r0, ISTATE_OFFSET_R0(sp)
    8282        lwz r2, ISTATE_OFFSET_R2(sp)
     
    109109        lwz r30, ISTATE_OFFSET_R30(sp)
    110110        lwz r31, ISTATE_OFFSET_R31(sp)
    111        
     111
    112112        lwz r12, ISTATE_OFFSET_CR(sp)
    113113        mtcr r12
    114        
     114
    115115        lwz r12, ISTATE_OFFSET_PC(sp)
    116116        mtsrr0 r12
    117        
     117
    118118        lwz r12, ISTATE_OFFSET_SRR1(sp)
    119119        mtsrr1 r12
    120        
     120
    121121        lwz r12, ISTATE_OFFSET_LR(sp)
    122122        mtlr r12
    123        
     123
    124124        lwz r12, ISTATE_OFFSET_CTR(sp)
    125125        mtctr r12
    126        
     126
    127127        lwz r12, ISTATE_OFFSET_XER(sp)
    128128        mtxer r12
    129        
     129
    130130        lwz r12, ISTATE_OFFSET_R12(sp)
    131131        lwz sp, ISTATE_OFFSET_SP(sp)
    132        
     132
    133133        rfi
    134134
    135135SYMBOL(iret_syscall)
    136136        /* Disable interrupts */
    137        
     137
    138138        mfmsr r31
    139139        rlwinm r31, r31, 0, 17, 15
    140140        mtmsr r31
    141141        isync
    142        
     142
    143143        lwz r0, ISTATE_OFFSET_R0(sp)
    144144        lwz r2, ISTATE_OFFSET_R2(sp)
     
    170170        lwz r30, ISTATE_OFFSET_R30(sp)
    171171        lwz r31, ISTATE_OFFSET_R31(sp)
    172        
     172
    173173        lwz r12, ISTATE_OFFSET_CR(sp)
    174174        mtcr r12
    175        
     175
    176176        lwz r12, ISTATE_OFFSET_PC(sp)
    177177        mtsrr0 r12
    178        
     178
    179179        lwz r12, ISTATE_OFFSET_SRR1(sp)
    180180        mtsrr1 r12
    181        
     181
    182182        lwz r12, ISTATE_OFFSET_LR(sp)
    183183        mtlr r12
    184        
     184
    185185        lwz r12, ISTATE_OFFSET_CTR(sp)
    186186        mtctr r12
    187        
     187
    188188        lwz r12, ISTATE_OFFSET_XER(sp)
    189189        mtxer r12
    190        
     190
    191191        lwz r12, ISTATE_OFFSET_R12(sp)
    192192        lwz sp, ISTATE_OFFSET_SP(sp)
    193        
     193
    194194        rfi
    195195
     
    200200        addi r4, r4, -4
    201201        beq 2f
    202        
     202
    203203        andi. r0, r6, 3
    204204        mtctr r7
    205205        bne 5f
    206        
     206
    207207        1:
    208        
     208
    209209                lwz r7, 4(r4)
    210210                lwzu r8, 8(r4)
     
    212212                stwu r8, 8(r6)
    213213                bdnz 1b
    214                
     214
    215215                andi. r5, r5, 7
    216        
     216
    217217        2:
    218        
     218
    219219                cmplwi 0, r5, 4
    220220                blt 3f
    221                
     221
    222222                lwzu r0, 4(r4)
    223223                addi r5, r5, -4
    224224                stwu r0, 4(r6)
    225        
     225
    226226        3:
    227        
     227
    228228                cmpwi 0, r5, 0
    229229                beqlr
     
    231231                addi r4, r4, 3
    232232                addi r6, r6, 3
    233        
     233
    234234        4:
    235        
     235
    236236                lbzu r0, 1(r4)
    237237                stbu r0, 1(r6)
    238238                bdnz 4b
    239239                blr
    240        
     240
    241241        5:
    242        
     242
    243243                subfic r0, r0, 4
    244244                mtctr r0
    245        
     245
    246246        6:
    247        
     247
    248248                lbz r7, 4(r4)
    249249                addi r4, r4, 1
Note: See TracChangeset for help on using the changeset viewer.