~ubuntu-branches/ubuntu/utopic/sflphone/utopic-proposed

« back to all changes in this revision

Viewing changes to daemon/libs/pjproject/pjlib/src/pj/compat/longjmp_i386.S

  • Committer: Package Import Robot
  • Author(s): Mark Purcell
  • Date: 2013-06-30 11:40:56 UTC
  • mfrom: (4.1.18 saucy-proposed)
  • Revision ID: package-import@ubuntu.com-20130630114056-0np50jkyqo6vnmii
Tags: 1.2.3-2
* changeset_r92d62cfc54732bbbcfff2b1d36c096b120b981a5.diff 
  - fixes automatic endian detection 
* Update Vcs: fixes vcs-field-not-canonical

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* longjmp for i386.
2
 
   Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
3
 
   This file is part of the GNU C Library.
4
 
 
5
 
   The GNU C Library is free software; you can redistribute it and/or
6
 
   modify it under the terms of the GNU Library General Public License as
7
 
   published by the Free Software Foundation; either version 2 of the
8
 
   License, or (at your option) any later version.
9
 
 
10
 
   The GNU C Library is distributed in the hope that it will be useful,
11
 
   but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13
 
   Library General Public License for more details.
14
 
 
15
 
   You should have received a copy of the GNU Library General Public
16
 
   License along with the GNU C Library; see the file COPYING.LIB.  If not,
17
 
   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18
 
   Boston, MA 02111-1307, USA.  */
19
 
 
20
 
#define _ASM
21
 
#define _SETJMP_H
22
 
#define PJ_LINUX_KERNEL     1
23
 
#include <pj/compat/setjmp.h>
24
 
 
25
 
.global __longjmp
26
 
.type   __longjmp,%function
27
 
.align 4
28
 
__longjmp:
29
 
        movl 4(%esp), %ecx      /* User's jmp_buf in %ecx.  */
30
 
        movl 8(%esp), %eax      /* Second argument is return value.  */
31
 
        /* Save the return address now.  */
32
 
        movl (JB_PC*4)(%ecx), %edx
33
 
        /* Restore registers.  */
34
 
        movl (JB_BX*4)(%ecx), %ebx
35
 
        movl (JB_SI*4)(%ecx), %esi
36
 
        movl (JB_DI*4)(%ecx), %edi
37
 
        movl (JB_BP*4)(%ecx), %ebp
38
 
        movl (JB_SP*4)(%ecx), %esp
39
 
        /* Jump to saved PC.  */
40
 
        jmp *%edx
41
 
.size __longjmp,.-__longjmp
42