summaryrefslogtreecommitdiffstats
path: root/arch/cris/arch-v10
diff options
context:
space:
mode:
Diffstat (limited to 'arch/cris/arch-v10')
-rw-r--r--arch/cris/arch-v10/kernel/kgdb.c350
1 files changed, 175 insertions, 175 deletions
diff --git a/arch/cris/arch-v10/kernel/kgdb.c b/arch/cris/arch-v10/kernel/kgdb.c
index 37e6d2c50b76..0a420336e5d8 100644
--- a/arch/cris/arch-v10/kernel/kgdb.c
+++ b/arch/cris/arch-v10/kernel/kgdb.c
@@ -1270,93 +1270,93 @@ kill_restart ()
void kgdb_handle_breakpoint(void);
-asm ("
- .global kgdb_handle_breakpoint
-kgdb_handle_breakpoint:
-;;
-;; Response to the break-instruction
-;;
-;; Create a register image of the caller
-;;
- move $dccr,[reg+0x5E] ; Save the flags in DCCR before disable interrupts
- di ; Disable interrupts
- move.d $r0,[reg] ; Save R0
- move.d $r1,[reg+0x04] ; Save R1
- move.d $r2,[reg+0x08] ; Save R2
- move.d $r3,[reg+0x0C] ; Save R3
- move.d $r4,[reg+0x10] ; Save R4
- move.d $r5,[reg+0x14] ; Save R5
- move.d $r6,[reg+0x18] ; Save R6
- move.d $r7,[reg+0x1C] ; Save R7
- move.d $r8,[reg+0x20] ; Save R8
- move.d $r9,[reg+0x24] ; Save R9
- move.d $r10,[reg+0x28] ; Save R10
- move.d $r11,[reg+0x2C] ; Save R11
- move.d $r12,[reg+0x30] ; Save R12
- move.d $r13,[reg+0x34] ; Save R13
- move.d $sp,[reg+0x38] ; Save SP (R14)
-;; Due to the old assembler-versions BRP might not be recognized
- .word 0xE670 ; move brp,$r0
- subq 2,$r0 ; Set to address of previous instruction.
- move.d $r0,[reg+0x3c] ; Save the address in PC (R15)
- clear.b [reg+0x40] ; Clear P0
- move $vr,[reg+0x41] ; Save special register P1
- clear.w [reg+0x42] ; Clear P4
- move $ccr,[reg+0x44] ; Save special register CCR
- move $mof,[reg+0x46] ; P7
- clear.d [reg+0x4A] ; Clear P8
- move $ibr,[reg+0x4E] ; P9,
- move $irp,[reg+0x52] ; P10,
- move $srp,[reg+0x56] ; P11,
- move $dtp0,[reg+0x5A] ; P12, register BAR, assembler might not know BAR
- ; P13, register DCCR already saved
-;; Due to the old assembler-versions BRP might not be recognized
- .word 0xE670 ; move brp,r0
-;; Static (compiled) breakpoints must return to the next instruction in order
-;; to avoid infinite loops. Dynamic (gdb-invoked) must restore the instruction
-;; in order to execute it when execution is continued.
- test.b [is_dyn_brkp] ; Is this a dynamic breakpoint?
- beq is_static ; No, a static breakpoint
- nop
- subq 2,$r0 ; rerun the instruction the break replaced
-is_static:
- moveq 1,$r1
- move.b $r1,[is_dyn_brkp] ; Set the state variable to dynamic breakpoint
- move.d $r0,[reg+0x62] ; Save the return address in BRP
- move $usp,[reg+0x66] ; USP
-;;
-;; Handle the communication
-;;
- move.d internal_stack+1020,$sp ; Use the internal stack which grows upward
- moveq 5,$r10 ; SIGTRAP
- jsr handle_exception ; Interactive routine
-;;
-;; Return to the caller
-;;
- move.d [reg],$r0 ; Restore R0
- move.d [reg+0x04],$r1 ; Restore R1
- move.d [reg+0x08],$r2 ; Restore R2
- move.d [reg+0x0C],$r3 ; Restore R3
- move.d [reg+0x10],$r4 ; Restore R4
- move.d [reg+0x14],$r5 ; Restore R5
- move.d [reg+0x18],$r6 ; Restore R6
- move.d [reg+0x1C],$r7 ; Restore R7
- move.d [reg+0x20],$r8 ; Restore R8
- move.d [reg+0x24],$r9 ; Restore R9
- move.d [reg+0x28],$r10 ; Restore R10
- move.d [reg+0x2C],$r11 ; Restore R11
- move.d [reg+0x30],$r12 ; Restore R12
- move.d [reg+0x34],$r13 ; Restore R13
-;;
-;; FIXME: Which registers should be restored?
-;;
- move.d [reg+0x38],$sp ; Restore SP (R14)
- move [reg+0x56],$srp ; Restore the subroutine return pointer.
- move [reg+0x5E],$dccr ; Restore DCCR
- move [reg+0x66],$usp ; Restore USP
- jump [reg+0x62] ; A jump to the content in register BRP works.
- nop ;
-");
+asm ("\n"
+" .global kgdb_handle_breakpoint\n"
+"kgdb_handle_breakpoint:\n"
+";;\n"
+";; Response to the break-instruction\n"
+";;\n"
+";; Create a register image of the caller\n"
+";;\n"
+" move $dccr,[reg+0x5E] ; Save the flags in DCCR before disable interrupts\n"
+" di ; Disable interrupts\n"
+" move.d $r0,[reg] ; Save R0\n"
+" move.d $r1,[reg+0x04] ; Save R1\n"
+" move.d $r2,[reg+0x08] ; Save R2\n"
+" move.d $r3,[reg+0x0C] ; Save R3\n"
+" move.d $r4,[reg+0x10] ; Save R4\n"
+" move.d $r5,[reg+0x14] ; Save R5\n"
+" move.d $r6,[reg+0x18] ; Save R6\n"
+" move.d $r7,[reg+0x1C] ; Save R7\n"
+" move.d $r8,[reg+0x20] ; Save R8\n"
+" move.d $r9,[reg+0x24] ; Save R9\n"
+" move.d $r10,[reg+0x28] ; Save R10\n"
+" move.d $r11,[reg+0x2C] ; Save R11\n"
+" move.d $r12,[reg+0x30] ; Save R12\n"
+" move.d $r13,[reg+0x34] ; Save R13\n"
+" move.d $sp,[reg+0x38] ; Save SP (R14)\n"
+";; Due to the old assembler-versions BRP might not be recognized\n"
+" .word 0xE670 ; move brp,$r0\n"
+" subq 2,$r0 ; Set to address of previous instruction.\n"
+" move.d $r0,[reg+0x3c] ; Save the address in PC (R15)\n"
+" clear.b [reg+0x40] ; Clear P0\n"
+" move $vr,[reg+0x41] ; Save special register P1\n"
+" clear.w [reg+0x42] ; Clear P4\n"
+" move $ccr,[reg+0x44] ; Save special register CCR\n"
+" move $mof,[reg+0x46] ; P7\n"
+" clear.d [reg+0x4A] ; Clear P8\n"
+" move $ibr,[reg+0x4E] ; P9,\n"
+" move $irp,[reg+0x52] ; P10,\n"
+" move $srp,[reg+0x56] ; P11,\n"
+" move $dtp0,[reg+0x5A] ; P12, register BAR, assembler might not know BAR\n"
+" ; P13, register DCCR already saved\n"
+";; Due to the old assembler-versions BRP might not be recognized\n"
+" .word 0xE670 ; move brp,r0\n"
+";; Static (compiled) breakpoints must return to the next instruction in order\n"
+";; to avoid infinite loops. Dynamic (gdb-invoked) must restore the instruction\n"
+";; in order to execute it when execution is continued.\n"
+" test.b [is_dyn_brkp] ; Is this a dynamic breakpoint?\n"
+" beq is_static ; No, a static breakpoint\n"
+" nop\n"
+" subq 2,$r0 ; rerun the instruction the break replaced\n"
+"is_static:\n"
+" moveq 1,$r1\n"
+" move.b $r1,[is_dyn_brkp] ; Set the state variable to dynamic breakpoint\n"
+" move.d $r0,[reg+0x62] ; Save the return address in BRP\n"
+" move $usp,[reg+0x66] ; USP\n"
+";;\n"
+";; Handle the communication\n"
+";;\n"
+" move.d internal_stack+1020,$sp ; Use the internal stack which grows upward\n"
+" moveq 5,$r10 ; SIGTRAP\n"
+" jsr handle_exception ; Interactive routine\n"
+";;\n"
+";; Return to the caller\n"
+";;\n"
+" move.d [reg],$r0 ; Restore R0\n"
+" move.d [reg+0x04],$r1 ; Restore R1\n"
+" move.d [reg+0x08],$r2 ; Restore R2\n"
+" move.d [reg+0x0C],$r3 ; Restore R3\n"
+" move.d [reg+0x10],$r4 ; Restore R4\n"
+" move.d [reg+0x14],$r5 ; Restore R5\n"
+" move.d [reg+0x18],$r6 ; Restore R6\n"
+" move.d [reg+0x1C],$r7 ; Restore R7\n"
+" move.d [reg+0x20],$r8 ; Restore R8\n"
+" move.d [reg+0x24],$r9 ; Restore R9\n"
+" move.d [reg+0x28],$r10 ; Restore R10\n"
+" move.d [reg+0x2C],$r11 ; Restore R11\n"
+" move.d [reg+0x30],$r12 ; Restore R12\n"
+" move.d [reg+0x34],$r13 ; Restore R13\n"
+";;\n"
+";; FIXME: Which registers should be restored?\n"
+";;\n"
+" move.d [reg+0x38],$sp ; Restore SP (R14)\n"
+" move [reg+0x56],$srp ; Restore the subroutine return pointer.\n"
+" move [reg+0x5E],$dccr ; Restore DCCR\n"
+" move [reg+0x66],$usp ; Restore USP\n"
+" jump [reg+0x62] ; A jump to the content in register BRP works.\n"
+" nop ;\n"
+"\n");
/* The hook for an interrupt generated by GDB. An internal stack is used
by the stub. The register image of the caller is stored in the structure
@@ -1367,94 +1367,94 @@ is_static:
void kgdb_handle_serial(void);
-asm ("
- .global kgdb_handle_serial
-kgdb_handle_serial:
-;;
-;; Response to a serial interrupt
-;;
-
- move $dccr,[reg+0x5E] ; Save the flags in DCCR
- di ; Disable interrupts
- move.d $r0,[reg] ; Save R0
- move.d $r1,[reg+0x04] ; Save R1
- move.d $r2,[reg+0x08] ; Save R2
- move.d $r3,[reg+0x0C] ; Save R3
- move.d $r4,[reg+0x10] ; Save R4
- move.d $r5,[reg+0x14] ; Save R5
- move.d $r6,[reg+0x18] ; Save R6
- move.d $r7,[reg+0x1C] ; Save R7
- move.d $r8,[reg+0x20] ; Save R8
- move.d $r9,[reg+0x24] ; Save R9
- move.d $r10,[reg+0x28] ; Save R10
- move.d $r11,[reg+0x2C] ; Save R11
- move.d $r12,[reg+0x30] ; Save R12
- move.d $r13,[reg+0x34] ; Save R13
- move.d $sp,[reg+0x38] ; Save SP (R14)
- move $irp,[reg+0x3c] ; Save the address in PC (R15)
- clear.b [reg+0x40] ; Clear P0
- move $vr,[reg+0x41] ; Save special register P1,
- clear.w [reg+0x42] ; Clear P4
- move $ccr,[reg+0x44] ; Save special register CCR
- move $mof,[reg+0x46] ; P7
- clear.d [reg+0x4A] ; Clear P8
- move $ibr,[reg+0x4E] ; P9,
- move $irp,[reg+0x52] ; P10,
- move $srp,[reg+0x56] ; P11,
- move $dtp0,[reg+0x5A] ; P12, register BAR, assembler might not know BAR
- ; P13, register DCCR already saved
-;; Due to the old assembler-versions BRP might not be recognized
- .word 0xE670 ; move brp,r0
- move.d $r0,[reg+0x62] ; Save the return address in BRP
- move $usp,[reg+0x66] ; USP
-
-;; get the serial character (from debugport.c) and check if it is a ctrl-c
-
- jsr getDebugChar
- cmp.b 3, $r10
- bne goback
- nop
-
- move.d [reg+0x5E], $r10 ; Get DCCR
- btstq 8, $r10 ; Test the U-flag.
- bmi goback
- nop
-
-;;
-;; Handle the communication
-;;
- move.d internal_stack+1020,$sp ; Use the internal stack
- moveq 2,$r10 ; SIGINT
- jsr handle_exception ; Interactive routine
-
-goback:
-;;
-;; Return to the caller
-;;
- move.d [reg],$r0 ; Restore R0
- move.d [reg+0x04],$r1 ; Restore R1
- move.d [reg+0x08],$r2 ; Restore R2
- move.d [reg+0x0C],$r3 ; Restore R3
- move.d [reg+0x10],$r4 ; Restore R4
- move.d [reg+0x14],$r5 ; Restore R5
- move.d [reg+0x18],$r6 ; Restore R6
- move.d [reg+0x1C],$r7 ; Restore R7
- move.d [reg+0x20],$r8 ; Restore R8
- move.d [reg+0x24],$r9 ; Restore R9
- move.d [reg+0x28],$r10 ; Restore R10
- move.d [reg+0x2C],$r11 ; Restore R11
- move.d [reg+0x30],$r12 ; Restore R12
- move.d [reg+0x34],$r13 ; Restore R13
-;;
-;; FIXME: Which registers should be restored?
-;;
- move.d [reg+0x38],$sp ; Restore SP (R14)
- move [reg+0x56],$srp ; Restore the subroutine return pointer.
- move [reg+0x5E],$dccr ; Restore DCCR
- move [reg+0x66],$usp ; Restore USP
- reti ; Return from the interrupt routine
- nop
-");
+asm ("\n"
+" .global kgdb_handle_serial\n"
+"kgdb_handle_serial:\n"
+";;\n"
+";; Response to a serial interrupt\n"
+";;\n"
+"\n"
+" move $dccr,[reg+0x5E] ; Save the flags in DCCR\n"
+" di ; Disable interrupts\n"
+" move.d $r0,[reg] ; Save R0\n"
+" move.d $r1,[reg+0x04] ; Save R1\n"
+" move.d $r2,[reg+0x08] ; Save R2\n"
+" move.d $r3,[reg+0x0C] ; Save R3\n"
+" move.d $r4,[reg+0x10] ; Save R4\n"
+" move.d $r5,[reg+0x14] ; Save R5\n"
+" move.d $r6,[reg+0x18] ; Save R6\n"
+" move.d $r7,[reg+0x1C] ; Save R7\n"
+" move.d $r8,[reg+0x20] ; Save R8\n"
+" move.d $r9,[reg+0x24] ; Save R9\n"
+" move.d $r10,[reg+0x28] ; Save R10\n"
+" move.d $r11,[reg+0x2C] ; Save R11\n"
+" move.d $r12,[reg+0x30] ; Save R12\n"
+" move.d $r13,[reg+0x34] ; Save R13\n"
+" move.d $sp,[reg+0x38] ; Save SP (R14)\n"
+" move $irp,[reg+0x3c] ; Save the address in PC (R15)\n"
+" clear.b [reg+0x40] ; Clear P0\n"
+" move $vr,[reg+0x41] ; Save special register P1,\n"
+" clear.w [reg+0x42] ; Clear P4\n"
+" move $ccr,[reg+0x44] ; Save special register CCR\n"
+" move $mof,[reg+0x46] ; P7\n"
+" clear.d [reg+0x4A] ; Clear P8\n"
+" move $ibr,[reg+0x4E] ; P9,\n"
+" move $irp,[reg+0x52] ; P10,\n"
+" move $srp,[reg+0x56] ; P11,\n"
+" move $dtp0,[reg+0x5A] ; P12, register BAR, assembler might not know BAR\n"
+" ; P13, register DCCR already saved\n"
+";; Due to the old assembler-versions BRP might not be recognized\n"
+" .word 0xE670 ; move brp,r0\n"
+" move.d $r0,[reg+0x62] ; Save the return address in BRP\n"
+" move $usp,[reg+0x66] ; USP\n"
+"\n"
+";; get the serial character (from debugport.c) and check if it is a ctrl-c\n"
+"\n"
+" jsr getDebugChar\n"
+" cmp.b 3, $r10\n"
+" bne goback\n"
+" nop\n"
+"\n"
+" move.d [reg+0x5E], $r10 ; Get DCCR\n"
+" btstq 8, $r10 ; Test the U-flag.\n"
+" bmi goback\n"
+" nop\n"
+"\n"
+";;\n"
+";; Handle the communication\n"
+";;\n"
+" move.d internal_stack+1020,$sp ; Use the internal stack\n"
+" moveq 2,$r10 ; SIGINT\n"
+" jsr handle_exception ; Interactive routine\n"
+"\n"
+"goback:\n"
+";;\n"
+";; Return to the caller\n"
+";;\n"
+" move.d [reg],$r0 ; Restore R0\n"
+" move.d [reg+0x04],$r1 ; Restore R1\n"
+" move.d [reg+0x08],$r2 ; Restore R2\n"
+" move.d [reg+0x0C],$r3 ; Restore R3\n"
+" move.d [reg+0x10],$r4 ; Restore R4\n"
+" move.d [reg+0x14],$r5 ; Restore R5\n"
+" move.d [reg+0x18],$r6 ; Restore R6\n"
+" move.d [reg+0x1C],$r7 ; Restore R7\n"
+" move.d [reg+0x20],$r8 ; Restore R8\n"
+" move.d [reg+0x24],$r9 ; Restore R9\n"
+" move.d [reg+0x28],$r10 ; Restore R10\n"
+" move.d [reg+0x2C],$r11 ; Restore R11\n"
+" move.d [reg+0x30],$r12 ; Restore R12\n"
+" move.d [reg+0x34],$r13 ; Restore R13\n"
+";;\n"
+";; FIXME: Which registers should be restored?\n"
+";;\n"
+" move.d [reg+0x38],$sp ; Restore SP (R14)\n"
+" move [reg+0x56],$srp ; Restore the subroutine return pointer.\n"
+" move [reg+0x5E],$dccr ; Restore DCCR\n"
+" move [reg+0x66],$usp ; Restore USP\n"
+" reti ; Return from the interrupt routine\n"
+" nop\n"
+"\n");
/* Use this static breakpoint in the start-up only. */
OpenPOWER on IntegriCloud