From b058366b1310bb8495bdc002a86e3c2500aa5e6f Mon Sep 17 00:00:00 2001 From: Jens Arnold Date: Fri, 25 Jun 2004 21:01:37 +0000 Subject: Save and restore pr register within _writearray() / _writeblock(). Cleaner coding, fixes GCC 3.3.1 build. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4803 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugins/lib/gray_drawgraymap.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'apps/plugins/lib/gray_drawgraymap.c') diff --git a/apps/plugins/lib/gray_drawgraymap.c b/apps/plugins/lib/gray_drawgraymap.c index 5febeb27ad..dc33446527 100644 --- a/apps/plugins/lib/gray_drawgraymap.c +++ b/apps/plugins/lib/gray_drawgraymap.c @@ -49,6 +49,7 @@ static void _writearray(unsigned char *address, unsigned char *src, int stride, * _writepixel, see there for an explanation) for all 8 pixels and put them * on an extra "stack" */ asm ( + "sts.l pr,@-r15 \n" /* save pr (fix GCC331 build, cleaner) */ "mov #8,r3 \n" /* loop count in r3: 8 pixels */ "mov %7,r2 \n" /* copy mask */ @@ -98,6 +99,7 @@ static void _writearray(unsigned char *address, unsigned char *src, int stride, "add #-1,r3 \n" /* decrease loop count */ "cmp/pl r3 \n" /* loop count > 0? */ "bt .wa_loop \n" /* yes: loop */ + "lds.l @r15+,pr \n" /* restore pr */ : /* outputs */ /* %0, in & out */ "+r"(_gray_random_buffer), /* %1, in & out */ "+r"(pat_ptr) -- cgit v1.2.3