comparison gcc/config/m32c/m32c-lib1.S @ 67:f6334be47118

update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
author nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
date Tue, 22 Mar 2011 17:18:12 +0900
parents a06113de4d67
children
comparison
equal deleted inserted replaced
65:65488c3d617d 67:f6334be47118
1 /* libgcc routines for R8C/M16C/M32C 1 /* libgcc routines for R8C/M16C/M32C
2 Copyright (C) 2005, 2009 2 Copyright (C) 2005, 2009, 2010
3 Free Software Foundation, Inc. 3 Free Software Foundation, Inc.
4 Contributed by Red Hat. 4 Contributed by Red Hat.
5 5
6 This file is part of GCC. 6 This file is part of GCC.
7 7
202 mov.w #0,r0 202 mov.w #0,r0
203 exitd 203 exitd
204 #endif 204 #endif
205 205
206 #ifdef L__m32c_jsri16 206 #ifdef L__m32c_jsri16
207 .data 207 .text
208 m32c_jsri_addr: 208 #ifdef A16
209 .byte 0, 0, 0
210 m32c_jsri_ret:
211 .byte 0, 0, 0
212
213 .text
214 .global m32c_jsri16 209 .global m32c_jsri16
215 m32c_jsri16: 210 m32c_jsri16:
216 pop.w m32c_jsri_ret 211 add.w #-1, sp
217 pop.b m32c_jsri_ret+2 212
218 pop.w m32c_jsri_addr 213 /* Read the address (16 bits) and return address (24 bits) off
219 push.b m32c_jsri_ret+2 214 the stack. */
220 push.w m32c_jsri_ret 215 mov.w 4[sp], r0
221 jmpi.a m32c_jsri_addr 216 mov.w 1[sp], r3
222 217 mov.b 3[sp], a0 /* This zero-extends, so the high byte has
223 #endif 218 zero in it. */
219
220 /* Write the return address, then new address, to the stack. */
221 mov.w a0, 1[sp] /* Just to get the zero in 2[sp]. */
222 mov.w r0, 0[sp]
223 mov.w r3, 3[sp]
224 mov.b a0, 5[sp]
225
226 /* This "returns" to the target address, leaving the pending
227 return address on the stack. */
228 rts
229 #endif
230
231 #endif