1*01422588Sguenther/* $OpenBSD: sbrk.S,v 1.17 2016/05/30 05:18:52 guenther Exp $ */ 2b8d7f14dSmickey 3b8d7f14dSmickey/* 4b8d7f14dSmickey * Copyright (c) 1999 Michael Shalayeff 5b8d7f14dSmickey * All rights reserved. 6b8d7f14dSmickey * 7b8d7f14dSmickey * Redistribution and use in source and binary forms, with or without 8b8d7f14dSmickey * modification, are permitted provided that the following conditions 9b8d7f14dSmickey * are met: 10b8d7f14dSmickey * 1. Redistributions of source code must retain the above copyright 11b8d7f14dSmickey * notice, this list of conditions and the following disclaimer. 12b8d7f14dSmickey * 2. Redistributions in binary form must reproduce the above copyright 13b8d7f14dSmickey * notice, this list of conditions and the following disclaimer in the 14b8d7f14dSmickey * documentation and/or other materials provided with the distribution. 15b8d7f14dSmickey * 16b8d7f14dSmickey * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 17b8d7f14dSmickey * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 18b8d7f14dSmickey * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 19b8d7f14dSmickey * IN NO EVENT SHALL THE AUTHOR OR HIS RELATIVES BE LIABLE FOR ANY DIRECT, 20b8d7f14dSmickey * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21b8d7f14dSmickey * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 22b8d7f14dSmickey * SERVICES; LOSS OF MIND, USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23b8d7f14dSmickey * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 24b8d7f14dSmickey * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 25b8d7f14dSmickey * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 26b8d7f14dSmickey * THE POSSIBILITY OF SUCH DAMAGE. 27b8d7f14dSmickey */ 28b8d7f14dSmickey 29c9d8341bSmickey#include "SYS.h" 30c9d8341bSmickey 31*01422588Sguenther .import _end, data 32b8d7f14dSmickey 337fcc402fSmickey .data 34b6c3a27aSmickey .export __curbrk, data 35b6c3a27aSmickey__curbrk 36*01422588Sguenther .long _end 37b8d7f14dSmickey 383f373d41Sguenther .weak sbrk 39b3b7ef2eSguenther 403f373d41SguentherLEAF_ENTRY(sbrk) 4132b97dedSpascal#ifdef __PIC__ 42b1011d27Smickey addil LT%__curbrk, r19 43b1011d27Smickey ldw RT%__curbrk(r1), t1 44b1011d27Smickey ldw 0(t1), t2 45b1011d27Smickey#else 46b6c3a27aSmickey ldil L%__curbrk, t1 47b6c3a27aSmickey ldw R%__curbrk(t1), t2 48b1011d27Smickey#endif 497fcc402fSmickey add arg0, t2, arg0 50b8d7f14dSmickey stw arg0, HPPA_FRAME_ARG(0)(sp) 51b8d7f14dSmickey 52b8d7f14dSmickey SYSCALL(break) 53b8d7f14dSmickey 5432b97dedSpascal#ifdef __PIC__ 55b1011d27Smickey addil LT%__curbrk, r19 56b1011d27Smickey ldw RT%__curbrk(r1), t1 57b1011d27Smickey#else 58b6c3a27aSmickey ldil L%__curbrk, t1 59b1011d27Smickey ldo R%__curbrk(t1), t1 60b1011d27Smickey#endif 617fcc402fSmickey ldw HPPA_FRAME_ARG(0)(sp), arg0 62b1011d27Smickey ldw 0(t1), ret0 63b344cd0aSmickey bv r0(rp) 64b1011d27Smickey stw arg0, 0(t1) 65b8d7f14dSmickey 663f373d41SguentherEXIT(sbrk) 67c9d8341bSmickey 68c9d8341bSmickey .end 69b8d7f14dSmickey 70