/** * \brief Jump slot entry code for x86_32 * \author Sebastian Sumpf * \date 2014-10-26 */ /* * Copyright (C) 2014 Genode Labs GmbH * * This file is part of the Genode OS framework, which is distributed * under the terms of the GNU General Public License version 2. */ .text .align 4 .globl _jmp_slot .type _jmp_slot,@function _jmp_slot: pushf pushl %eax pushl %edx pushl %ecx pushl 0x14(%esp) /* relocation index */ pushl 0x14(%esp) /* obj pointer */ call jmp_slot@PLT addl $8, %esp /* remove arguments from call */ movl %eax, 0x14(%esp) /* store synmbol value in obj pointer position */ popl %ecx popl %edx popl %eax popf leal 0x4(%esp), %esp /* remove relocation index */ ret /* return to symbol value */