summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2005-10-03 12:51:29 +0000
committerJens Arnold <amiconn@rockbox.org>2005-10-03 12:51:29 +0000
commit1cbac551be172186ad43aec96f5ff38a49ca7a32 (patch)
treeed0f96f5d0a91ed5ff18b5f1316b809a85c7b53f
parentcfb073c452c0218a82e23fb5f5f89043719f2c07 (diff)
downloadrockbox-1cbac551be172186ad43aec96f5ff38a49ca7a32.tar.gz
rockbox-1cbac551be172186ad43aec96f5ff38a49ca7a32.zip
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
-rw-r--r--apps/plugins/lib/gray_core.c14
-rw-r--r--apps/plugins/lib/gray_draw.c14
2 files changed, 14 insertions, 14 deletions
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)
390 "mov.l @%[patp]+,r7\n" 390 "mov.l @%[patp]+,r7\n"
391 "mov.l @%[patp]+,r8\n" 391 "mov.l @%[patp]+,r8\n"
392 "mov.l @%[patp]+,r9\n" 392 "mov.l @%[patp]+,r9\n"
393 "mov.l @%[patp],%[rx] \n" 393 "mov.l @%[patp],r10\n"
394 394
395 "tst %[mask],%[mask] \n" /* nothing to keep? */ 395 "tst %[mask],%[mask] \n" /* nothing to keep? */
396 "bt .ur_sloop \n" /* yes: jump to short loop */ 396 "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)
410 "rotcl r0 \n" 410 "rotcl r0 \n"
411 "shlr r9 \n" 411 "shlr r9 \n"
412 "rotcl r0 \n" 412 "rotcl r0 \n"
413 "shlr %[rx] \n" 413 "shlr r10 \n"
414 "mov.b @%[addr],%[patp]\n" /* read old value */ 414 "mov.b @%[addr],%[rx] \n" /* read old value */
415 "rotcl r0 \n" 415 "rotcl r0 \n"
416 "and %[mask],%[patp] \n" /* mask out unneeded bits */ 416 "and %[mask],%[rx] \n" /* mask out unneeded bits */
417 "or %[patp],r0 \n" /* set new bits */ 417 "or %[rx],r0 \n" /* set new bits */
418 "mov.b r0,@%[addr] \n" /* store value to bitplane */ 418 "mov.b r0,@%[addr] \n" /* store value to bitplane */
419 "add %[psiz],%[addr] \n" /* advance to next bitplane */ 419 "add %[psiz],%[addr] \n" /* advance to next bitplane */
420 "cmp/hi %[addr],%[end] \n" /* last bitplane done? */ 420 "cmp/hi %[addr],%[end] \n" /* last bitplane done? */
@@ -438,7 +438,7 @@ void gray_update_rect(int x, int y, int width, int height)
438 "rotcl r0 \n" 438 "rotcl r0 \n"
439 "shlr r9 \n" 439 "shlr r9 \n"
440 "rotcl r0 \n" 440 "rotcl r0 \n"
441 "shlr %[rx] \n" 441 "shlr r10 \n"
442 "rotcl r0 \n" 442 "rotcl r0 \n"
443 "mov.b r0,@%[addr] \n" /* store byte to bitplane */ 443 "mov.b r0,@%[addr] \n" /* store byte to bitplane */
444 "add %[psiz],%[addr] \n" /* advance to next bitplane */ 444 "add %[psiz],%[addr] \n" /* advance to next bitplane */
@@ -455,7 +455,7 @@ void gray_update_rect(int x, int y, int width, int height)
455 [end] "r"(end), 455 [end] "r"(end),
456 [patp]"[rx]"(pat_ptr) 456 [patp]"[rx]"(pat_ptr)
457 : /* clobbers */ 457 : /* clobbers */
458 "r0", "r1", "r2", "r3", "r6", "r7", "r8", "r9" 458 "r0", "r1", "r2", "r3", "r6", "r7", "r8", "r9", "r10"
459 ); 459 );
460 } 460 }
461#elif defined(CPU_COLDFIRE) && (LCD_DEPTH == 2) 461#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,
675 "mov.l @%[patp]+,r7\n" 675 "mov.l @%[patp]+,r7\n"
676 "mov.l @%[patp]+,r8\n" 676 "mov.l @%[patp]+,r8\n"
677 "mov.l @%[patp]+,r9\n" 677 "mov.l @%[patp]+,r9\n"
678 "mov.l @%[patp],%[rx] \n" 678 "mov.l @%[patp],r10\n"
679 679
680 "not %[mask],%[mask] \n" /* "set" mask -> "keep" mask */ 680 "not %[mask],%[mask] \n" /* "set" mask -> "keep" mask */
681 "extu.b %[mask],%[mask] \n" /* mask out high bits */ 681 "extu.b %[mask],%[mask] \n" /* mask out high bits */
@@ -697,11 +697,11 @@ static void _writearray(unsigned char *address, const unsigned char *src,
697 "rotcl r0 \n" 697 "rotcl r0 \n"
698 "shlr r9 \n" 698 "shlr r9 \n"
699 "rotcl r0 \n" 699 "rotcl r0 \n"
700 "shlr %[rx] \n" 700 "shlr r10 \n"
701 "mov.b @%[addr],%[patp]\n" /* read old value */ 701 "mov.b @%[addr],%[rx] \n" /* read old value */
702 "rotcl r0 \n" 702 "rotcl r0 \n"
703 "and %[mask],%[patp] \n" /* mask out unneeded bits */ 703 "and %[mask],%[rx] \n" /* mask out unneeded bits */
704 "or %[patp],r0 \n" /* set new bits */ 704 "or %[rx],r0 \n" /* set new bits */
705 "mov.b r0,@%[addr] \n" /* store value to bitplane */ 705 "mov.b r0,@%[addr] \n" /* store value to bitplane */
706 "add %[psiz],%[addr] \n" /* advance to next bitplane */ 706 "add %[psiz],%[addr] \n" /* advance to next bitplane */
707 "cmp/hi %[addr],%[end] \n" /* last bitplane done? */ 707 "cmp/hi %[addr],%[end] \n" /* last bitplane done? */
@@ -725,7 +725,7 @@ static void _writearray(unsigned char *address, const unsigned char *src,
725 "rotcl r0 \n" 725 "rotcl r0 \n"
726 "shlr r9 \n" 726 "shlr r9 \n"
727 "rotcl r0 \n" 727 "rotcl r0 \n"
728 "shlr %[rx] \n" 728 "shlr r10 \n"
729 "rotcl r0 \n" 729 "rotcl r0 \n"
730 "mov.b r0,@%[addr] \n" /* store byte to bitplane */ 730 "mov.b r0,@%[addr] \n" /* store byte to bitplane */
731 "add %[psiz],%[addr] \n" /* advance to next bitplane */ 731 "add %[psiz],%[addr] \n" /* advance to next bitplane */
@@ -742,7 +742,7 @@ static void _writearray(unsigned char *address, const unsigned char *src,
742 [end] "r"(end), 742 [end] "r"(end),
743 [patp]"[rx]"(pat_ptr) 743 [patp]"[rx]"(pat_ptr)
744 : /* clobbers */ 744 : /* clobbers */
745 "r0", "r1", "r2", "r3", "r6", "r7", "r8", "r9" 745 "r0", "r1", "r2", "r3", "r6", "r7", "r8", "r9", "r10"
746 ); 746 );
747#elif defined(CPU_COLDFIRE) && (LCD_DEPTH == 2) 747#elif defined(CPU_COLDFIRE) && (LCD_DEPTH == 2)
748 unsigned long pat_stack[8]; 748 unsigned long pat_stack[8];