From 1cbac551be172186ad43aec96f5ff38a49ca7a32 Mon Sep 17 00:00:00 2001 From: Jens Arnold Date: Mon, 3 Oct 2005 12:51:29 +0000 Subject: Grayscale lib on archos: Fixed bug introduced with the register usage change. Reusing a register twice won't work that well... git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7577 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugins/lib/gray_core.c | 14 +++++++------- apps/plugins/lib/gray_draw.c | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) (limited to 'apps/plugins') diff --git a/apps/plugins/lib/gray_core.c b/apps/plugins/lib/gray_core.c index 7fcd3dac80..ed37f6164d 100644 --- a/apps/plugins/lib/gray_core.c +++ b/apps/plugins/lib/gray_core.c @@ -390,7 +390,7 @@ void gray_update_rect(int x, int y, int width, int height) "mov.l @%[patp]+,r7\n" "mov.l @%[patp]+,r8\n" "mov.l @%[patp]+,r9\n" - "mov.l @%[patp],%[rx] \n" + "mov.l @%[patp],r10\n" "tst %[mask],%[mask] \n" /* nothing to keep? */ "bt .ur_sloop \n" /* yes: jump to short loop */ @@ -410,11 +410,11 @@ void gray_update_rect(int x, int y, int width, int height) "rotcl r0 \n" "shlr r9 \n" "rotcl r0 \n" - "shlr %[rx] \n" - "mov.b @%[addr],%[patp]\n" /* read old value */ + "shlr r10 \n" + "mov.b @%[addr],%[rx] \n" /* read old value */ "rotcl r0 \n" - "and %[mask],%[patp] \n" /* mask out unneeded bits */ - "or %[patp],r0 \n" /* set new bits */ + "and %[mask],%[rx] \n" /* mask out unneeded bits */ + "or %[rx],r0 \n" /* set new bits */ "mov.b r0,@%[addr] \n" /* store value to bitplane */ "add %[psiz],%[addr] \n" /* advance to next bitplane */ "cmp/hi %[addr],%[end] \n" /* last bitplane done? */ @@ -438,7 +438,7 @@ void gray_update_rect(int x, int y, int width, int height) "rotcl r0 \n" "shlr r9 \n" "rotcl r0 \n" - "shlr %[rx] \n" + "shlr r10 \n" "rotcl r0 \n" "mov.b r0,@%[addr] \n" /* store byte to bitplane */ "add %[psiz],%[addr] \n" /* advance to next bitplane */ @@ -455,7 +455,7 @@ void gray_update_rect(int x, int y, int width, int height) [end] "r"(end), [patp]"[rx]"(pat_ptr) : /* clobbers */ - "r0", "r1", "r2", "r3", "r6", "r7", "r8", "r9" + "r0", "r1", "r2", "r3", "r6", "r7", "r8", "r9", "r10" ); } #elif defined(CPU_COLDFIRE) && (LCD_DEPTH == 2) diff --git a/apps/plugins/lib/gray_draw.c b/apps/plugins/lib/gray_draw.c index d03f450b5f..d9b9a36f49 100644 --- a/apps/plugins/lib/gray_draw.c +++ b/apps/plugins/lib/gray_draw.c @@ -675,7 +675,7 @@ static void _writearray(unsigned char *address, const unsigned char *src, "mov.l @%[patp]+,r7\n" "mov.l @%[patp]+,r8\n" "mov.l @%[patp]+,r9\n" - "mov.l @%[patp],%[rx] \n" + "mov.l @%[patp],r10\n" "not %[mask],%[mask] \n" /* "set" mask -> "keep" mask */ "extu.b %[mask],%[mask] \n" /* mask out high bits */ @@ -697,11 +697,11 @@ static void _writearray(unsigned char *address, const unsigned char *src, "rotcl r0 \n" "shlr r9 \n" "rotcl r0 \n" - "shlr %[rx] \n" - "mov.b @%[addr],%[patp]\n" /* read old value */ + "shlr r10 \n" + "mov.b @%[addr],%[rx] \n" /* read old value */ "rotcl r0 \n" - "and %[mask],%[patp] \n" /* mask out unneeded bits */ - "or %[patp],r0 \n" /* set new bits */ + "and %[mask],%[rx] \n" /* mask out unneeded bits */ + "or %[rx],r0 \n" /* set new bits */ "mov.b r0,@%[addr] \n" /* store value to bitplane */ "add %[psiz],%[addr] \n" /* advance to next bitplane */ "cmp/hi %[addr],%[end] \n" /* last bitplane done? */ @@ -725,7 +725,7 @@ static void _writearray(unsigned char *address, const unsigned char *src, "rotcl r0 \n" "shlr r9 \n" "rotcl r0 \n" - "shlr %[rx] \n" + "shlr r10 \n" "rotcl r0 \n" "mov.b r0,@%[addr] \n" /* store byte to bitplane */ "add %[psiz],%[addr] \n" /* advance to next bitplane */ @@ -742,7 +742,7 @@ static void _writearray(unsigned char *address, const unsigned char *src, [end] "r"(end), [patp]"[rx]"(pat_ptr) : /* clobbers */ - "r0", "r1", "r2", "r3", "r6", "r7", "r8", "r9" + "r0", "r1", "r2", "r3", "r6", "r7", "r8", "r9", "r10" ); #elif defined(CPU_COLDFIRE) && (LCD_DEPTH == 2) unsigned long pat_stack[8]; -- cgit v1.2.3