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:
		| @@ -1,3 +1,9 @@ | ||||
| 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 | ||||
|  | ||||
| 2014-12-12  Stefan Wallentowitz  <stefan.wallentowitz@tum.de> | ||||
|  | ||||
| 	* libc/machine/or1k/setjmp.S: Remove save/restore of r3-r8 | ||||
|   | ||||
| @@ -245,7 +245,7 @@ case "${host_cpu}" in | ||||
|   nios2*) | ||||
| 	machine_dir=nios2 | ||||
| 	;; | ||||
|   or1k*) | ||||
|   or1k*|or1knd*) | ||||
| 	machine_dir=or1k | ||||
| 	;; | ||||
|   powerpc*) | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
|  | ||||
| _BEGIN_STD_C | ||||
|  | ||||
| #ifdef __or1k__ | ||||
| #if defined(__or1k__) || defined(__or1knd__) | ||||
| #define _JBLEN 31 /* 32 GPRs - r0 */ | ||||
| #define _JBTYPE unsigned long | ||||
| #endif | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user