source: mainline/boot/tools/ppc32/debug.c@ 26c67a8

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since 26c67a8 was fb0e6f03, checked in by jermar <jermar@…>, 17 years ago

Merge the boot branch.

  • Property mode set to 100644
File size: 1.5 KB
Line 
1#include "font-8x16.h"
2
3#define FB_REG "r8"
4#define SCAN_REG "r9"
5
6#define ADDR_REG "r10"
7#define FG_REG "r11"
8#define BG_REG "r12"
9
10#define FG_COLOR 0xffffffff
11#define BG_COLOR 0x00000000
12
13#define BPP 4
14
15void print_macro_init(void) {
16 printf(".macro DEBUG_INIT\n");
17 printf("#ifdef CONFIG_DEBUG\n");
18 printf("\tlis %s, %d\n", FG_REG, FG_COLOR >> 16);
19 printf("\tori %s, %s, %d\n", FG_REG, FG_REG, FG_COLOR & 0xffff);
20 printf("\t\n");
21 printf("\tlis %s, %d\n", BG_REG, BG_COLOR >> 16);
22 printf("\tori %s, %s, %d\n", BG_REG, BG_REG, BG_COLOR & 0xffff);
23 printf("\t\n");
24 printf("\tmr %s, %s\n", ADDR_REG, FB_REG);
25 printf("#endif\n");
26 printf(".endm\n");
27}
28
29void print_macro(const char *name) {
30 printf(".macro DEBUG_%s\n", name);
31 printf("#ifdef CONFIG_DEBUG\n");
32
33 unsigned int y;
34 for (y = 0; y < FONT_SCANLINES; y++) {
35 printf("\t\n");
36
37 if (y > 0)
38 printf("\tadd %s, %s, %s\n", ADDR_REG, ADDR_REG, SCAN_REG);
39
40 unsigned int i;
41 for (i = 0; name[i] != 0; i++) {
42 char c = name[i];
43
44 unsigned int x;
45 for (x = 0; x < FONT_WIDTH; x++) {
46 if (((fb_font[c * FONT_SCANLINES + y] >> (FONT_WIDTH - x)) & 1) == 1)
47 printf("\tstw %s, %d(%s)\n", FG_REG, (i * FONT_WIDTH + x) * BPP, ADDR_REG);
48 else
49 printf("\tstw %s, %d(%s)\n", BG_REG, (i * FONT_WIDTH + x) * BPP, ADDR_REG);
50 }
51 }
52 }
53
54 printf("#endif\n");
55 printf(".endm\n");
56}
57
58int main(int argc, char *argv[]) {
59 print_macro_init();
60
61 int i;
62 for (i = 1; i < argc; i++) {
63 printf("\n");
64 print_macro(argv[i]);
65 }
66
67 return 0;
68}
Note: See TracBrowser for help on using the repository browser.