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