summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2005-02-24 23:24:00 +0000
committerJens Arnold <amiconn@rockbox.org>2005-02-24 23:24:00 +0000
commit6e372abb0ee1974dc4fe3003a1182c0d8dc662af (patch)
tree7786ffab7848204f87c5b618bd71c85d1eb39540 /apps
parent527e121757a0e595bf47ba2f6aba4c02605806cb (diff)
downloadrockbox-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')
-rw-r--r--apps/plugins/lib/gray_blockfuncs.c4
-rw-r--r--apps/plugins/lib/gray_drawgraymap.c4
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);