1*8d67ca89SAndroid Build Coastguard Worker /* $NetBSD: asm.h,v 1.40 2011/06/16 13:16:20 joerg Exp $ */ 2*8d67ca89SAndroid Build Coastguard Worker 3*8d67ca89SAndroid Build Coastguard Worker /*- 4*8d67ca89SAndroid Build Coastguard Worker * Copyright (c) 1990 The Regents of the University of California. 5*8d67ca89SAndroid Build Coastguard Worker * All rights reserved. 6*8d67ca89SAndroid Build Coastguard Worker * 7*8d67ca89SAndroid Build Coastguard Worker * This code is derived from software contributed to Berkeley by 8*8d67ca89SAndroid Build Coastguard Worker * William Jolitz. 9*8d67ca89SAndroid Build Coastguard Worker * 10*8d67ca89SAndroid Build Coastguard Worker * Redistribution and use in source and binary forms, with or without 11*8d67ca89SAndroid Build Coastguard Worker * modification, are permitted provided that the following conditions 12*8d67ca89SAndroid Build Coastguard Worker * are met: 13*8d67ca89SAndroid Build Coastguard Worker * 1. Redistributions of source code must retain the above copyright 14*8d67ca89SAndroid Build Coastguard Worker * notice, this list of conditions and the following disclaimer. 15*8d67ca89SAndroid Build Coastguard Worker * 2. Redistributions in binary form must reproduce the above copyright 16*8d67ca89SAndroid Build Coastguard Worker * notice, this list of conditions and the following disclaimer in the 17*8d67ca89SAndroid Build Coastguard Worker * documentation and/or other materials provided with the distribution. 18*8d67ca89SAndroid Build Coastguard Worker * 3. Neither the name of the University nor the names of its contributors 19*8d67ca89SAndroid Build Coastguard Worker * may be used to endorse or promote products derived from this software 20*8d67ca89SAndroid Build Coastguard Worker * without specific prior written permission. 21*8d67ca89SAndroid Build Coastguard Worker * 22*8d67ca89SAndroid Build Coastguard Worker * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 23*8d67ca89SAndroid Build Coastguard Worker * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24*8d67ca89SAndroid Build Coastguard Worker * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 25*8d67ca89SAndroid Build Coastguard Worker * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 26*8d67ca89SAndroid Build Coastguard Worker * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27*8d67ca89SAndroid Build Coastguard Worker * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 28*8d67ca89SAndroid Build Coastguard Worker * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29*8d67ca89SAndroid Build Coastguard Worker * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30*8d67ca89SAndroid Build Coastguard Worker * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 31*8d67ca89SAndroid Build Coastguard Worker * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 32*8d67ca89SAndroid Build Coastguard Worker * SUCH DAMAGE. 33*8d67ca89SAndroid Build Coastguard Worker * 34*8d67ca89SAndroid Build Coastguard Worker * @(#)asm.h 5.5 (Berkeley) 5/7/91 35*8d67ca89SAndroid Build Coastguard Worker */ 36*8d67ca89SAndroid Build Coastguard Worker 37*8d67ca89SAndroid Build Coastguard Worker #pragma once 38*8d67ca89SAndroid Build Coastguard Worker 39*8d67ca89SAndroid Build Coastguard Worker #define PIC_PROLOGUE \ 40*8d67ca89SAndroid Build Coastguard Worker pushl %ebx; \ 41*8d67ca89SAndroid Build Coastguard Worker call 666f; \ 42*8d67ca89SAndroid Build Coastguard Worker 666: \ 43*8d67ca89SAndroid Build Coastguard Worker popl %ebx; \ 44*8d67ca89SAndroid Build Coastguard Worker addl $_GLOBAL_OFFSET_TABLE_+[.-666b], %ebx 45*8d67ca89SAndroid Build Coastguard Worker #define PIC_EPILOGUE \ 46*8d67ca89SAndroid Build Coastguard Worker popl %ebx 47*8d67ca89SAndroid Build Coastguard Worker #define PIC_PLT(x) x@PLT 48*8d67ca89SAndroid Build Coastguard Worker #define PIC_GOT(x) x@GOT(%ebx) 49*8d67ca89SAndroid Build Coastguard Worker #define PIC_GOTOFF(x) x@GOTOFF(%ebx) 50*8d67ca89SAndroid Build Coastguard Worker 51*8d67ca89SAndroid Build Coastguard Worker #define __bionic_asm_align 16 52