fixes for host gcc 4.6.1
[zpugcc/jano.git] / toolchain / gcc / newlib / libc / machine / hppa / setjmp.S
blob7dd7c74e2dd69bcd11154a14949e05af42c9d58a
1 /* Copyright (c) 1995, 2002 Red Hat Incorporated.
2  * All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions are met:
6  *
7  *    Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  *
10  *    Redistributions in binary form must reproduce the above copyright
11  *    notice, this list of conditions and the following disclaimer in the
12  *    documentation and/or other materials provided with the distribution.
13  *
14  *    The name of Red Hat Incorporated may not be used to endorse
15  *    or promote products derived from this software without specific
16  *    prior written permission.
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21  * ARE DISCLAIMED.  IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY
22  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
25  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 
27  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28  */
30 /* Note I don't know an easy way to get the FP version into the
31    traditional C library and the non-FP version into the soft-float
32    library.  Maybe we'll have to have -msoft-float trigger something
33    like -DSOFT_FLOAT if this issue ever arises.  */
35 #include "DEFS.h"
37 #if 0
38         .SPACE $PRIVATE$
39         .SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
40         .SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
41         .SPACE $TEXT$
42         .SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
43         .SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
44         .IMPORT $global$,DATA
45         .IMPORT $$dyncall,MILLICODE
46 ; gcc_compiled.:
47 #endif
48         TEXT_SEGMENT
50         .align 4
51         .EXPORT setjmp,ENTRY,PRIV_LEV=3,ARGW0=GR,RTNVAL=GR
52 setjmp
53         .PROC
54         .CALLINFO FRAME=64,NO_CALLS,SAVE_SP,ENTRY_GR=3
55         .ENTRY
56         stwm  %r30,4(%r26)
57         stwm  %r2,4(%r26)
58         stwm  %r3,4(%r26)
59         stwm  %r4,4(%r26)
60         stwm  %r5,4(%r26)
61         stwm  %r6,4(%r26)
62         stwm  %r7,4(%r26)
63         stwm  %r8,4(%r26)
64         stwm  %r9,4(%r26)
65         stwm  %r10,4(%r26)
66         stwm  %r11,4(%r26)
67         stwm  %r12,4(%r26)
68         stwm  %r13,4(%r26)
69         stwm  %r14,4(%r26)
70         stwm  %r15,4(%r26)
71         stwm  %r16,4(%r26)
72         stwm  %r17,4(%r26)
73         stwm  %r18,4(%r26)
74         stwm  %r27,4(%r26)
75 #ifdef FP
76         ; jmp_buf may only have a 4 byte alignment, so handle FP stores
77         ; very carefully.
78         fstds %fr12,-16(%r30)
79         ldw -16(%r30),%r28
80         stwm  %r28,4(%r26)
81         ldw -12(%r30),%r28
82         stwm  %r28,4(%r26) 
83         fstds %fr13,-16(%r30)
84         ldw -16(%r30),%r28
85         stwm  %r28,4(%r26)
86         ldw -12(%r30),%r28
87         stwm  %r28,4(%r26) 
88         fstds %fr14,-16(%r30)
89         ldw -16(%r30),%r28
90         stwm  %r28,4(%r26)
91         ldw -12(%r30),%r28
92         stwm  %r28,4(%r26) 
93         fstds %fr15,-16(%r30)
94         ldw -16(%r30),%r28
95         stwm  %r28,4(%r26)
96         ldw -12(%r30),%r28
97         stwm  %r28,4(%r26) 
98 #endif
100         bv 0(%r2)
101         copy %r0,%r28
102         .EXIT
103         .PROCEND
104         .align 4
105         .EXPORT longjmp,ENTRY,PRIV_LEV=3,ARGW0=GR,ARGW1=GR,RTNVAL=GR
106 longjmp
107         .PROC
108         .CALLINFO FRAME=64,NO_CALLS,SAVE_SP,ENTRY_GR=3
109         .ENTRY
110         ldwm 4(%r26),%r30
111         ldwm 4(%r26),%r2
112         ldwm 4(%r26),%r3
113         ldwm 4(%r26),%r4
114         ldwm 4(%r26),%r5
115         ldwm 4(%r26),%r6
116         ldwm 4(%r26),%r7
117         ldwm 4(%r26),%r8
118         ldwm 4(%r26),%r9
119         ldwm 4(%r26),%r10
120         ldwm 4(%r26),%r11
121         ldwm 4(%r26),%r12
122         ldwm 4(%r26),%r13
123         ldwm 4(%r26),%r14
124         ldwm 4(%r26),%r15
125         ldwm 4(%r26),%r16
126         ldwm 4(%r26),%r17
127         ldwm 4(%r26),%r18
128         ldwm 4(%r26),%r27
129 #ifdef FP
130         ldwm 4(%r26),%r28
131         stw %r28,-16(%r30)
132         ldwm 4(%r26),%r28
133         stw %r28,-12(%r30)
134         fldds -16(%r30),%fr12
135         ldwm 4(%r26),%r28
136         stw %r28,-16(%r30)
137         ldwm 4(%r26),%r28
138         stw %r28,-12(%r30)
139         fldds -16(%r30),%fr13
140         ldwm 4(%r26),%r28
141         stw %r28,-16(%r30)
142         ldwm 4(%r26),%r28
143         stw %r28,-12(%r30)
144         fldds -16(%r30),%fr14
145         ldwm 4(%r26),%r28
146         stw %r28,-16(%r30)
147         ldwm 4(%r26),%r28
148         stw %r28,-12(%r30)
149         fldds -16(%r30),%fr15
150 #endif
151         comclr,<> %r0,%r25,%r0
152         ldi 1,%r25
153         bv 0(%r2)
154         copy %r25,%r28
155         .EXIT
156         .PROCEND