diff options
Diffstat (limited to 'apps/plugins/lib/gray_scroll.c')
| -rw-r--r-- | apps/plugins/lib/gray_scroll.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/apps/plugins/lib/gray_scroll.c b/apps/plugins/lib/gray_scroll.c index f7ace0e..341024a 100644 --- a/apps/plugins/lib/gray_scroll.c +++ b/apps/plugins/lib/gray_scroll.c @@ -294,7 +294,9 @@ void gray_ub_scroll_up(int count) "extu.b r0,r1 \n" /* store data for next round */ ".su_shift6: \n" /* shift right by 0..7 bits */ - "shlr2 r0 \n" + "shll2 r0 \n" + "bra .su_shift0 \n" + "shlr8 r0 \n" ".su_shift4: \n" "shlr2 r0 \n" ".su_shift2: \n" @@ -378,7 +380,7 @@ void gray_ub_scroll_up(int count) [wide]"r"(_gray_info.width), [rows]"r"(_gray_info.bheight - shift), [addr]"a"(_gray_info.plane_data + _gray_info.plane_size - blockshift), - [cnt] "d"(2 * count) + [cnt] "d"(count) : /* clobbers */ "a0", "a1", "d0", "d1", "d2", "d3", "d4" ); @@ -474,7 +476,9 @@ void gray_ub_scroll_down(int count) "extu.b r0,r0 \n" /* extend unsigned */ ".sd_shift6: \n" /* shift left by 0..7 bits */ - "shll2 r0 \n" + "shll8 r0 \n" + "bra .sd_shift0 \n" + "shlr2 r0 \n" ".sd_shift4: \n" "shll2 r0 \n" ".sd_shift2: \n" @@ -557,7 +561,7 @@ void gray_ub_scroll_down(int count) [rows]"r"(_gray_info.bheight - shift), [psiz]"r"(_gray_info.plane_size), [addr]"a"(_gray_info.plane_data + blockshift), - [cnt] "d"(2 * count) + [cnt] "d"(count) : /* clobbers */ "a0", "a1", "d0", "d1", "d2", "d3", "d4" ); |