rtld_start.S (217103) | rtld_start.S (226436) |
---|---|
1/*- 2 * Copyright 1996-1998 John D. Polstra. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 8 unchanged lines hidden (view full) --- 17 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 18 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 19 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 20 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 21 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 * | 1/*- 2 * Copyright 1996-1998 John D. Polstra. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 8 unchanged lines hidden (view full) --- 17 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 18 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 19 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 20 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 21 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 * |
25 * $FreeBSD: head/libexec/rtld-elf/amd64/rtld_start.S 217103 2011-01-07 16:07:05Z kib $ | 25 * $FreeBSD: head/libexec/rtld-elf/amd64/rtld_start.S 226436 2011-10-16 14:30:28Z eadler $ |
26 */ 27 28 .text 29 .align 4 30 .globl .rtld_start 31 .type .rtld_start,@function 32.rtld_start: 33 xorq %rbp,%rbp # Clear frame pointer for good form --- 17 unchanged lines hidden (view full) --- 51 52/* 53 * Binder entry point. Control is transferred to here by code in the PLT. 54 * On entry, there are two arguments on the stack. In ascending address 55 * order, they are (1) "obj", a pointer to the calling object's Obj_Entry, 56 * and (2) "reloff", the byte offset of the appropriate relocation entry 57 * in the PLT relocation table. 58 * | 26 */ 27 28 .text 29 .align 4 30 .globl .rtld_start 31 .type .rtld_start,@function 32.rtld_start: 33 xorq %rbp,%rbp # Clear frame pointer for good form --- 17 unchanged lines hidden (view full) --- 51 52/* 53 * Binder entry point. Control is transferred to here by code in the PLT. 54 * On entry, there are two arguments on the stack. In ascending address 55 * order, they are (1) "obj", a pointer to the calling object's Obj_Entry, 56 * and (2) "reloff", the byte offset of the appropriate relocation entry 57 * in the PLT relocation table. 58 * |
59 * We are careful to preserve all registers, even the the caller-save | 59 * We are careful to preserve all registers, even the caller-save |
60 * registers. That is because this code may be invoked by low-level 61 * assembly-language code that is not ABI-compliant. 62 * 63 * Stack map: 64 * reloff 0x60 65 * obj 0x58 66 * spare 0x50 67 * rflags 0x48 --- 49 unchanged lines hidden --- | 60 * registers. That is because this code may be invoked by low-level 61 * assembly-language code that is not ABI-compliant. 62 * 63 * Stack map: 64 * reloff 0x60 65 * obj 0x58 66 * spare 0x50 67 * rflags 0x48 --- 49 unchanged lines hidden --- |