1/* $NetBSD: sbrk.S,v 1.3 2016/06/30 09:14:30 mrg Exp $ */ 2 3/* 4 * Copyright (c) 1994, 1995 Carnegie-Mellon University. 5 * All rights reserved. 6 * 7 * Author: Chris G. Demetriou 8 * 9 * Permission to use, copy, modify and distribute this software and 10 * its documentation is hereby granted, provided that both the copyright 11 * notice and this permission notice appear in all copies of the 12 * software, derivative works or modified versions, and any portions 13 * thereof, and that both notices appear in supporting documentation. 14 * 15 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" 16 * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND 17 * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. 18 * 19 * Carnegie Mellon requests users of this software to return to 20 * 21 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU 22 * School of Computer Science 23 * Carnegie Mellon University 24 * Pittsburgh PA 15213-3890 25 * 26 * any improvements or extensions that they make and grant Carnegie the 27 * rights to redistribute these changes. 28 */ 29 30#include <machine/asm.h> 31/* __FBSDID("$FreeBSD: src/lib/libc/ia64/sys/sbrk.S,v 1.5 2003/05/16 21:26:39 marcel Exp $"); */ 32 33#include "SYS.h" 34 35 .globl _end 36 37#ifdef WEAK_ALIAS 38WEAK_ALIAS(sbrk, _sbrk) 39#endif 40 41 .data 42EXPORT(__curbrk) 43 .quad _end 44 45 .text 46ENTRY(_sbrk, 1) 47 add r14 = @ltoff(__curbrk), gp 48 ;; 49 ld8 r14 = [r14] 50 cmp.eq p6, p0 = r32, r0 51 ;; 52 ld8 ret0 = [r14] 53(p6) br.ret.sptk.few rp 54 ;; 55 add r32 = ret0, r32 56 ;; 57 st8 [sp] = r32 58 CALLSYS_ERROR(break) 59 ld8 r15 = [sp] 60 add r14 = @ltoff(__curbrk), gp 61 ;; 62 ld8 r14 = [r14] 63 ;; 64 ld8 ret0 = [r14] 65 st8 [r14] = r15 66 br.ret.sptk.few rp 67END(_sbrk) 68