forked from len0rd/rockbox
Convert a number of places in core and plugins to use the BIT_N() macro instead of 1<<n. Speeds up things on SH1, and also reduces core binsize. Most notable speedups: 1 bit lcd driver: drawpixel +20%, drawline + 27%, hline +5%; jpeg viewer: +8% for 1/8 scaling. Other targets are unaffected.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21205 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
c3182ec333
commit
1d6df54df2
24 changed files with 88 additions and 70 deletions
|
@ -22,6 +22,7 @@
|
|||
****************************************************************************/
|
||||
|
||||
#include <inttypes.h>
|
||||
#include "plugin.h"
|
||||
#include "fixedpoint.h"
|
||||
|
||||
/* Inverse gain of circular cordic rotation in s0.31 format. */
|
||||
|
@ -144,7 +145,7 @@ long fsincos(unsigned long phase, long *cos)
|
|||
*/
|
||||
long fsqrt(long a, unsigned int fracbits)
|
||||
{
|
||||
long b = a/2 + (1 << fracbits); /* initial approximation */
|
||||
long b = a/2 + BIT_N(fracbits); /* initial approximation */
|
||||
unsigned n;
|
||||
const unsigned iterations = 4;
|
||||
|
||||
|
|
|
@ -860,7 +860,7 @@ static void grey_screendump_hook(int fd)
|
|||
+ _GREY_MULUQ(_grey_info.width, gy & ~_GREY_BMASK);
|
||||
|
||||
#if LCD_DEPTH == 1
|
||||
mask = 1 << (y & 7);
|
||||
mask = BIT_N(y & 7);
|
||||
src = rb->lcd_framebuffer + _GREY_MULUQ(LCD_WIDTH, y >> 3);
|
||||
|
||||
do
|
||||
|
|
|
@ -22,6 +22,20 @@
|
|||
#include "plugin.h"
|
||||
#include "helper.h"
|
||||
|
||||
#ifdef CPU_SH
|
||||
/* Lookup table for using the BIT_N() macro in plugins */
|
||||
const unsigned bit_n_table[32] = {
|
||||
1LU<< 0, 1LU<< 1, 1LU<< 2, 1LU<< 3,
|
||||
1LU<< 4, 1LU<< 5, 1LU<< 6, 1LU<< 7,
|
||||
1LU<< 8, 1LU<< 9, 1LU<<10, 1LU<<11,
|
||||
1LU<<12, 1LU<<13, 1LU<<14, 1LU<<15,
|
||||
1LU<<16, 1LU<<17, 1LU<<18, 1LU<<19,
|
||||
1LU<<20, 1LU<<21, 1LU<<22, 1LU<<23,
|
||||
1LU<<24, 1LU<<25, 1LU<<26, 1LU<<27,
|
||||
1LU<<28, 1LU<<29, 1LU<<30, 1LU<<31
|
||||
};
|
||||
#endif
|
||||
|
||||
/* Force the backlight on */
|
||||
void backlight_force_on(void)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue