]> git.ipfire.org Git - thirdparty/glibc.git/blame - sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S
Prefer https to http for gnu.org and fsf.org URLs
[thirdparty/glibc.git] / sysdeps / unix / sysv / linux / powerpc / powerpc32 / brk.S
CommitLineData
4cca6b86 1/* brk system call for Linux/ppc.
04277e02 2 Copyright (C) 1995-2019 Free Software Foundation, Inc.
4cca6b86
UD
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
41bdb6e2
AJ
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
4cca6b86
UD
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
41bdb6e2 13 Lesser General Public License for more details.
4cca6b86 14
41bdb6e2 15 You should have received a copy of the GNU Lesser General Public
59ba27a6 16 License along with the GNU C Library; if not, see
5a82c748 17 <https://www.gnu.org/licenses/>. */
4cca6b86
UD
18
19#include <sysdep.h>
9a0a462c
UD
20#define _ERRNO_H 1
21#include <bits/errno.h>
22
23 .comm __curbrk,4,4
24 .section ".text"
b5510883 25ENTRY (__brk)
a7e91561 26 mflr r0
acf47bbe 27 stwu r1,-16(r1)
a7e91561 28 cfi_adjust_cfa_offset (16)
acf47bbe 29 stw r3,8(r1)
a7e91561
UD
30 stw r0,20(r1)
31 cfi_offset (lr, 4)
9a0a462c 32 DO_CALL(SYS_ify(brk))
acf47bbe 33 lwz r6,8(r1)
9a0a462c 34#ifdef PIC
91d2a845
WS
35 SETUP_GOT_ACCESS(r5,got_label)
36 addis r5,r5,__curbrk-got_label@ha
37 stw r3,__curbrk-got_label@l(r5)
9a0a462c 38#else
053cc7bb 39 lis r4,__curbrk@ha
9b6a9cee 40 stw r3,__curbrk@l(r4)
9a0a462c 41#endif
a7e91561 42 lwz r0,20(r1)
acf47bbe
UD
43 cmplw r6,r3
44 addi r1,r1,16
a7e91561 45 mtlr r0
acf47bbe 46 li r3,0
9a0a462c 47 blelr+
acf47bbe 48 li r3,ENOMEM
b0e196a4 49 b __syscall_error@local
b5510883 50END (__brk)
4cca6b86 51
b5510883 52weak_alias (__brk, brk)