OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [tags/] [tn_m001/] [newlib/] [newlib/] [libc/] [machine/] [hppa/] [setjmp.S] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 39 lampret
/* Copyright (c) 1995 Cygnus Support.
2
   All rights reserved.
3
 
4
   Redistribution and use in source and binary forms are permitted
5
   provided that the above copyright notice and this paragraph are
6
   duplicated in all such forms and that any documentation,
7
   advertising materials, and other materials related to such
8
   distribution and use acknowledge that the software was developed
9
   at Cygnus Support, Inc.  Cygnus Support, Inc. may not be used to
10
   endorse or promote products derived from this software without
11
   specific prior written permission.
12
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
13
   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
14
   WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  */
15
 
16
/* Note I don't know an easy way to get the FP version into the
17
   traditional C library and the non-FP version into the soft-float
18
   library.  Maybe we'll have to have -msoft-float trigger something
19
   like -DSOFT_FLOAT if this issue ever arises.  */
20
 
21
        .SPACE $PRIVATE$
22
        .SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
23
        .SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
24
        .SPACE $TEXT$
25
        .SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
26
        .SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
27
        .IMPORT $global$,DATA
28
        .IMPORT $$dyncall,MILLICODE
29
; gcc_compiled.:
30
        .SPACE $TEXT$
31
        .SUBSPA $CODE$
32
 
33
        .align 4
34
        .EXPORT setjmp,ENTRY,PRIV_LEV=3,ARGW0=GR,RTNVAL=GR
35
setjmp
36
        .PROC
37
        .CALLINFO FRAME=64,NO_CALLS,SAVE_SP,ENTRY_GR=3
38
        .ENTRY
39
        stwm  %r30,4(%r26)
40
        stwm  %r2,4(%r26)
41
        stwm  %r3,4(%r26)
42
        stwm  %r4,4(%r26)
43
        stwm  %r5,4(%r26)
44
        stwm  %r6,4(%r26)
45
        stwm  %r7,4(%r26)
46
        stwm  %r8,4(%r26)
47
        stwm  %r9,4(%r26)
48
        stwm  %r10,4(%r26)
49
        stwm  %r11,4(%r26)
50
        stwm  %r12,4(%r26)
51
        stwm  %r13,4(%r26)
52
        stwm  %r14,4(%r26)
53
        stwm  %r15,4(%r26)
54
        stwm  %r16,4(%r26)
55
        stwm  %r17,4(%r26)
56
        stwm  %r18,4(%r26)
57
        stwm  %r27,4(%r26)
58
#ifdef FP
59
        ; jmp_buf may only have a 4 byte alignment, so handle FP stores
60
        ; very carefully.
61
        fstds %fr12,-16(%r30)
62
        ldw -16(%r30),%r28
63
        stwm  %r28,4(%r26)
64
        ldw -12(%r30),%r28
65
        stwm  %r28,4(%r26)
66
        fstds %fr13,-16(%r30)
67
        ldw -16(%r30),%r28
68
        stwm  %r28,4(%r26)
69
        ldw -12(%r30),%r28
70
        stwm  %r28,4(%r26)
71
        fstds %fr14,-16(%r30)
72
        ldw -16(%r30),%r28
73
        stwm  %r28,4(%r26)
74
        ldw -12(%r30),%r28
75
        stwm  %r28,4(%r26)
76
        fstds %fr15,-16(%r30)
77
        ldw -16(%r30),%r28
78
        stwm  %r28,4(%r26)
79
        ldw -12(%r30),%r28
80
        stwm  %r28,4(%r26)
81
#endif
82
 
83
        bv 0(%r2)
84
        copy %r0,%r28
85
        .EXIT
86
        .PROCEND
87
        .align 4
88
        .EXPORT longjmp,ENTRY,PRIV_LEV=3,ARGW0=GR,ARGW1=GR,RTNVAL=GR
89
longjmp
90
        .PROC
91
        .CALLINFO FRAME=64,NO_CALLS,SAVE_SP,ENTRY_GR=3
92
        .ENTRY
93
        ldwm 4(%r26),%r30
94
        ldwm 4(%r26),%r2
95
        ldwm 4(%r26),%r3
96
        ldwm 4(%r26),%r4
97
        ldwm 4(%r26),%r5
98
        ldwm 4(%r26),%r6
99
        ldwm 4(%r26),%r7
100
        ldwm 4(%r26),%r8
101
        ldwm 4(%r26),%r9
102
        ldwm 4(%r26),%r10
103
        ldwm 4(%r26),%r11
104
        ldwm 4(%r26),%r12
105
        ldwm 4(%r26),%r13
106
        ldwm 4(%r26),%r14
107
        ldwm 4(%r26),%r15
108
        ldwm 4(%r26),%r16
109
        ldwm 4(%r26),%r17
110
        ldwm 4(%r26),%r18
111
        ldwm 4(%r26),%r27
112
#ifdef FP
113
        ldwm 4(%r26),%r28
114
        stw %r28,-16(%r30)
115
        ldwm 4(%r26),%r28
116
        stw %r28,-12(%r30)
117
        fldds -16(%r30),%fr12
118
        ldwm 4(%r26),%r28
119
        stw %r28,-16(%r30)
120
        ldwm 4(%r26),%r28
121
        stw %r28,-12(%r30)
122
        fldds -16(%r30),%fr13
123
        ldwm 4(%r26),%r28
124
        stw %r28,-16(%r30)
125
        ldwm 4(%r26),%r28
126
        stw %r28,-12(%r30)
127
        fldds -16(%r30),%fr14
128
        ldwm 4(%r26),%r28
129
        stw %r28,-16(%r30)
130
        ldwm 4(%r26),%r28
131
        stw %r28,-12(%r30)
132
        fldds -16(%r30),%fr15
133
#endif
134
        comclr,<> %r0,%r25,%r0
135
        ldi 1,%r25
136
        bv 0(%r2)
137
        copy %r25,%r28
138
        .EXIT
139
        .PROCEND

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.