[vorbis-dev] Vorbis bitstream specification...

Monty xiphmont at xiph.org
Mon Feb 11 13:07:09 PST 2002



On Mon, Feb 11, 2002 at 09:40:52PM +0100, Segher Boessenkool wrote:

> ARM works.  PowerPC works.  Both on multiple compilers.  Integer multiply
> on x86 is a lost cause, so I never bothered to check.

That's just a *little* bit important.

> If you're very worried, you can always define it to be an assembler define
> like this (for ARM):
> 
> #define himul(x, y, xyhi) do { \
> 	int32 dum; \
> 	__asm__ ("smull %0,%1,%2,%3" \
> 		: "=r"(xyhi), "=r"(dum) : "r"(x), "r"(y) \
> 	); \
> while (0)

actually, "=&r"(dum) is needed to make that work (%1 may not overlap
with %2 or %3, and GCC *will* try to do it), and "%r"(x) might be a
good idea too.

> Well, I mean, if you don't do shifting, you lose one bit of range per
> multiply.  The libvorbis mdct is 10 (or is it 20?) stages, so you need to
> be careful not to lose too many bits.

Yes, you have to shift, that's not what I meant.  I meant the shift is
understood and need not be computed each time; it's always the same
and you don't need to worry about preserving maximum possible
precision each time.

Monty

--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'vorbis-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.



More information about the Vorbis-dev mailing list