1*2fe8fb19SBen Gras/* $NetBSD: brk.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/brk.S,v 1.4 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 GrasIMPORT(__curbrk, 8) 37*2fe8fb19SBen Gras 38*2fe8fb19SBen Gras .data 39*2fe8fb19SBen GrasEXPORT(__minbrk) 40*2fe8fb19SBen Gras .quad _end 41*2fe8fb19SBen Gras 42*2fe8fb19SBen Gras .text 43*2fe8fb19SBen GrasENTRY(_brk, 1) 44*2fe8fb19SBen Gras add r14=@ltoff(__minbrk),gp ;; 45*2fe8fb19SBen Gras ld8 r14=[r14] ;; 46*2fe8fb19SBen Gras ld8 r14=[r14] ;; 47*2fe8fb19SBen Gras cmp.ltu p6,p0=r32,r14 ;; 48*2fe8fb19SBen Gras(p6) mov r32=r14 ;; 49*2fe8fb19SBen Gras st8 [sp]=r32 50*2fe8fb19SBen Gras CALLSYS_ERROR(break) 51*2fe8fb19SBen Gras ld8 r15=[sp] 52*2fe8fb19SBen Gras add r14=@ltoff(__curbrk),gp ;; 53*2fe8fb19SBen Gras ld8 r14=[r14] ;; 54*2fe8fb19SBen Gras st8 [r14]=r15 55*2fe8fb19SBen Gras mov ret0=0 56*2fe8fb19SBen Gras br.ret.sptk.few rp 57*2fe8fb19SBen GrasEND(_brk) 58