URL
https://opencores.org/ocsvn/or1k/or1k/trunk
Subversion Repositories or1k
[/] [or1k/] [trunk/] [newlib/] [newlib/] [libc/] [sys/] [sparc64/] [sbrk.S] - Rev 1765
Compare with Previous | Blame | View Log
! sbrk() system call#include "sys/syscallasm.h"DATA_SECTIONALIGN (4)! CURBRK contains the current top of allocated space.! END is a private symbol in svr4, but a public one in sunos4.! FIXME: CURBRK is 4 bytes for now.GLOBAL (ASM_PRIVATE_SYMBOL (curbrk))ASM_PRIVATE_SYMBOL (curbrk):#ifdef __svr4__WORD (ASM_PRIVATE_SYMBOL (end))#elseWORD (ASM_SYMBOL (end))#endifTEXT_SECTIONALIGN (4)#ifdef REENTGLOBAL (ASM_SYMBOL (_sbrk_r))ASM_SYMBOL (_sbrk_r):mov %o0,%o5mov %o1,%o0#elseGLOBAL (ASM_SYMBOL (sbrk))ASM_SYMBOL (sbrk):#endifadd %o0,7,%o0andn %o0,7,%o0sethi %hi (ASM_PRIVATE_SYMBOL (curbrk)),%o2lduw [%o2+%lo (ASM_PRIVATE_SYMBOL (curbrk))],%o3add %o3,7,%o3andn %o3,7,%o3add %o3,%o0,%o0mov %o0,%o4mov SYS_brk,%g1ta SYSCALL_TRAPbcs errnopstw %o4,[%o2+%lo (ASM_PRIVATE_SYMBOL (curbrk))]jmpl %o7+8,%g0mov %o3,%o0#ifdef REENTGLOBAL (ASM_SYMBOL (_brk_r))ASM_SYMBOL (_brk_r):mov %o0,%o5mov %o1,%o0#elseGLOBAL (ASM_SYMBOL (brk))ASM_SYMBOL (brk):#endifadd %o0,7,%o0andn %o0,7,%o0mov %o0,%o2mov SYS_brk,%g1ta SYSCALL_TRAPbcs errnopsethi %hi (ASM_PRIVATE_SYMBOL (curbrk)),%o3st %o2,[%o3+%lo (ASM_PRIVATE_SYMBOL (curbrk))]retlmov %g0,%o0err:#ifdef REENTsethi %hi (ASM_PRIVATE_SYMBOL (cerror_r)),%g1or %g1,%lo (ASM_PRIVATE_SYMBOL (cerror_r)),%g1#elsesethi %hi (ASM_PRIVATE_SYMBOL (cerror)),%g1or %g1,%lo (ASM_PRIVATE_SYMBOL (cerror)),%g1#endifjmpl %g1,%g0mov %o5,%o1
