/uspace/trunk/libc/arch/mips32/src/entry.s |
---|
27,11 → 27,10 |
# |
.text |
.org 0 |
.section .init, "ax" |
.globl __start |
.global __start |
.set noreorder |
.option pic2 |
## User-space task entry point |
# |
38,16 → 37,28 |
# |
.ent __start |
__start: |
lui $28, _gp |
.frame $sp, 32, $31 |
.cpload $25 |
# Mips o32 may store its arguments on stack, make space, |
# Mips o32 may store its arguments on stack, make space (16 bytes), |
# so that it could work with -O0 |
addiu $sp, -16 |
# Make space additional 16 bytes for the stack frame |
addiu $sp, -32 |
.cprestore 16 # Allow PIC code |
jal __main |
nop |
jal main |
nop |
jal __exit |
nop |
.end __start |
# Alignment of output section data to 0x4000 |
.section .data |
.align 14 |
/uspace/trunk/libc/arch/mips32/src/thread_entry.s |
---|
27,11 → 27,11 |
# |
.text |
.set noat |
.set noreorder |
.set nomacro |
.option pic2 |
.globl __thread_entry |
## User-space thread entry point for all but the first threads. |
39,7 → 39,8 |
# |
.ent __thread_entry |
__thread_entry: |
lui $28, _gp |
.frame $sp, 32, $31 |
.cpload $25 |
# |
# v0 contains address of uarg. |
46,9 → 47,10 |
# |
add $4, $2, 0 |
# Mips o32 may store its arguments on stack, make space |
addiu $sp, -16 |
addiu $sp, -32 |
.cprestore 16 |
j __thread_main |
jal __thread_main |
nop |
# |
/uspace/trunk/libc/arch/mips32/src/psthread.S |
---|
30,7 → 30,6 |
.set noat |
.set noreorder |
.set nomacro |
#include <arch/asm/regname.h> |
83,6 → 82,10 |
context_restore: |
CONTEXT_LOAD $a0 |
# Just for the jump into first function, but one instruction |
# should not bother us |
move $t9, $ra |
# context_restore returns 0 |
j $ra |
xor $v0, $v0 |