From 6e3ad7eead0ed91e83aebb474ed4463d79583fd5 Mon Sep 17 00:00:00 2001 From: Thom Johansen Date: Sun, 19 Feb 2006 18:57:46 +0000 Subject: Add ASM optimised range_limit() for ARM, which gives a tiny performance gain. Removed a couple of tabs. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8740 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugins/jpeg.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'apps/plugins') diff --git a/apps/plugins/jpeg.c b/apps/plugins/jpeg.c index 4a20da1a55..d574bdada8 100644 --- a/apps/plugins/jpeg.c +++ b/apps/plugins/jpeg.c @@ -172,6 +172,16 @@ INLINE unsigned range_limit(int value) [v]"+r"(value) ); return value; +#elif defined(CPU_ARM) + asm ( + "adds %[v], %[v], #128\n" /* value += 128 */ + "movmi %[v], #0 \n" /* clip to 0 if negative result */ + "cmp %[v], #255 \n" /* did we exceed 255? */ + "movgt %[v], #255 \n" /* yes, clip to limit */ + : + [v]"+r"(value) + ); + return value; #else value += 128; @@ -2062,8 +2072,8 @@ int scroll_bmp(struct t_disp* pdisp) switch(button) { case JPEG_LEFT: - if (!(ds < ds_max) && entries > 0 && jpg.x_size <= MAX_X_SIZE) - return change_filename(DIR_PREV); + if (!(ds < ds_max) && entries > 0 && jpg.x_size <= MAX_X_SIZE) + return change_filename(DIR_PREV); case JPEG_LEFT | BUTTON_REPEAT: move = MIN(HSCROLL, pdisp->x); if (move > 0) -- cgit v1.2.3