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
31entInt:
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
127