Add qemu 2.4.0
[kvmfornfv.git] / qemu / roms / qemu-palcode / console-low.S
1 /* Assembly helper routines for the emulation SRM console.
2
3    Copyright (C) 2011 Richard Henderson
4
5    This file is part of QEMU PALcode.
6
7    This program is free software; you can redistribute it and/or modify
8    it under the terms of the GNU General Public License as published by
9    the Free Software Foundation; either version 2 of the License or
10    (at your option) any later version.
11
12    This program is distributed in the hope that it will be useful,
13    but WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the text
15    of the GNU General Public License for more details.
16
17    You should have received a copy of the GNU General Public License
18    along with this program; see the file COPYING.  If not see
19    <http://www.gnu.org/licenses/>.  */
20
21         .set nomacro
22         .set noat
23         .text
24         .cfi_sections .debug_frame
25
26 #define SAVE_ALL_SIZE   (18*8)
27
28         .globl  entInt
29         .type   entInt, @function
30         .cfi_startproc simple
31 entInt:
32         .cfi_return_column 64
33         .cfi_def_cfa    $sp, 48
34         .cfi_rel_offset 64, 8
35         .cfi_rel_offset $gp, 16
36         .cfi_rel_offset $16, 24
37         .cfi_rel_offset $17, 32
38         .cfi_rel_offset $18, 40
39         lda     $sp, -SAVE_ALL_SIZE($sp)
40         .cfi_adjust_cfa_offset SAVE_ALL_SIZE
41         stq     $0, 0*8($sp)
42         stq     $1, 1*8($sp)
43         stq     $2, 2*8($sp)
44         stq     $3, 3*8($sp)
45         stq     $4, 4*8($sp)
46         stq     $5, 5*8($sp)
47         stq     $6, 6*8($sp)
48         stq     $7, 7*8($sp)
49         stq     $8, 9*8($sp)
50         stq     $19, 9*8($sp)
51         stq     $20, 10*8($sp)
52         stq     $21, 11*8($sp)
53         stq     $22, 12*8($sp)
54         stq     $23, 13*8($sp)
55         stq     $24, 14*8($sp)
56         stq     $25, 15*8($sp)
57         stq     $26, 16*8($sp)
58         stq     $27, 17*8($sp)
59         stq     $28, 18*8($sp)
60         .cfi_rel_offset $0, 0*8
61         .cfi_rel_offset $1, 1*8
62         .cfi_rel_offset $2, 2*8
63         .cfi_rel_offset $3, 3*8
64         .cfi_rel_offset $4, 4*8
65         .cfi_rel_offset $5, 5*8
66         .cfi_rel_offset $6, 6*8
67         .cfi_rel_offset $7, 7*8
68         .cfi_rel_offset $8, 8*8
69         .cfi_rel_offset $19, 9*8
70         .cfi_rel_offset $20, 10*8
71         .cfi_rel_offset $21, 11*8
72         .cfi_rel_offset $22, 12*8
73         .cfi_rel_offset $23, 13*8
74         .cfi_rel_offset $24, 14*8
75         .cfi_rel_offset $25, 15*8
76         .cfi_rel_offset $26, 16*8
77         .cfi_rel_offset $27, 17*8
78         .cfi_rel_offset $28, 18*8
79
80         bsr     $26, do_entInt  !samegp
81
82         ldq     $0, 0*8($sp)
83         ldq     $1, 1*8($sp)
84         ldq     $2, 2*8($sp)
85         ldq     $3, 3*8($sp)
86         ldq     $4, 4*8($sp)
87         ldq     $5, 5*8($sp)
88         ldq     $6, 6*8($sp)
89         ldq     $7, 7*8($sp)
90         ldq     $8, 9*8($sp)
91         ldq     $19, 9*8($sp)
92         ldq     $20, 10*8($sp)
93         ldq     $21, 11*8($sp)
94         ldq     $22, 12*8($sp)
95         ldq     $23, 13*8($sp)
96         ldq     $24, 14*8($sp)
97         ldq     $25, 15*8($sp)
98         ldq     $26, 16*8($sp)
99         ldq     $27, 17*8($sp)
100         ldq     $28, 18*8($sp)
101         lda     $sp, SAVE_ALL_SIZE($sp)
102         .cfi_adjust_cfa_offset -SAVE_ALL_SIZE
103         .cfi_restore    $0
104         .cfi_restore    $1
105         .cfi_restore    $2
106         .cfi_restore    $3
107         .cfi_restore    $4
108         .cfi_restore    $5
109         .cfi_restore    $6
110         .cfi_restore    $7
111         .cfi_restore    $8
112         .cfi_restore    $19
113         .cfi_restore    $20
114         .cfi_restore    $21
115         .cfi_restore    $22
116         .cfi_restore    $23
117         .cfi_restore    $24
118         .cfi_restore    $25
119         .cfi_restore    $26
120         .cfi_restore    $27
121         .cfi_restore    $28
122
123         call_pal 0x3f // rti
124
125         .cfi_endproc
126         .size   entInt, . - entInt