[Flac-dev] A couple of points about flac 1.1.1 on ppc/linux/altivec

Josh Coalson xflac at yahoo.com
Sat Jan 29 11:24:25 PST 2005


--- Brady Patterson <brady at spaceship.com> wrote:
> On Thu, 27 Jan 2005, John Steele Scott wrote:
> > That looks fine to me as well. However, the best solution is
> something which
> > Luca suggested a few months ago, which is to use the functions
> defined in
> > altivec.h. These are C functions which map directly to Altivec
> machine
> > instructions. I am willing to help out, but I don't find the
> current lpc_asm.s
> > very easy to follow, and my time is quite limited (my last patch to
> a free
> > software project took almost three months to get into decent
> shape!).
> 
> Is this still my code? IIRC I commented it extensively, but the
> structure is
> certainly non-intuitive.

I think this was about the rewritten-for-gas-2.x version of
your code.  your original routine is still as is and is what
I use to build on my ibook.

> I'll take a look at it. At the time, I thought I wanted control logic
> that was
> impossible in C, but that may not be the case.

actually I think you're right, there are times when you want/
need everything to be in assembler for the best performance.
also, the altivec.h stuff will work only with gcc I think,
so the portability problem just shifts somewhere else.  but
it does look useful when you just want to inline parts of a
function.

> It didn't occur to me
> that Linux
> and Apple would use different assemblers; elsewhere Apple uses the
> GNU tools.

when I looked back at what's on my ibook (OS X 10.1), as -v gives:

Apple Computer, Inc. version cctools-384.obj~11, GNU assembler version
1.38

so I am kind of losing hope that any simple configure test is
going to get it right.  it is GNU assembler (old) but also from
apple's developer docs that came with it, they have tweaked it
a lot (but funny, there are no sources for it, even though the
docs give a path to them).

since it is going to take me a while to sort this out, and since
we need to get a release out to fix the sonames problem, I have
disabled PPC asm functions for now and will get back to it after
the release.  the static binaries I make for the darwin binary
release will have them though, because it's easy for me to
compile the right one.

> I'm also a bit surprised that people are using flac on an Altivecful
> Linux/PPC
> system (but I did attempt for such a system to fall back to the
> non-altivec C
> code). End digression.

I think all of that works, it's just the different assembler
syntaxes causing problems.

> Can you point me to a good reference on altivec.h?

http://developer.apple.com/documentation/DeveloperTools/gcc-3.3/gcc/PowerPC-AltiVec-Built-in-Functions.html

although this is significantly newer than the docs that came
with my version of OS X

Josh


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 


More information about the Flac-dev mailing list