* config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
From-SVN: r165859
This commit is contained in:
parent
4d1bc60a12
commit
f6bac694c2
@ -1,3 +1,7 @@
|
||||
2010-10-22 DJ Delorie <dj@redhat.com>
|
||||
|
||||
* config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
|
||||
|
||||
2010-10-22 Paul Koning <ni1d@arrl.net>
|
||||
|
||||
* config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
|
||||
|
@ -204,20 +204,28 @@ cmpsi_lt:
|
||||
#endif
|
||||
|
||||
#ifdef L__m32c_jsri16
|
||||
.data
|
||||
m32c_jsri_addr:
|
||||
.byte 0, 0, 0
|
||||
m32c_jsri_ret:
|
||||
.byte 0, 0, 0
|
||||
|
||||
.text
|
||||
#ifdef A16
|
||||
.global m32c_jsri16
|
||||
m32c_jsri16:
|
||||
pop.w m32c_jsri_ret
|
||||
pop.b m32c_jsri_ret+2
|
||||
pop.w m32c_jsri_addr
|
||||
push.b m32c_jsri_ret+2
|
||||
push.w m32c_jsri_ret
|
||||
jmpi.a m32c_jsri_addr
|
||||
add.w #-1, sp
|
||||
|
||||
/* Read the address (16 bits) and return address (24 bits) off
|
||||
the stack. */
|
||||
mov.w 4[sp], r0
|
||||
mov.w 1[sp], r3
|
||||
mov.b 3[sp], a0 /* This zero-extends, so the high byte has
|
||||
zero in it. */
|
||||
|
||||
/* Write the return address, then new address, to the stack. */
|
||||
mov.w a0, 1[sp] /* Just to get the zero in 2[sp]. */
|
||||
mov.w r0, 0[sp]
|
||||
mov.w r3, 3[sp]
|
||||
mov.b a0, 5[sp]
|
||||
|
||||
/* This "returns" to the target address, leaving the pending
|
||||
return address on the stack. */
|
||||
rts
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user