Subversion Repositories HelenOS

Rev

Rev 2465 | Rev 3222 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2465 Rev 2477
Line 85... Line 85...
85
    ipl_t user_mode = current_status_reg_read() &
85
    ipl_t user_mode = current_status_reg_read() &
86
        (~STATUS_REG_MODE_MASK | USER_MODE);
86
        (~STATUS_REG_MODE_MASK | USER_MODE);
87
 
87
 
88
    /* set user mode, set registers, jump */
88
    /* set user mode, set registers, jump */
89
    asm volatile (
89
    asm volatile (
90
        "mov r0, %0         \n"
90
        "mov sp, %0         \n"
91
        "msr spsr_c, %1         \n"
91
        "msr spsr_c, %1         \n"
92
        "ldmfd r0!, {r0-r12, sp, lr}^   \n"
92
        "ldmfd sp!, {r0-r12, sp, lr}^   \n"
93
        "ldmfd r0!, {pc}^\n"
93
        "ldmfd sp!, {pc}^\n"
94
        :
94
        :
95
        : "r" (&ustate), "r" (user_mode)
95
        : "r" (&ustate), "r" (user_mode)
96
        : "r0", "r1"
-
 
97
    );
96
    );
98
 
97
 
99
    /* unreachable */
98
    /* unreachable */
100
    while(1)
99
    while(1)
101
        ;
100
        ;