sbrk.S (5790) | sbrk.S (11183) |
---|---|
1/*- 2 * Copyright (c) 1990 The Regents of the University of California. 3 * All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * William Jolitz. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 19 unchanged lines hidden (view full) --- 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 * SUCH DAMAGE. 35 * | 1/*- 2 * Copyright (c) 1990 The Regents of the University of California. 3 * All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * William Jolitz. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 19 unchanged lines hidden (view full) --- 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 * SUCH DAMAGE. 35 * |
36 * $Id: sbrk.S,v 1.1 1994/08/05 01:18:49 wollman Exp $ | 36 * $Id: sbrk.S,v 1.2 1995/01/23 01:30:04 davidg Exp $ |
37 */ 38 39#if defined(SYSLIBC_RCS) && !defined(lint) 40 .text | 37 */ 38 39#if defined(SYSLIBC_RCS) && !defined(lint) 40 .text |
41 .asciz "$Id$" | 41 .asciz "$Id: sbrk.S,v 1.2 1995/01/23 01:30:04 davidg Exp $" |
42#endif /* SYSLIBC_RCS and not lint */ 43 44#include "SYS.h" 45 46#define SYS_brk 17 47 48 .globl _end 49 .globl minbrk --- 6 unchanged lines hidden (view full) --- 56 57ENTRY(sbrk) 58#ifdef PIC 59 movl 4(%esp),%ecx 60 PIC_PROLOGUE 61 movl PIC_GOT(curbrk),%edx 62 movl (%edx),%eax 63 PIC_EPILOGUE | 42#endif /* SYSLIBC_RCS and not lint */ 43 44#include "SYS.h" 45 46#define SYS_brk 17 47 48 .globl _end 49 .globl minbrk --- 6 unchanged lines hidden (view full) --- 56 57ENTRY(sbrk) 58#ifdef PIC 59 movl 4(%esp),%ecx 60 PIC_PROLOGUE 61 movl PIC_GOT(curbrk),%edx 62 movl (%edx),%eax 63 PIC_EPILOGUE |
64 testl %ecx,%ecx 65 jz back |
|
64 addl %eax,4(%esp) 65 lea SYS_brk,%eax 66 LCALL(7,0) 67 jb err 68 PIC_PROLOGUE 69 movl PIC_GOT(curbrk),%edx 70 movl (%edx),%eax 71 addl %ecx,(%edx) 72 PIC_EPILOGUE | 66 addl %eax,4(%esp) 67 lea SYS_brk,%eax 68 LCALL(7,0) 69 jb err 70 PIC_PROLOGUE 71 movl PIC_GOT(curbrk),%edx 72 movl (%edx),%eax 73 addl %ecx,(%edx) 74 PIC_EPILOGUE |
75back: |
|
73 ret 74err: 75 jmp PIC_PLT(cerror) 76 | 76 ret 77err: 78 jmp PIC_PLT(cerror) 79 |
77#else | 80#else /* !PIC */ |
78 79 movl 4(%esp),%ecx 80 movl curbrk,%eax | 81 82 movl 4(%esp),%ecx 83 movl curbrk,%eax |
84 testl %ecx,%ecx 85 jz back |
|
81 addl %eax,4(%esp) 82 lea SYS_brk,%eax 83 LCALL(7,0) 84 jb err 85 movl curbrk,%eax 86 addl %ecx,curbrk | 86 addl %eax,4(%esp) 87 lea SYS_brk,%eax 88 LCALL(7,0) 89 jb err 90 movl curbrk,%eax 91 addl %ecx,curbrk |
92back: |
|
87 ret 88err: 89 jmp cerror | 93 ret 94err: 95 jmp cerror |
90#endif | 96#endif /* PIC */ |