Merge branches 'x86/acpi', 'x86/apic', 'x86/asm', 'x86/cleanups', 'x86/mm', 'x86...
[linux-2.6] / arch / mn10300 / kernel / gdb-low.S
1 ###############################################################################
2 #
3 # MN10300 Low-level gdbstub routines
4 #
5 # Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
6 # Written by David Howells (dhowells@redhat.com)
7 #
8 # This program is free software; you can redistribute it and/or
9 # modify it under the terms of the GNU General Public Licence
10 # as published by the Free Software Foundation; either version
11 # 2 of the Licence, or (at your option) any later version.
12 #
13 ###############################################################################
14 #include <linux/sys.h>
15 #include <linux/linkage.h>
16 #include <asm/smp.h>
17 #include <asm/cache.h>
18 #include <asm/cpu-regs.h>
19 #include <asm/exceptions.h>
20 #include <asm/frame.inc>
21 #include <asm/serial-regs.h>
22
23         .text
24
25 ###############################################################################
26 #
27 # GDB stub read memory with guard
28 # - D0 holds the memory address to read
29 # - D1 holds the address to store the byte into
30 #
31 ###############################################################################
32         .globl gdbstub_read_byte_guard
33         .globl gdbstub_read_byte_cont
34 ENTRY(gdbstub_read_byte)
35         mov     d0,a0
36         mov     d1,a1
37         clr     d0
38 gdbstub_read_byte_guard:
39         movbu   (a0),d1
40 gdbstub_read_byte_cont:
41         movbu   d1,(a1)
42         ret     [],0
43
44         .globl gdbstub_read_word_guard
45         .globl gdbstub_read_word_cont
46 ENTRY(gdbstub_read_word)
47         mov     d0,a0
48         mov     d1,a1
49         clr     d0
50 gdbstub_read_word_guard:
51         movhu   (a0),d1
52 gdbstub_read_word_cont:
53         movhu   d1,(a1)
54         ret     [],0
55
56         .globl gdbstub_read_dword_guard
57         .globl gdbstub_read_dword_cont
58 ENTRY(gdbstub_read_dword)
59         mov     d0,a0
60         mov     d1,a1
61         clr     d0
62 gdbstub_read_dword_guard:
63         mov     (a0),d1
64 gdbstub_read_dword_cont:
65         mov     d1,(a1)
66         ret     [],0
67
68 ###############################################################################
69 #
70 # GDB stub write memory with guard
71 # - D0 holds the byte to store
72 # - D1 holds the memory address to write
73 #
74 ###############################################################################
75         .globl gdbstub_write_byte_guard
76         .globl gdbstub_write_byte_cont
77 ENTRY(gdbstub_write_byte)
78         mov     d0,a0
79         mov     d1,a1
80         clr     d0
81 gdbstub_write_byte_guard:
82         movbu   a0,(a1)
83 gdbstub_write_byte_cont:
84         ret     [],0
85
86         .globl gdbstub_write_word_guard
87         .globl gdbstub_write_word_cont
88 ENTRY(gdbstub_write_word)
89         mov     d0,a0
90         mov     d1,a1
91         clr     d0
92 gdbstub_write_word_guard:
93         movhu   a0,(a1)
94 gdbstub_write_word_cont:
95         ret     [],0
96
97         .globl gdbstub_write_dword_guard
98         .globl gdbstub_write_dword_cont
99 ENTRY(gdbstub_write_dword)
100         mov     d0,a0
101         mov     d1,a1
102         clr     d0
103 gdbstub_write_dword_guard:
104         mov     a0,(a1)
105 gdbstub_write_dword_cont:
106         ret     [],0
107
108 ###############################################################################
109 #
110 # GDB stub BUG() trap
111 #
112 ###############################################################################
113 ENTRY(__gdbstub_bug_trap)
114         .byte   0xF7,0xF7       # don't use 0xFF as the JTAG unit preempts that
115         ret     [],0