1 /* src/vm/jit/alpha/md-asm.h - assembler defines for Alpha ABI
3 Copyright (C) 1996-2005, 2006, 2008
4 CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
6 This file is part of CACAO.
8 This program is free software; you can redistribute it and/or
9 modify it under the terms of the GNU General Public License as
10 published by the Free Software Foundation; either version 2, or (at
11 your option) any later version.
13 This program is distributed in the hope that it will be useful, but
14 WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
30 /* register defines ***********************************************************/
121 /* save and restore macros ****************************************************/
123 #define SAVE_ARGUMENT_REGISTERS(off) \
124 stq a0,(0+(off))*8(sp) ; \
125 stq a1,(1+(off))*8(sp) ; \
126 stq a2,(2+(off))*8(sp) ; \
127 stq a3,(3+(off))*8(sp) ; \
128 stq a4,(4+(off))*8(sp) ; \
129 stq a5,(5+(off))*8(sp) ; \
131 stt fa0,(6+(off))*8(sp) ; \
132 stt fa1,(7+(off))*8(sp) ; \
133 stt fa2,(8+(off))*8(sp) ; \
134 stt fa3,(9+(off))*8(sp) ; \
135 stt fa4,(10+(off))*8(sp) ; \
136 stt fa5,(11+(off))*8(sp) ;
138 #define RESTORE_ARGUMENT_REGISTERS(off) \
139 ldq a0,(0+(off))*8(sp) ; \
140 ldq a1,(1+(off))*8(sp) ; \
141 ldq a2,(2+(off))*8(sp) ; \
142 ldq a3,(3+(off))*8(sp) ; \
143 ldq a4,(4+(off))*8(sp) ; \
144 ldq a5,(5+(off))*8(sp) ; \
146 ldt fa0,(6+(off))*8(sp) ; \
147 ldt fa1,(7+(off))*8(sp) ; \
148 ldt fa2,(8+(off))*8(sp) ; \
149 ldt fa3,(9+(off))*8(sp) ; \
150 ldt fa4,(10+(off))*8(sp) ; \
151 ldt fa5,(11+(off))*8(sp) ;
153 #define SAVE_TEMPORARY_REGISTERS(off) \
154 stq t0,(0+(off))*8(sp) ; \
155 stq t1,(1+(off))*8(sp) ; \
156 stq t2,(2+(off))*8(sp) ; \
157 stq t3,(3+(off))*8(sp) ; \
158 stq t4,(4+(off))*8(sp) ; \
159 stq t5,(5+(off))*8(sp) ; \
160 stq t6,(6+(off))*8(sp) ; \
161 stq t7,(7+(off))*8(sp) ; \
162 stq t8,(8+(off))*8(sp) ; \
163 stq t9,(9+(off))*8(sp) ; \
164 stq t10,(10+(off))*8(sp) ; \
166 stt ft0,(11+(off))*8(sp) ; \
167 stt ft1,(12+(off))*8(sp) ; \
168 stt ft2,(13+(off))*8(sp) ; \
169 stt ft3,(14+(off))*8(sp) ; \
170 stt ft4,(15+(off))*8(sp) ; \
171 stt ft5,(16+(off))*8(sp) ; \
172 stt ft6,(17+(off))*8(sp) ; \
173 stt ft7,(18+(off))*8(sp) ; \
174 stt ft8,(19+(off))*8(sp) ; \
175 stt ft9,(20+(off))*8(sp) ; \
176 stt ft10,(21+(off))*8(sp) ; \
177 stt ft11,(22+(off))*8(sp) ; \
178 stt ft12,(23+(off))*8(sp) ;
181 #define RESTORE_TEMPORARY_REGISTERS(off) \
182 ldq t0,(0+(off))*8(sp) ; \
183 ldq t1,(1+(off))*8(sp) ; \
184 ldq t2,(2+(off))*8(sp) ; \
185 ldq t3,(3+(off))*8(sp) ; \
186 ldq t4,(4+(off))*8(sp) ; \
187 ldq t5,(5+(off))*8(sp) ; \
188 ldq t6,(6+(off))*8(sp) ; \
189 ldq t7,(7+(off))*8(sp) ; \
190 ldq t8,(8+(off))*8(sp) ; \
191 ldq t9,(9+(off))*8(sp) ; \
192 ldq t10,(10+(off))*8(sp) ; \
194 ldt ft0,(11+(off))*8(sp) ; \
195 ldt ft1,(12+(off))*8(sp) ; \
196 ldt ft2,(13+(off))*8(sp) ; \
197 ldt ft3,(14+(off))*8(sp) ; \
198 ldt ft4,(15+(off))*8(sp) ; \
199 ldt ft5,(16+(off))*8(sp) ; \
200 ldt ft6,(17+(off))*8(sp) ; \
201 ldt ft7,(18+(off))*8(sp) ; \
202 ldt ft8,(19+(off))*8(sp) ; \
203 ldt ft9,(20+(off))*8(sp) ; \
204 ldt ft10,(21+(off))*8(sp) ; \
205 ldt ft11,(22+(off))*8(sp) ; \
206 ldt ft12,(23+(off))*8(sp) ;
208 #endif /* _MD_ASM_H */
212 * These are local overrides for various environment variables in Emacs.
213 * Please do not remove this and leave it at the end of the file, where
214 * Emacs will automagically detect them.
215 * ---------------------------------------------------------------------
218 * indent-tabs-mode: t