1*62da6573Sskrll/* $NetBSD: brk.S,v 1.9 2020/05/10 14:34:31 skrll Exp $ */ 202ac1ae2Sfredette 302ac1ae2Sfredette/* $OpenBSD: brk.S,v 1.7 2001/06/04 23:14:04 mickey Exp $ */ 402ac1ae2Sfredette 502ac1ae2Sfredette/* 602ac1ae2Sfredette * Copyright (c) 1999 Michael Shalayeff 702ac1ae2Sfredette * All rights reserved. 802ac1ae2Sfredette * 902ac1ae2Sfredette * Redistribution and use in source and binary forms, with or without 1002ac1ae2Sfredette * modification, are permitted provided that the following conditions 1102ac1ae2Sfredette * are met: 1202ac1ae2Sfredette * 1. Redistributions of source code must retain the above copyright 1302ac1ae2Sfredette * notice, this list of conditions and the following disclaimer. 1402ac1ae2Sfredette * 2. Redistributions in binary form must reproduce the above copyright 1502ac1ae2Sfredette * notice, this list of conditions and the following disclaimer in the 1602ac1ae2Sfredette * documentation and/or other materials provided with the distribution. 1702ac1ae2Sfredette * 1802ac1ae2Sfredette * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 1902ac1ae2Sfredette * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 2002ac1ae2Sfredette * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 2102ac1ae2Sfredette * IN NO EVENT SHALL THE AUTHOR OR HIS RELATIVES BE LIABLE FOR ANY DIRECT, 2202ac1ae2Sfredette * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 2302ac1ae2Sfredette * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 2402ac1ae2Sfredette * SERVICES; LOSS OF MIND, USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2502ac1ae2Sfredette * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 2602ac1ae2Sfredette * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 2702ac1ae2Sfredette * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 2802ac1ae2Sfredette * THE POSSIBILITY OF SUCH DAMAGE. 2902ac1ae2Sfredette */ 3002ac1ae2Sfredette 3102ac1ae2Sfredette#include "SYS.h" 3202ac1ae2Sfredette 3302ac1ae2Sfredette#if defined(LIBC_SCCS) && !defined(lint) 34*62da6573Sskrll RCSID("$NetBSD: brk.S,v 1.9 2020/05/10 14:34:31 skrll Exp $") 3502ac1ae2Sfredette#endif /* LIBC_SCCS and not lint */ 3602ac1ae2Sfredette 37*62da6573Sskrll .import __curbrk, data 38*62da6573Sskrll .hidden __curbrk 39938140d1Sskrll .global _end 4002ac1ae2Sfredette 4102ac1ae2Sfredette#ifdef WEAK_ALIAS 4202ac1ae2Sfredette WEAK_ALIAS(brk, _brk) 4302ac1ae2Sfredette#endif 4402ac1ae2Sfredette 4502ac1ae2Sfredette .data 4658e86abcSfredette .export __minbrk, data 47*62da6573Sskrll .hidden __minbrk 48ed9d4336Smatt__minbrk: 49938140d1Sskrll .long _end 5002ac1ae2Sfredette 5102ac1ae2SfredetteENTRY(_brk,0) 524d12bfcdSjoerg#ifdef __PIC__ 5358e86abcSfredette addil LT%__minbrk, %r19 5458e86abcSfredette ldw RT%__minbrk(%r1), %r1 55ed9d4336Smatt ldw 0(%r1), %t2 564d12bfcdSjoerg#else /* !__PIC__ */ 57ed9d4336Smatt ldil L%__minbrk, %t1 58ed9d4336Smatt ldw R%__minbrk(%t1), %t2 594d12bfcdSjoerg#endif /* !__PIC__ */ 60ed9d4336Smatt sub,<< %t2, %arg0, %r0 61ed9d4336Smatt copy %t2, %arg0 62ed9d4336Smatt stw %arg0, HPPA_FRAME_ARG(0)(%sp) 6302ac1ae2Sfredette 6402ac1ae2Sfredette SYSCALL(break) 6502ac1ae2Sfredette 66ed9d4336Smatt ldw HPPA_FRAME_ARG(0)(%sp), %arg0 674d12bfcdSjoerg#ifdef __PIC__ 68*62da6573Sskrll addil LT%__curbrk, %r19 69*62da6573Sskrll ldw RT%__curbrk(%r1), %r1 70ed9d4336Smatt bv %r0(%rp) 71ed9d4336Smatt stw %arg0, 0(%r1) 724d12bfcdSjoerg#else /* !__PIC__ */ 73*62da6573Sskrll ldil L%__curbrk, %t1 74ed9d4336Smatt bv %r0(%rp) 75*62da6573Sskrll stw %arg0, R%__curbrk(%t1) 764d12bfcdSjoerg#endif /* !__PIC__ */ 7702ac1ae2SfredetteEXIT(brk) 7802ac1ae2Sfredette 7902ac1ae2Sfredette .end 8002ac1ae2Sfredette 81