Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 1692 → Rev 1693

/programs/develop/libraries/newlib/crt/start.S
0,0 → 1,40
 
.section .init
 
.global __start
.global __exit
.global __Exit
 
.align 4
__start:
movl $68, %eax
movl $12, %ebx
lea __size_of_stack_reserve__, %ecx
addl $4095, %ecx #load stack size
andl $-4096, %ecx #align to page granularity
int $0x40 #and allocate
testl %eax, %eax
jz 1f
 
addl %eax, %ecx
movl %eax, %fs:4
movl %ecx, %fs:8 #save stack base - low limit
#save stack top - high limit
movl %ecx, %esp
jmp ___crt_startup #reload stack
1:
int3 #trap to debugger
 
.ascii "No enough memory for stack allocation"
 
.align 4
__exit:
__Exit:
movl 4(%esp), %edx #store exit code
movl $68, %eax
movl $13, %ebx
movl %fs:4, %ecx
int $0x40 #destroy stack
 
movl $-1, %eax
int $0x40 #terminate thread