Changeset b994a60 in mainline for arch/ia64/src/asm.S


Ignore:
Timestamp:
2006-03-09T12:44:27Z (19 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
901122b
Parents:
cd373bb
Message:

ia64 work.
Changes to make userspace work (kernel part).
Use ski.conf from contrib directory to run Ski.

There is actually no appropriate syscall handler yet.

File:
1 edited

Legend:

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

    rcd373bb rb994a60  
    2727#
    2828
     29#include <arch/register.h>
     30
    2931.text
    3032
     
    4749        }
    4850        br halt
     51
     52/** Switch to userspace - low level code.
     53 *
     54 * @param in0 Userspace entry point address.
     55 * @param in1 Userspace stack pointer address.
     56 * @param in2 Userspace register stack pointer address.
     57 * @param in3 Value to be stored in IPSR.
     58 * @param in4 Value to be stored in RSC.
     59 */
     60.global switch_to_userspace
     61switch_to_userspace:
     62        alloc loc0 = ar.pfs, 5, 3, 0, 0
     63        rsm (PSR_IC_MASK | PSR_I_MASK)          /* disable interruption collection  and interrupts */
     64        srlz.d ;;
     65        srlz.i ;;
     66       
     67        mov cr.ipsr = in3
     68        mov cr.iip = in0
     69        mov r12 = in1
     70
     71        xor r1 = r1, r1
     72       
     73        mov loc1 = cr.ifs
     74        movl loc2 = PFM_MASK ;;
     75        and loc1 = loc2, loc1 ;;
     76        mov cr.ifs = loc1 ;;                    /* prevent decrementing BSP by rfi */
     77
     78        invala
     79       
     80        mov loc1 = ar.rsc ;;
     81        and loc1 = ~3, loc1 ;;                 
     82        mov ar.rsc = loc1 ;;                    /* put RSE into enforced lazy mode */
     83
     84        flushrs ;;
     85       
     86        mov ar.bspstore = in2 ;;
     87        mov ar.rsc = in4 ;;
     88       
     89        rfi ;;
Note: See TracChangeset for help on using the changeset viewer.