diff options
Diffstat (limited to 'cpu')
| -rw-r--r-- | cpu/74xx_7xx/start.S | 70 | ||||
| -rw-r--r-- | cpu/i386/interrupts.c | 27 | ||||
| -rw-r--r-- | cpu/mips/start.S | 10 | ||||
| -rw-r--r-- | cpu/mpc5xx/start.S | 70 | ||||
| -rw-r--r-- | cpu/mpc5xxx/start.S | 70 | ||||
| -rw-r--r-- | cpu/mpc824x/drivers/i2c/i2c1.c | 11 | ||||
| -rw-r--r-- | cpu/mpc824x/start.S | 69 | ||||
| -rw-r--r-- | cpu/mpc8260/start.S | 70 | ||||
| -rw-r--r-- | cpu/mpc8xx/lcd.c | 8 | ||||
| -rw-r--r-- | cpu/mpc8xx/start.S | 70 | ||||
| -rw-r--r-- | cpu/ppc4xx/start.S | 70 | 
11 files changed, 23 insertions, 522 deletions
| diff --git a/cpu/74xx_7xx/start.S b/cpu/74xx_7xx/start.S index 7d37c8e2a..7d7a493fe 100644 --- a/cpu/74xx_7xx/start.S +++ b/cpu/74xx_7xx/start.S @@ -159,75 +159,7 @@ ProgramCheck:  	STD_EXCEPTION(0x900, Decrementer, timer_interrupt)  	STD_EXCEPTION(0xa00, Trap_0a, UnknownException)  	STD_EXCEPTION(0xb00, Trap_0b, UnknownException) - -	. = 0xc00 -/* - * r0 - SYSCALL number - * r3-... arguments - */ -SystemCall: -	addis	r11,r0,0		/* get functions table addr */ -	ori	r11,r11,0		/* Note: this code is patched in trap_init */ -	addis	r12,r0,0		/* get number of functions */ -	ori	r12,r12,0 - -	cmplw	0, r0, r12 -	bge	1f - -	rlwinm	r0,r0,2,0,31		/* fn_addr = fn_tbl[r0] */ -	add	r11,r11,r0 -	lwz	r11,0(r11) - -	li	r20,0xd00-4		/* Get stack pointer */ -	lwz	r12,0(r20) -	subi	r12,r12,12		/* Adjust stack pointer */ -	li	r0,0xc00+_end_back-SystemCall -	cmplw	0, r0, r12		/* Check stack overflow */ -	bgt	1f -	stw	r12,0(r20) - -	mflr	r0 -	stw	r0,0(r12) -	mfspr	r0,SRR0 -	stw	r0,4(r12) -	mfspr	r0,SRR1 -	stw	r0,8(r12) - -	li	r12,0xc00+_back-SystemCall -	mtlr	r12 -	mtspr	SRR0,r11 - -1:	SYNC -	rfi - -_back: - -	mfmsr	r11			/* Disable interrupts */ -	li	r12,0 -	ori	r12,r12,MSR_EE -	andc	r11,r11,r12 -	SYNC				/* Some chip revs need this... */ -	mtmsr	r11 -	SYNC - -	li	r12,0xd00-4		/* restore regs */ -	lwz	r12,0(r12) - -	lwz	r11,0(r12) -	mtlr	r11 -	lwz	r11,4(r12) -	mtspr	SRR0,r11 -	lwz	r11,8(r12) -	mtspr	SRR1,r11 - -	addi	r12,r12,12		/* Adjust stack pointer */ -	li	r20,0xd00-4 -	stw	r12,0(r20) - -	SYNC -	rfi -_end_back: - +	STD_EXCEPTION(0xc00, SystemCall, UnknownException)  	STD_EXCEPTION(0xd00, SingleStep, UnknownException)  	STD_EXCEPTION(0xe00, Trap_0e, UnknownException) diff --git a/cpu/i386/interrupts.c b/cpu/i386/interrupts.c index 84825aea1..f34011990 100644 --- a/cpu/i386/interrupts.c +++ b/cpu/i386/interrupts.c @@ -22,7 +22,6 @@   */  #include <common.h> -#include <syscall.h>  #include <malloc.h>  #include <asm/io.h>  #include <asm/i8259.h> @@ -58,31 +57,6 @@ typedef struct {  static irq_desc_t irq_table[MAX_IRQ]; - -asm(".globl syscall_entry\n" \ -	"syscall_entry:\n" \ -	"popl   %ebx\n"        /* throw away the return address, flags  */ \ -	"popl   %ebx\n"        /* and segment that the INT instruction pushed */ \ -	"popl   %ebx\n"        /* on to the stack */ \ -	"movl   %eax, %ecx\n"  /* load the syscall nr argument*/ \ -	"movl   syscall_tbl, %eax\n" /* load start of syscall table */ \ -	"cmpl   $(11-1), %ecx\n"  /* FixMe: find a way to use NR_SYSCALLS macro here */ \ -	"ja     bad_syscall\n" \ -	"movl   (%eax, %ecx, 4), %eax\n" /* load the handler of the syscall*/ \ -	"test   %eax, %eax\n" /* test for null */ \ -	"je     bad_syscall\n" \ -	"popl   %ecx\n" \ -	"popl   %ebx\n" \ -	"sti    \n" \ -	"jmp    *%eax\n" \ -"bad_syscall: movl $0xffffffff, %eax\n" \ -	"popl   %ecx\n" \ -	"popl   %ebx\n" \ -	"ret"); - -void __attribute__ ((regparm(0))) syscall_entry(void); - -  asm ("irq_return:\n"       "     addl  $4, %esp\n"       "     popa\n" @@ -483,7 +457,6 @@ int interrupt_init(void)  	set_vector(0x2e, irq_14);  	set_vector(0x2f, irq_15);  	/* vectors 0x30-0x3f are reserved for irq 16-31 */ -	set_vector(0x40, syscall_entry);  	/* Mask all interrupts */ diff --git a/cpu/mips/start.S b/cpu/mips/start.S index 12129deed..59c6acf91 100644 --- a/cpu/mips/start.S +++ b/cpu/mips/start.S @@ -291,6 +291,11 @@ reset:  relocate_code:  	move	sp, a0		/* Set new stack pointer		*/ +	li	t0, CFG_MONITOR_BASE +	la	t3, in_ram +	lw	t2, -12(t3)	/* t2 <-- uboot_end_data	*/ +	move	t1, a2 +  	/*  	 * Fix GOT pointer:  	 * @@ -301,11 +306,6 @@ relocate_code:  	add	gp, a2			/* gp now adjusted		*/  	sub	t6, gp, t6		/* t6 <-- relocation offset	*/ -	li	t0, CFG_MONITOR_BASE -	la	t3, in_ram -	lw	t2, -12(t3)	/* t2 <-- uboot_end_data	*/ -	move	t1, a2 -  	/*  	 * t0 = source address  	 * t1 = target address diff --git a/cpu/mpc5xx/start.S b/cpu/mpc5xx/start.S index 3b6d34495..548ec99e2 100644 --- a/cpu/mpc5xx/start.S +++ b/cpu/mpc5xx/start.S @@ -226,75 +226,7 @@ ProgramCheck:  	STD_EXCEPTION(0x900, Decrementer, timer_interrupt)  	STD_EXCEPTION(0xa00, Trap_0a, UnknownException)  	STD_EXCEPTION(0xb00, Trap_0b, UnknownException) - -	. = 0xc00 -/* - * r0 - SYSCALL number - * r3-... arguments - */ -SystemCall: -	addis	r11,r0,0		/* get functions table addr */ -	ori	r11,r11,0		/* Note: this code is patched in trap_init */ -	addis	r12,r0,0		/* get number of functions */ -	ori	r12,r12,0 - -	cmplw	0, r0, r12 -	bge	1f - -	rlwinm	r0,r0,2,0,31		/* fn_addr = fn_tbl[r0] */ -	add	r11,r11,r0 -	lwz	r11,0(r11) - -	li	r20,0xd00-4		/* Get stack pointer */ -	lwz	r12,0(r20) -	subi	r12,r12,12		/* Adjust stack pointer */ -	li	r0,0xc00+_end_back-SystemCall -	cmplw	0, r0, r12		/* Check stack overflow */ -	bgt	1f -	stw	r12,0(r20) - -	mflr	r0 -	stw	r0,0(r12) -	mfspr	r0,SRR0 -	stw	r0,4(r12) -	mfspr	r0,SRR1 -	stw	r0,8(r12) - -	li	r12,0xc00+_back-SystemCall -	mtlr	r12 -	mtspr	SRR0,r11 - -1:	SYNC -	rfi - -_back: - -	mfmsr	r11			/* Disable interrupts */ -	li	r12,0 -	ori	r12,r12,MSR_EE -	andc	r11,r11,r12 -	SYNC				/* Some chip revs need this... */ -	mtmsr	r11 -	SYNC - -	li	r12,0xd00-4		/* restore regs */ -	lwz	r12,0(r12) - -	lwz	r11,0(r12) -	mtlr	r11 -	lwz	r11,4(r12) -	mtspr	SRR0,r11 -	lwz	r11,8(r12) -	mtspr	SRR1,r11 - -	addi	r12,r12,12		/* Adjust stack pointer */ -	li	r20,0xd00-4 -	stw	r12,0(r20) - -	SYNC -	rfi -_end_back: - +	STD_EXCEPTION(0xc00, SystemCall, UnknownException)  	STD_EXCEPTION(0xd00, SingleStep, UnknownException)  	STD_EXCEPTION(0xe00, Trap_0e, UnknownException) diff --git a/cpu/mpc5xxx/start.S b/cpu/mpc5xxx/start.S index 41454423c..37448acba 100644 --- a/cpu/mpc5xxx/start.S +++ b/cpu/mpc5xxx/start.S @@ -208,75 +208,7 @@ ProgramCheck:  	STD_EXCEPTION(0xa00, Trap_0a, UnknownException)  	STD_EXCEPTION(0xb00, Trap_0b, UnknownException) - -	. = 0xc00 -/* - * r0 - SYSCALL number - * r3-... arguments - */ -SystemCall: -	addis	r11,r0,0		/* get functions table addr */ -	ori	r11,r11,0		/* Note: this code is patched in trap_init */ -	addis	r12,r0,0		/* get number of functions */ -	ori	r12,r12,0 - -	cmplw	0, r0, r12 -	bge	1f - -	rlwinm	r0,r0,2,0,31		/* fn_addr = fn_tbl[r0] */ -	add	r11,r11,r0 -	lwz	r11,0(r11) - -	li	r20,0xd00-4		/* Get stack pointer */ -	lwz	r12,0(r20) -	subi	r12,r12,12		/* Adjust stack pointer */ -	li	r0,0xc00+_end_back-SystemCall -	cmplw	0, r0, r12		/* Check stack overflow */ -	bgt	1f -	stw	r12,0(r20) - -	mflr	r0 -	stw	r0,0(r12) -	mfspr	r0,SRR0 -	stw	r0,4(r12) -	mfspr	r0,SRR1 -	stw	r0,8(r12) - -	li	r12,0xc00+_back-SystemCall -	mtlr	r12 -	mtspr	SRR0,r11 - -1:	SYNC -	rfi - -_back: - -	mfmsr	r11			/* Disable interrupts */ -	li	r12,0 -	ori	r12,r12,MSR_EE -	andc	r11,r11,r12 -	SYNC				/* Some chip revs need this... */ -	mtmsr	r11 -	SYNC - -	li	r12,0xd00-4		/* restore regs */ -	lwz	r12,0(r12) - -	lwz	r11,0(r12) -	mtlr	r11 -	lwz	r11,4(r12) -	mtspr	SRR0,r11 -	lwz	r11,8(r12) -	mtspr	SRR1,r11 - -	addi	r12,r12,12		/* Adjust stack pointer */ -	li	r20,0xd00-4 -	stw	r12,0(r20) - -	SYNC -	rfi -_end_back: - +	STD_EXCEPTION(0xc00, SystemCall, UnknownException)  	STD_EXCEPTION(0xd00, SingleStep, UnknownException)  	STD_EXCEPTION(0xe00, Trap_0e, UnknownException) diff --git a/cpu/mpc824x/drivers/i2c/i2c1.c b/cpu/mpc824x/drivers/i2c/i2c1.c index dc1c97ca0..94c671e56 100644 --- a/cpu/mpc824x/drivers/i2c/i2c1.c +++ b/cpu/mpc824x/drivers/i2c/i2c1.c @@ -1197,13 +1197,16 @@ int i2c_write (uchar chip, uint addr, int alen, uchar * buffer, int len)  	uchar *p;  	int i; -	p = dummy_buffer;  	/* fill in address in big endian order */ -	for (i=0; i<alen; ++i) -		*p++ = (addr >> (i * 8)) & 0xFF; +	for (i=alen-1; i>=0; --i) { +		buffer[i] = addr & 0xFF; +		addr >>= 8; +	}  	/* fill in data */ +	p = dummy_buffer + alen; +  	for (i=0; i<len; ++i) -		*p++ = *buffer; +		*p++ = *buffer++;  	status = I2C_do_buffer (0, I2C_MASTER_XMIT, chip, alen + len,  				dummy_buffer, I2C_STOP, 1, I2C_NO_RESTART); diff --git a/cpu/mpc824x/start.S b/cpu/mpc824x/start.S index b1cdb8460..a22137ceb 100644 --- a/cpu/mpc824x/start.S +++ b/cpu/mpc824x/start.S @@ -259,74 +259,7 @@ ProgramCheck:  	STD_EXCEPTION(EXC_OFF_DECR, Decrementer, timer_interrupt)  	STD_EXCEPTION(0xa00, Trap_0a, UnknownException)  	STD_EXCEPTION(0xb00, Trap_0b, UnknownException) - -	. = 0xc00 -/* - * r0 - SYSCALL number - * r3-... arguments - */ -SystemCall: -	addis	r11,r0,0		/* get functions table addr */ -	ori	r11,r11,0		/* Note: this code is patched in trap_init */ -	addis	r12,r0,0		/* get number of functions */ -	ori	r12,r12,0 - -	cmplw	0, r0, r12 -	bge	1f - -	rlwinm	r0,r0,2,0,31		/* fn_addr = fn_tbl[r0] */ -	add	r11,r11,r0 -	lwz	r11,0(r11) - -	li	r20,0xd00-4		/* Get stack pointer */ -	lwz	r12,0(r20) -	subi	r12,r12,12		/* Adjust stack pointer */ -	li	r0,0xc00+_end_back-SystemCall -	cmplw	0, r0, r12		/* Check stack overflow */ -	bgt	1f -	stw	r12,0(r20) - -	mflr	r0 -	stw	r0,0(r12) -	mfspr	r0,SRR0 -	stw	r0,4(r12) -	mfspr	r0,SRR1 -	stw	r0,8(r12) - -	li	r12,0xc00+_back-SystemCall -	mtlr	r12 -	mtspr	SRR0,r11 - -1:	SYNC -	rfi - -_back: - -	mfmsr	r11			/* Disable interrupts */ -	li	r12,0 -	ori	r12,r12,MSR_EE -	andc	r11,r11,r12 -	SYNC				/* Some chip revs need this... */ -	mtmsr	r11 -	SYNC - -	li	r12,0xd00-4		/* restore regs */ -	lwz	r12,0(r12) - -	lwz	r11,0(r12) -	mtlr	r11 -	lwz	r11,4(r12) -	mtspr	SRR0,r11 -	lwz	r11,8(r12) -	mtspr	SRR1,r11 - -	addi	r12,r12,12		/* Adjust stack pointer */ -	li	r20,0xd00-4 -	stw	r12,0(r20) - -	SYNC -	rfi -_end_back: +	STD_EXCEPTION(0xc00, SystemCall, UnknownException)  	STD_EXCEPTION(EXC_OFF_TRACE, SingleStep, UnknownException) diff --git a/cpu/mpc8260/start.S b/cpu/mpc8260/start.S index d3fd8652d..a499bc1e9 100644 --- a/cpu/mpc8260/start.S +++ b/cpu/mpc8260/start.S @@ -319,75 +319,7 @@ ProgramCheck:  	STD_EXCEPTION(0xa00, Trap_0a, UnknownException)  	STD_EXCEPTION(0xb00, Trap_0b, UnknownException) - -	. = 0xc00 -/* - * r0 - SYSCALL number - * r3-... arguments - */ -SystemCall: -	addis	r11,r0,0		/* get functions table addr */ -	ori	r11,r11,0		/* Note: this code is patched in trap_init */ -	addis	r12,r0,0		/* get number of functions */ -	ori	r12,r12,0 - -	cmplw	0, r0, r12 -	bge	1f - -	rlwinm	r0,r0,2,0,31		/* fn_addr = fn_tbl[r0] */ -	add	r11,r11,r0 -	lwz	r11,0(r11) - -	li	r20,0xd00-4		/* Get stack pointer */ -	lwz	r12,0(r20) -	subi	r12,r12,12		/* Adjust stack pointer */ -	li	r0,0xc00+_end_back-SystemCall -	cmplw	0, r0, r12		/* Check stack overflow */ -	bgt	1f -	stw	r12,0(r20) - -	mflr	r0 -	stw	r0,0(r12) -	mfspr	r0,SRR0 -	stw	r0,4(r12) -	mfspr	r0,SRR1 -	stw	r0,8(r12) - -	li	r12,0xc00+_back-SystemCall -	mtlr	r12 -	mtspr	SRR0,r11 - -1:	SYNC -	rfi - -_back: - -	mfmsr	r11			/* Disable interrupts */ -	li	r12,0 -	ori	r12,r12,MSR_EE -	andc	r11,r11,r12 -	SYNC				/* Some chip revs need this... */ -	mtmsr	r11 -	SYNC - -	li	r12,0xd00-4		/* restore regs */ -	lwz	r12,0(r12) - -	lwz	r11,0(r12) -	mtlr	r11 -	lwz	r11,4(r12) -	mtspr	SRR0,r11 -	lwz	r11,8(r12) -	mtspr	SRR1,r11 - -	addi	r12,r12,12		/* Adjust stack pointer */ -	li	r20,0xd00-4 -	stw	r12,0(r20) - -	SYNC -	rfi -_end_back: - +	STD_EXCEPTION(0xc00, SystemCall, UnknownException)  	STD_EXCEPTION(0xd00, SingleStep, UnknownException)  	STD_EXCEPTION(0xe00, Trap_0e, UnknownException) diff --git a/cpu/mpc8xx/lcd.c b/cpu/mpc8xx/lcd.c index c1509284b..f2e404c4b 100644 --- a/cpu/mpc8xx/lcd.c +++ b/cpu/mpc8xx/lcd.c @@ -61,9 +61,9 @@  /* ** BITMAP DISPLAY SUPPORT  -- should probably be moved elsewhere	*/  /************************************************************************/ -#if (CONFIG_COMMANDS & CFG_CMD_BMP) +#if (CONFIG_COMMANDS & CFG_CMD_BMP) || defined(CONFIG_SPLASH_SCREEN)  #include <bmp_layout.h> -#endif /* (CONFIG_COMMANDS & CFG_CMD_BMP) */ +#endif /* (CONFIG_COMMANDS & CFG_CMD_BMP) || CONFIG_SPLASH_SCREEN */  /************************************************************************/  /* ** FONT AND LOGO DATA						*/ @@ -1176,7 +1176,7 @@ static void bitmap_plot (int x, int y)  }  #endif /* CONFIG_LCD_LOGO */ -#if (CONFIG_COMMANDS & CFG_CMD_BMP) +#if (CONFIG_COMMANDS & CFG_CMD_BMP) || defined(CONFIG_SPLASH_SCREEN)  /*   * Display the BMP file located at address bmp_image.   * Only uncompressed @@ -1273,7 +1273,7 @@ int lcd_display_bitmap(ulong bmp_image)  	return (0);  } -#endif /* (CONFIG_COMMANDS & CFG_CMD_BMP) */ +#endif /* (CONFIG_COMMANDS & CFG_CMD_BMP) || CONFIG_SPLASH_SCREEN */  /*----------------------------------------------------------------------*/ diff --git a/cpu/mpc8xx/start.S b/cpu/mpc8xx/start.S index 81a4dc07c..893c0f810 100644 --- a/cpu/mpc8xx/start.S +++ b/cpu/mpc8xx/start.S @@ -266,75 +266,7 @@ ProgramCheck:  	STD_EXCEPTION(0x900, Decrementer, timer_interrupt)  	STD_EXCEPTION(0xa00, Trap_0a, UnknownException)  	STD_EXCEPTION(0xb00, Trap_0b, UnknownException) - -	. = 0xc00 -/* - * r0 - SYSCALL number - * r3-... arguments - */ -SystemCall: -	addis	r11,r0,0		/* get functions table addr */ -	ori	r11,r11,0		/* Note: this code is patched in trap_init */ -	addis	r12,r0,0		/* get number of functions */ -	ori	r12,r12,0 - -	cmplw	0, r0, r12 -	bge	1f - -	rlwinm	r0,r0,2,0,31		/* fn_addr = fn_tbl[r0] */ -	add	r11,r11,r0 -	lwz	r11,0(r11) - -	li	r20,0xd00-4		/* Get stack pointer */ -	lwz	r12,0(r20) -	subi	r12,r12,12		/* Adjust stack pointer */ -	li	r0,0xc00+_end_back-SystemCall -	cmplw	0, r0, r12		/* Check stack overflow */ -	bgt	1f -	stw	r12,0(r20) - -	mflr	r0 -	stw	r0,0(r12) -	mfspr	r0,SRR0 -	stw	r0,4(r12) -	mfspr	r0,SRR1 -	stw	r0,8(r12) - -	li	r12,0xc00+_back-SystemCall -	mtlr	r12 -	mtspr	SRR0,r11 - -1:	SYNC -	rfi - -_back: - -	mfmsr	r11			/* Disable interrupts */ -	li	r12,0 -	ori	r12,r12,MSR_EE -	andc	r11,r11,r12 -	SYNC				/* Some chip revs need this... */ -	mtmsr	r11 -	SYNC - -	li	r12,0xd00-4		/* restore regs */ -	lwz	r12,0(r12) - -	lwz	r11,0(r12) -	mtlr	r11 -	lwz	r11,4(r12) -	mtspr	SRR0,r11 -	lwz	r11,8(r12) -	mtspr	SRR1,r11 - -	addi	r12,r12,12		/* Adjust stack pointer */ -	li	r20,0xd00-4 -	stw	r12,0(r20) - -	SYNC -	rfi -_end_back: - +	STD_EXCEPTION(0xc00, SystemCall, UnknownException)  	STD_EXCEPTION(0xd00, SingleStep, UnknownException)  	STD_EXCEPTION(0xe00, Trap_0e, UnknownException) diff --git a/cpu/ppc4xx/start.S b/cpu/ppc4xx/start.S index aa857d030..e3e92afa8 100644 --- a/cpu/ppc4xx/start.S +++ b/cpu/ppc4xx/start.S @@ -769,75 +769,7 @@ ProgramCheck:  	STD_EXCEPTION(0x900, Decrementer, timer_interrupt)  	STD_EXCEPTION(0xa00, Trap_0a, UnknownException)  	STD_EXCEPTION(0xb00, Trap_0b, UnknownException) - -	. = 0xc00 -/* - * r0 - SYSCALL number - * r3-... arguments - */ -SystemCall: -	addis	r11,r0,0		/* get functions table addr */ -	ori	r11,r11,0		/* Note: this code is patched in trap_init */ -	addis	r12,r0,0		/* get number of functions */ -	ori	r12,r12,0 - -	cmplw	0, r0, r12 -	bge	1f - -	rlwinm	r0,r0,2,0,31		/* fn_addr = fn_tbl[r0] */ -	add	r11,r11,r0 -	lwz	r11,0(r11) - -	li	r20,0xd00-4		/* Get stack pointer */ -	lwz	r12,0(r20) -	subi	r12,r12,12		/* Adjust stack pointer */ -	li	r0,0xc00+_end_back-SystemCall -	cmplw	0, r0, r12		/* Check stack overflow */ -	bgt	1f -	stw	r12,0(r20) - -	mflr	r0 -	stw	r0,0(r12) -	mfspr	r0,SRR0 -	stw	r0,4(r12) -	mfspr	r0,SRR1 -	stw	r0,8(r12) - -	li	r12,0xc00+_back-SystemCall -	mtlr	r12 -	mtspr	SRR0,r11 - -1:	SYNC -	rfi - -_back: - -	mfmsr	r11			/* Disable interrupts */ -	li	r12,0 -	ori	r12,r12,MSR_EE -	andc	r11,r11,r12 -	SYNC				/* Some chip revs need this... */ -	mtmsr	r11 -	SYNC - -	li	r12,0xd00-4		/* restore regs */ -	lwz	r12,0(r12) - -	lwz	r11,0(r12) -	mtlr	r11 -	lwz	r11,4(r12) -	mtspr	SRR0,r11 -	lwz	r11,8(r12) -	mtspr	SRR1,r11 - -	addi	r12,r12,12		/* Adjust stack pointer */ -	li	r20,0xd00-4 -	stw	r12,0(r20) - -	SYNC -	rfi -_end_back: - +	STD_EXCEPTION(0xc00, SystemCall, UnknownException)  	STD_EXCEPTION(0xd00, SingleStep, UnknownException)  	STD_EXCEPTION(0xe00, Trap_0e, UnknownException) |