[render_text] Move all glyphs to the left...
[wikipediardware.git] / forth / debug.s
blob7f35669835c400b774dd119717ed3297107bc525
1 ;;; debug - simple debug print
3 ;;; Copyright 2009 Christopher Hall <hsw@openmoko.com>
4 ;;;
5 ;;; Redistribution and use in source and binary forms, with or without
6 ;;; modification, are permitted provided that the following conditions are
7 ;;; met:
8 ;;;
9 ;;; 1. Redistributions of source code must retain the above copyright
10 ;;; notice, this list of conditions and the following disclaimer.
11 ;;;
12 ;;; 2. Redistributions in binary form must reproduce the above copyright
13 ;;; notice, this list of conditions and the following disclaimer in
14 ;;; the documentation and/or other materials provided with the
15 ;;; distribution.
16 ;;;
17 ;;; THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY
18 ;;; EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 ;;; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20 ;;; PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE
21 ;;; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 ;;; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 ;;; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
24 ;;; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
25 ;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
26 ;;; OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
27 ;;; IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 ;;; .include "c33regs.inc"
31 ;;; register usage
32 ;;; r0 .. r3 must be preserved
33 ;;; r4 result low
34 ;;; r5 result high
35 ;;; r6 .. r9 arguments 1..4
36 ;;; r10 ..r14 reserved
37 ;;; r15 __dp value
39 .section .text
41 debug_8:
42 pushn %r2
43 ld.w %r1, %r7
45 xcall Serial_PutString
46 xcall Serial_PutSpace
48 xld.w %r2, 8
50 debug_8_loop:
52 ld.w %r6, [%r1]+
53 xcall Serial_PutHex
54 xcall Serial_PutSpace
56 xsub %r2, 1
57 jrne debug_8_loop
59 xcall Serial_PutCRLF
60 popn %r2
62 ret
64 .global xdebug
65 xdebug:
66 xcall Serial_PutCRLF
68 xld.w %r6, debug_regs
69 xcall Serial_PutString
70 ld.w %r6, %r0
71 xcall Serial_PutHex
72 xcall Serial_PutSpace
73 ld.w %r6, %r1
74 xcall Serial_PutHex
75 xcall Serial_PutSpace
76 ld.w %r6, %r2
77 xcall Serial_PutHex
78 xcall Serial_PutSpace
79 ld.w %r6, %r3
80 xcall Serial_PutHex
81 xcall Serial_PutSpace
83 xcall Serial_PutSpace
84 ld.w %r6, %sp
85 xcall Serial_PutHex
87 xcall Serial_PutCRLF
89 xld.w %r6, debug_data
90 ld.w %r7, %r1
91 xcall debug_8
94 xld.w %r6, debug_instr
95 ld.w %r7, %r0
96 xcall debug_8
98 xld.w %r6, debug_return
99 ld.w %r7, %sp
100 xcall debug_8
105 debug_regs:
106 .asciz "r0..r3 sp: "
108 debug_instr:
109 .asciz "ip: "
111 debug_data:
112 .asciz "sp: "
114 debug_return:
115 .asciz "rp: "
117 .balign 4