~ubuntu-branches/ubuntu/utopic/libunwind/utopic-proposed

« back to all changes in this revision

Viewing changes to src/ia64/sigsetjmp-ia64.S

  • Committer: Bazaar Package Importer
  • Author(s): Matthieu Delahaye
  • Date: 2005-04-22 11:12:14 UTC
  • mto: (4.1.1 sid)
  • mto: This revision was merged to the branch mainline in revision 3.
  • Revision ID: james.westby@ubuntu.com-20050422111214-0m74olipxly1ra8a
Tags: upstream-0.98.5
ImportĀ upstreamĀ versionĀ 0.98.5

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* libunwind - a platform-independent unwind library
2
 
   Copyright (C) 2003 Hewlett-Packard Co
3
 
        Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
4
 
 
5
 
This file is part of libunwind.
6
 
 
7
 
Permission is hereby granted, free of charge, to any person obtaining
8
 
a copy of this software and associated documentation files (the
9
 
"Software"), to deal in the Software without restriction, including
10
 
without limitation the rights to use, copy, modify, merge, publish,
11
 
distribute, sublicense, and/or sell copies of the Software, and to
12
 
permit persons to whom the Software is furnished to do so, subject to
13
 
the following conditions:
14
 
 
15
 
The above copyright notice and this permission notice shall be
16
 
included in all copies or substantial portions of the Software.
17
 
 
18
 
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19
 
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20
 
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21
 
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
22
 
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
23
 
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
24
 
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  */
25
 
 
26
 
#define SIG_BLOCK 0
27
 
 
28
 
        .align 32
29
 
 
30
 
        .global __sigsetjmp
31
 
        .global sigprocmask
32
 
 
33
 
        .proc __sigsetjmp
34
 
 
35
 
__sigsetjmp:
36
 
        .prologue
37
 
        .save ar.pfs, r35
38
 
        alloc loc1 = ar.pfs, 2, 3, 3, 0
39
 
        add r16 = 16, in0
40
 
        add out2 = 24, in0
41
 
 
42
 
        st8 [in0] = sp, 8               // sigjmp_buf[0] = sp
43
 
        mov out0 = SIG_BLOCK
44
 
        .save rp, loc0
45
 
        mov loc0 = rp
46
 
        .body
47
 
        ;;
48
 
        st8 [in0] = loc0, 24            // sigjmp_buf[1] = rp
49
 
        st8 [r16] = in1                 // sigjmp_buf[2] = savemask
50
 
        cmp.ne p6, p0 = in1, r0
51
 
 
52
 
        mov out1 = r0
53
 
        mov loc2 = ar.bsp
54
 
(p6)    br.call.sptk.many rp = sigprocmask      // sigjmp_buf[3] = sigmask
55
 
        ;;
56
 
 
57
 
        st8 [in0] = loc2                // sigjmp_buf[4] = bsp
58
 
        mov rp = loc0
59
 
        nop 0
60
 
 
61
 
        mov r8 = 0
62
 
        mov.i ar.pfs = loc1
63
 
        br.ret.sptk.many rp
64
 
 
65
 
        .endp __sigsetjmp