Remove building with NOCRYPTO option
[minix3.git] / lib / libc / arch / or1k / sys / sbrk.S
blob547d530de9df6259b4b9b48bd71f4d3252555582
1 /*      $NetBSD: sbrk.S,v 1.1 2014/09/03 19:34:26 matt Exp $    */
3 #include "SYS.h"
5 #if defined(LIBC_SCCS) && !defined(lint)
6 __RCSID("$NetBSD: sbrk.S,v 1.1 2014/09/03 19:34:26 matt Exp $")
7 #endif /* LIBC_SCCS && !lint */
9         .hidden _C_LABEL(__curbrk)
10         .globl  _C_LABEL(__curbrk)
12 #ifdef WEAK_ALIAS
13 WEAK_ALIAS(sbrk, _sbrk)
14 #endif
16 ENTRY(_sbrk)
17 #ifdef __PIC__
18         l.or    r8,r9,r0
19         PIC_GOTSETUP(r6)
20         l.or    r9,r8,r0
21         l.movhi r5,gotoffhi(_C_LABEL(__curbrk))
22         l.ori   r5,r5,gotofflo(_C_LABEL(__curbrk))
23         l.add   r5,r5,r6
24 #else
25         l.movhi r5,hi(_C_LABEL(__curbrk))
26         l.ori   r5,r5,lo(_C_LABEL(__curbrk))    # r5 = old break;
27 #endif
28         l.lwz   r6,0(r5)                        # r6 = old break, r5 = &curbrk
29         l.add   r3,r3,r6
30         _DOSYSCALL(break)                       # break(new_break)
31         l.bf    _C_LABEL(__cerror)
32         l.nop
33         l.sw    0(r5),r3                        # record new break
34         l.or    r11,r6,r0                       # set return value
35         l.jr    lr
36         l.nop
37 END(_sbrk)