diff options
author | Jens Arnold <amiconn@rockbox.org> | 2005-02-24 23:24:00 +0000 |
---|---|---|
committer | Jens Arnold <amiconn@rockbox.org> | 2005-02-24 23:24:00 +0000 |
commit | 6e372abb0ee1974dc4fe3003a1182c0d8dc662af (patch) | |
tree | 7786ffab7848204f87c5b618bd71c85d1eb39540 /apps/plugins | |
parent | 527e121757a0e595bf47ba2f6aba4c02605806cb (diff) | |
download | rockbox-6e372abb0ee1974dc4fe3003a1182c0d8dc662af.tar.gz rockbox-6e372abb0ee1974dc4fe3003a1182c0d8dc662af.zip |
Grayscale lib: let the compiler decide when to save the pr register.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6051 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins')
-rw-r--r-- | apps/plugins/lib/gray_blockfuncs.c | 4 | ||||
-rw-r--r-- | apps/plugins/lib/gray_drawgraymap.c | 4 |
2 files changed, 2 insertions, 6 deletions
diff --git a/apps/plugins/lib/gray_blockfuncs.c b/apps/plugins/lib/gray_blockfuncs.c index c534e4cfd6..85af0014e1 100644 --- a/apps/plugins/lib/gray_blockfuncs.c +++ b/apps/plugins/lib/gray_blockfuncs.c | |||
@@ -54,7 +54,6 @@ static void _writeblock(unsigned char *address, unsigned mask, unsigned bits) | |||
54 | * see there for an explanation) for all 8 pixels and put them on an | 54 | * see there for an explanation) for all 8 pixels and put them on an |
55 | * extra stack */ | 55 | * extra stack */ |
56 | asm ( | 56 | asm ( |
57 | "sts.l pr,@-r15 \n" /* save pr (fix GCC331 build, cleaner) */ | ||
58 | "mov #8,r3 \n" /* loop count in r3: 8 pixels */ | 57 | "mov #8,r3 \n" /* loop count in r3: 8 pixels */ |
59 | "mov %6,r2 \n" /* copy mask */ | 58 | "mov %6,r2 \n" /* copy mask */ |
60 | 59 | ||
@@ -104,7 +103,6 @@ static void _writeblock(unsigned char *address, unsigned mask, unsigned bits) | |||
104 | "add #-1,r3 \n" /* decrease loop count */ | 103 | "add #-1,r3 \n" /* decrease loop count */ |
105 | "cmp/pl r3 \n" /* loop count > 0? */ | 104 | "cmp/pl r3 \n" /* loop count > 0? */ |
106 | "bt .wb_loop \n" /* yes: loop */ | 105 | "bt .wb_loop \n" /* yes: loop */ |
107 | "lds.l @r15+,pr \n" /* retsore pr */ | ||
108 | : /* outputs */ | 106 | : /* outputs */ |
109 | /* %0, in & out */ "+r"(_gray_random_buffer), | 107 | /* %0, in & out */ "+r"(_gray_random_buffer), |
110 | /* %1, in & out */ "+r"(pat_ptr) | 108 | /* %1, in & out */ "+r"(pat_ptr) |
@@ -116,7 +114,7 @@ static void _writeblock(unsigned char *address, unsigned mask, unsigned bits) | |||
116 | /* %6 */ "r"(mask), | 114 | /* %6 */ "r"(mask), |
117 | /* %7 */ "r"(bits) | 115 | /* %7 */ "r"(bits) |
118 | : /* clobbers */ | 116 | : /* clobbers */ |
119 | "r0", "r1", "r2", "r3", "r4", "r5", "macl" | 117 | "r0", "r1", "r2", "r3", "r4", "r5", "macl", "pr" |
120 | ); | 118 | ); |
121 | 119 | ||
122 | end_addr = address + MULU16(_graybuf->depth, _graybuf->plane_size); | 120 | end_addr = address + MULU16(_graybuf->depth, _graybuf->plane_size); |
diff --git a/apps/plugins/lib/gray_drawgraymap.c b/apps/plugins/lib/gray_drawgraymap.c index 00d4d2b270..2760d5a96c 100644 --- a/apps/plugins/lib/gray_drawgraymap.c +++ b/apps/plugins/lib/gray_drawgraymap.c | |||
@@ -49,7 +49,6 @@ static void _writearray(unsigned char *address, const unsigned char *src, | |||
49 | * _writepixel, see there for an explanation) for all 8 pixels and put them | 49 | * _writepixel, see there for an explanation) for all 8 pixels and put them |
50 | * on an extra "stack" */ | 50 | * on an extra "stack" */ |
51 | asm ( | 51 | asm ( |
52 | "sts.l pr,@-r15 \n" /* save pr (fix GCC331 build, cleaner) */ | ||
53 | "mov #8,r3 \n" /* loop count in r3: 8 pixels */ | 52 | "mov #8,r3 \n" /* loop count in r3: 8 pixels */ |
54 | "mov %7,r2 \n" /* copy mask */ | 53 | "mov %7,r2 \n" /* copy mask */ |
55 | 54 | ||
@@ -99,7 +98,6 @@ static void _writearray(unsigned char *address, const unsigned char *src, | |||
99 | "add #-1,r3 \n" /* decrease loop count */ | 98 | "add #-1,r3 \n" /* decrease loop count */ |
100 | "cmp/pl r3 \n" /* loop count > 0? */ | 99 | "cmp/pl r3 \n" /* loop count > 0? */ |
101 | "bt .wa_loop \n" /* yes: loop */ | 100 | "bt .wa_loop \n" /* yes: loop */ |
102 | "lds.l @r15+,pr \n" /* restore pr */ | ||
103 | : /* outputs */ | 101 | : /* outputs */ |
104 | /* %0, in & out */ "+r"(_gray_random_buffer), | 102 | /* %0, in & out */ "+r"(_gray_random_buffer), |
105 | /* %1, in & out */ "+r"(pat_ptr) | 103 | /* %1, in & out */ "+r"(pat_ptr) |
@@ -111,7 +109,7 @@ static void _writearray(unsigned char *address, const unsigned char *src, | |||
111 | /* %6 */ "r"(_graybuf->randmask), | 109 | /* %6 */ "r"(_graybuf->randmask), |
112 | /* %7 */ "r"(mask) | 110 | /* %7 */ "r"(mask) |
113 | : /* clobbers */ | 111 | : /* clobbers */ |
114 | "r0", "r1", "r2", "r3", "r4", "r5", "macl" | 112 | "r0", "r1", "r2", "r3", "r4", "r5", "macl", "pr" |
115 | ); | 113 | ); |
116 | 114 | ||
117 | end_addr = address + MULU16(_graybuf->depth, _graybuf->plane_size); | 115 | end_addr = address + MULU16(_graybuf->depth, _graybuf->plane_size); |