Rockbox mail archiveSubject: Re: Random numbers et al
Re: Random numbers et al
From: Linus Nielsen Feltzing <linus_at_haxx.se>
Date: Wed, 09 Apr 2003 01:40:59 +0200
Blue Chip wrote:
First of all, I'm sorry if I was too hard on you. I apologize.
> However, something like qsort, might benefit immensely. Maybe a more
> selective approach would be appropriate?
Of course. No need to optimize code that doesn't need optimizing.
> By example: system.c is a true mystery to me.
Hehe, that file is a mystery to everyone (well, almost).
It sets up the interrupt vectors (yes, I know you know that). It makes
use of a Gnu linker feature mainly used for linking libraries, called
It declares interrupt handlers for all vectors, reserve_interrupt()
means that the vector will never be used, calling UIExx to handle it.
The default_interrupt() macro creates a weak alias to UIExx for the
vector, this alias can then be overridden by defining a function with
the same name elsewhere in the code.
default_interrupt (IRQ6, 70);
This declares a weak alias IRQ6, that by default points to UIE70(). The
vector table (vbr) is initiated with this weak alias.
In mpeg.c, the IRQ6 function is defined:
Now the linker uses the "real" IRQ6 function for the vector.
It is just a way of not having to edit the vector table when using an
> Given the application that your current random number generator is used
> for, the code which you have, although an impressive generator, is
> (imho) unnecessarily complex and memory hungry.
You may be correct. You are very welcome to examine this further and if
you can provide a smaller generator with a decent period we are all ears.
> It was never my intent to offend - I don't TRY to make enemies. I will
> only defend myself when I am attacked.
Sorry if you felt attacked. I feel responsible for that and I apologize
> Sounds far more interesting when put like that.
> Is the last (rejected) solution available to look at?
Not really, but is a simple lcd_invert_rect() call to create an inverted
line in the browser. A quite slow operation, especially when the line
isn't fitting exactly in an 8 pixel row.
If you really feel like doing some tricky code, try optimizing the
lcd_bitmap() code. We also want it to be able to draw bitmaps taller
than 16 pixels.
Or maybe optimize the lcd_write() code in lcd.c if you feel like hacking
some assembler. Every cycle counts in that one.
Received on 2003-04-09