[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