public inbox for gcc-help@gcc.gnu.org
 help / color / mirror / Atom feed
* workaround for "error: more than 30 operands in 'asm'"?
@ 2008-03-12 23:25 Clem Taylor
  2008-03-13  5:56 ` Ian Lance Taylor
  0 siblings, 1 reply; 9+ messages in thread
From: Clem Taylor @ 2008-03-12 23:25 UTC (permalink / raw)
  To: gcc-help

Hi,

I'm working on taking PowerPC VMX code that uses altivec intrinsics
and rescheduling it with inline assembly. gcc is making some fairly
bad scheduling choices in with the code, resulting in code that is
running 4x slower then I was hoping for. I have a simplified version
working, but with the real version gcc is failing with: "error: more
than 30 operands in 'asm'". The code is using 28 vector registers and
6 serial registers.

The code is a mixture of setup code in C and only the inner loop is in
assembly, so it wouldn't be convenient to write this directly in
assembly. Also, because the code is highly pipelined (to overcome the
latency of the VMX floating point unit) it is a mess to split this up
into multiple asm() statements. Beyond recompiling gcc with a larger
operand count, is there a workaround for this problem?

I'm using gcc 4.2.2 and gas 2.18.

                                 Thanks,
                                 Clem

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2008-03-14 15:13 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-03-12 23:25 workaround for "error: more than 30 operands in 'asm'"? Clem Taylor
2008-03-13  5:56 ` Ian Lance Taylor
2008-03-13  9:45   ` Andrew Haley
2008-03-13 16:54     ` Ian Lance Taylor
2008-03-14 10:11       ` Andrew Haley
2008-03-14 10:22         ` Segher Boessenkool
2008-03-14 15:13           ` Ian Lance Taylor
2008-03-14 14:10         ` Ian Lance Taylor
2008-03-14  1:10   ` Clem Taylor

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).