Ignore:
File:
1 edited

Legend:

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

    rffe276f rb60c582  
    2828
    2929#include <arch/asm/regname.h>
    30 #include <arch/cpu.h>
    3130
    3231.text
     
    4443
    4544userspace_asm:
    46        
     45
    4746        # r3 = uspace_uarg
    4847        # r4 = stack
     
    5049       
    5150        # disable interrupts
    52        
     51
    5352        mfmsr r31
    5453        rlwinm r31, r31, 0, 17, 15
     
    6160        # set problem state, enable interrupts
    6261       
    63         ori r31, r31, MSR_PR
    64         ori r31, r31, MSR_EE
     62        ori r31, r31, msr_pr
     63        ori r31, r31, msr_ee
    6564        mtsrr1 r31
    6665       
     
    6867       
    6968        mr sp, r4
    70        
     69
    7170        # %r6 is defined to hold pcb_ptr - set it to 0
    72        
     71
    7372        xor r6, r6, r6
    7473       
     
    142141       
    143142        # reset decrementer
    144        
     143
    145144        li r31, 1000
    146145        mtdec r31
     
    202201        lwz r12, 156(sp)
    203202        lwz sp, 160(sp)
    204        
     203
    205204        rfi
    206205
     
    214213memcpy_from_uspace:
    215214memcpy_to_uspace:
    216        
     215
    217216        srwi. r7, r5, 3
    218217        addi r6, r3, -4
    219218        addi r4, r4, -4
    220         beq 2f
     219        beq     2f
    221220       
    222221        andi. r0, r6, 3
     
    226225        1:
    227226       
    228                 lwz r7, 4(r4)
    229                 lwzu r8, 8(r4)
    230                 stw r7, 4(r6)
    231                 stwu r8, 8(r6)
    232                 bdnz 1b
    233                
    234                 andi. r5, r5, 7
     227        lwz r7, 4(r4)
     228        lwzu r8, 8(r4)
     229        stw r7, 4(r6)
     230        stwu r8, 8(r6)
     231        bdnz 1b
     232       
     233        andi. r5, r5, 7
    235234       
    236235        2:
    237236       
    238                 cmplwi 0, r5, 4
    239                 blt 3f
    240                
    241                 lwzu r0, 4(r4)
    242                 addi r5, r5, -4
    243                 stwu r0, 4(r6)
     237        cmplwi 0, r5, 4
     238        blt 3f
     239       
     240        lwzu r0, 4(r4)
     241        addi r5, r5, -4
     242        stwu r0, 4(r6)
    244243       
    245244        3:
    246245       
    247                 cmpwi 0, r5, 0
    248                 beqlr
    249                 mtctr r5
    250                 addi r4, r4, 3
    251                 addi r6, r6, 3
     246        cmpwi 0, r5, 0
     247        beqlr
     248        mtctr r5
     249        addi r4, r4, 3
     250        addi r6, r6, 3
    252251       
    253252        4:
    254253       
    255                 lbzu r0, 1(r4)
    256                 stbu r0, 1(r6)
    257                 bdnz 4b
    258                 blr
     254        lbzu r0, 1(r4)
     255        stbu r0, 1(r6)
     256        bdnz 4b
     257        blr
    259258       
    260259        5:
    261260       
    262                 subfic r0, r0, 4
    263                 mtctr r0
     261        subfic r0, r0, 4
     262        mtctr r0
    264263       
    265264        6:
    266265       
    267                 lbz r7, 4(r4)
    268                 addi r4, r4, 1
    269                 stb r7, 4(r6)
    270                 addi r6, r6, 1
    271                 bdnz 6b
    272                 subf r5, r0, r5
    273                 rlwinm. r7, r5, 32-3, 3, 31
    274                 beq 2b
    275                 mtctr r7
    276                 b 1b
     266        lbz r7, 4(r4)
     267        addi r4, r4, 1
     268        stb r7, 4(r6)
     269        addi r6, r6, 1
     270        bdnz 6b
     271        subf r5, r0, r5
     272        rlwinm. r7, r5, 32-3, 3, 31
     273        beq 2b
     274        mtctr r7
     275        b 1b
    277276
    278277memcpy_from_uspace_failover_address:
Note: See TracChangeset for help on using the changeset viewer.