source: trunk/libs/newlib/src/newlib/libc/machine/hppa/setjmp.S @ 444

Last change on this file since 444 was 444, checked in by satin@…, 6 years ago

add newlib,libalmos-mkh, restructure shared_syscalls.h and mini-libc

File size: 4.1 KB
Line 
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 */
29
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.  */
34
35#include "DEFS.h"
36
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
49
50        .align 4
51        .EXPORT setjmp,ENTRY,PRIV_LEV=3,ARGW0=GR,RTNVAL=GR
52setjmp
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
99
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
106longjmp
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
Note: See TracBrowser for help on using the repository browser.