URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Show entire file |
Details |
Blame |
View Log
Rev 207 |
Rev 399 |
Line 45... |
Line 45... |
@param[in] val(r4) A value to return
|
@param[in] val(r4) A value to return
|
|
|
@return val, unless val is zero, in which case 1 is returned.
|
@return val, unless val is zero, in which case 1 is returned.
|
/* -------------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------------- */
|
.align 4
|
.align 4
|
.global _longjmp
|
.global longjmp
|
.type _longjmp,@function
|
.type longjmp,@function
|
_longjmp:
|
longjmp:
|
/* Sort out the return value */
|
/* Sort out the return value */
|
l.sfne r4,r0
|
l.sfne r4,r0
|
l.bf 1f
|
l.bf 1f
|
l.nop
|
l.nop
|
|
|
Line 91... |
Line 91... |
l.lwz r2,8(r3) /* Skip r3 */
|
l.lwz r2,8(r3) /* Skip r3 */
|
l.lwz r1,4(r3) /* Slot 0 saved for flag in future */
|
l.lwz r1,4(r3) /* Slot 0 saved for flag in future */
|
l.lwz r3,12(r3) /* Now safe */
|
l.lwz r3,12(r3) /* Now safe */
|
|
|
/* Result is already in r11. Having restored r9, it will appear as
|
/* Result is already in r11. Having restored r9, it will appear as
|
though we have returned from the earlier call to _setjmp. The
|
though we have returned from the earlier call to setjmp. The
|
non-zero result gives it away though. */
|
non-zero result gives it away though. */
|
l.jr r9
|
l.jr r9
|
l.nop
|
l.nop
|
|
|
.size _longjmp, .-_longjmp
|
.size longjmp, .-longjmp
|
.size longjmp, .-longjmp
|
.size longjmp, .-longjmp
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.