2014-12-12 Stefan Wallentowitz <stefan.wallentowitz@tum.de>

* configure.host: or1knd support, OpenRISC without delay slot
        * libc/include/machine/setjmp.h: Add or1knd
        * libc/machine/or1k/setjmp.S: Optional delay slot
This commit is contained in:
Jeff Johnston
2014-12-12 21:14:06 +00:00
parent 31cf15b180
commit f58bc5991f
4 changed files with 28 additions and 3 deletions

View File

@ -49,8 +49,18 @@ setjmp:
l.mfspr r13, r0, 17
l.sw 124(r3), r13
/* Set result register to 0 and jump */
// Different cases for optional delay slot
#if defined(__OR1K_NODELAY__)
l.addi r11, r0, 0
l.jr r9
#elif defined(__OR1K_DELAY__)
l.jr r9
l.addi r11, r0, 0
#else
l.addi r11, r0, 0
l.jr r9
l.nop
#endif
.align 4
.global longjmp
@ -83,7 +93,16 @@ longjmp:
l.lwz r24, 92(r3)
l.lwz r26, 100(r3)
l.lwz r28, 108(r3)
l.lwz r30, 116(r3)
// Different cases for optional delay slot
#if defined(__OR1K_NODELAY__)
l.lwz r30, 116(r3)
l.jr r9
#elif defined(__OR1K_DELAY__)
l.jr r9
l.lwz r30, 116(r3)
#else
l.lwz r30, 116(r3)
l.jr r9
l.nop
#endif