patch-2.4.10 linux/arch/mips/kernel/gdb-low.S
Next file: linux/arch/mips/kernel/gdb-stub.c
Previous file: linux/arch/mips/kernel/fpe.c
Back to the patch index
Back to the overall index
- Lines: 91
- Date:
Sun Sep 9 10:43:01 2001
- Orig file:
v2.4.9/linux/arch/mips/kernel/gdb-low.S
- Orig date:
Sat May 13 08:29:14 2000
diff -u --recursive --new-file v2.4.9/linux/arch/mips/kernel/gdb-low.S linux/arch/mips/kernel/gdb-low.S
@@ -1,16 +1,13 @@
/*
- * arch/mips/kernel/gdb-low.S
- *
* gdb-low.S contains the low-level trap handler for the GDB stub.
*
* Copyright (C) 1995 Andreas Busse
- *
- * $Id: gdb-low.S,v 1.4 1997/12/01 17:57:26 ralf Exp $
*/
-
+#include <linux/config.h>
#include <linux/sys.h>
#include <asm/asm.h>
+#include <asm/errno.h>
#include <asm/mipsregs.h>
#include <asm/regdef.h>
#include <asm/stackframe.h>
@@ -30,10 +27,15 @@
move k1,sp
/*
- * Called from user mode, new stack
+ * Called from user mode, go somewhere else.
*/
- lui k1,%hi(kernelsp)
- lw k1,%lo(kernelsp)(k1)
+ lui k1,%hi(saved_vectors)
+ mfc0 k0,CP0_CAUSE
+ andi k0,k0,0x7c
+ add k1,k1,k0
+ lw k0,%lo(saved_vectors)(k1)
+ jr k0
+ nop
1:
move k0,sp
subu sp,k1,GDB_FR_SIZE
@@ -302,11 +304,51 @@
lw v1,GDB_FR_REG3(sp)
lw v0,GDB_FR_REG2(sp)
lw $1,GDB_FR_REG1(sp)
- lw sp,GDB_FR_REG29(sp) /* Deallocate stack */
+#ifdef CONFIG_CPU_R3000
+ lw k0, GDB_FR_EPC(sp)
+ lw sp, GDB_FR_REG29(sp) /* Deallocate stack */
+ jr k0
+ rfe
+#else
+ lw sp, GDB_FR_REG29(sp) /* Deallocate stack */
.set mips3
eret
.set mips0
+#endif
.set at
.set reorder
END(trap_low)
+
+LEAF(kgdb_read_byte)
+ .set push
+ .set noreorder
+ .set nomacro
+4: lb t0, (a0)
+ .set pop
+ sb t0, (a1)
+ li v0, 0
+ jr ra
+ .section __ex_table,"a"
+ PTR 4b, kgdbfault
+ .previous
+ END(kgdb_read_byte)
+
+LEAF(kgdb_write_byte)
+ .set push
+ .set noreorder
+ .set nomacro
+5: sb a0, (a1)
+ .set pop
+ li v0, 0
+ jr ra
+ .section __ex_table,"a"
+ PTR 5b, kgdbfault
+ .previous
+ END(kgdb_write_byte)
+
+ .type kgdbfault@function
+ .ent kgdbfault
+kgdbfault: li v0, -EFAULT
+ jr ra
+ .end kgdbfault
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)