public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* pa8000 fmpyfadd instruction help?
@ 1999-03-16 10:43 Jerry Quinn
       [not found] ` < 36EEA621.B5679AED@americasm01.nt.com >
  1999-03-31 23:46 ` Jerry Quinn
  0 siblings, 2 replies; 6+ messages in thread
From: Jerry Quinn @ 1999-03-16 10:43 UTC (permalink / raw)
  To: egcs

Hi all.  Having put in place a minimal pa8000 schedule option (see
egcs-patches), I thought I'd try my hand at adding the fused multiply
accumulate instructions.  The first step is geting gas to recognize and
assemble them.

So far, I've added recognition of the .LEVEL 2.0 directive (although I
don't know how to tell if the obj file is correct), and I've added the
instruction to the list of hppa opcodes.  The problem I have at the
moment is that I can't tell how the bits for the addend are supposed to
be placed.  Unlike any other instruction, the addend register is split
into two sets of 3 bits, which makes it non-obvious where the L/R
selector is supposed to go.  I have the pa-risc 2.0 architecture book,
but it seems to be missing this little tidbit.

I'd guess that it goes in the lsb, similar to the other input operands,
but it's only a guess.

I may be in over my head, but I think the extrapolation approach will
work for this stuff.

If I get this working, I'll also add the FNEG and FNEGABS instructions.

-- 
Jerry Quinn                             Tel: (514) 761-8737
jquinn@nortelnetworks.com               Fax: (514) 761-8505
Speech Recognition Research

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

* Re: pa8000 fmpyfadd instruction help?
       [not found] ` < 36EEA621.B5679AED@americasm01.nt.com >
@ 1999-03-17 19:43   ` Jeffrey A Law
  1999-03-18 14:49     ` Jerry Quinn
  1999-03-31 23:46     ` Jeffrey A Law
  0 siblings, 2 replies; 6+ messages in thread
From: Jeffrey A Law @ 1999-03-17 19:43 UTC (permalink / raw)
  To: Jerry Quinn; +Cc: egcs

  In message < 36EEA621.B5679AED@americasm01.nt.com >you write:
  > Hi all.  Having put in place a minimal pa8000 schedule option (see
  > egcs-patches), I thought I'd try my hand at adding the fused multiply
  > accumulate instructions.  The first step is geting gas to recognize and
  > assemble them.
Please don't start down this road without assembler support.  It's not
very useful to add this stuff if you can't assemble the instruction.

I'd prefer to see us disable fmpyadd/fmpysub when optimizing for the
PA8000 class machines.  See pa_reorg.

Also note, you're probably going to need an assignment if you do much
more work on the PA port.

jeff

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

* Re: pa8000 fmpyfadd instruction help?
  1999-03-17 19:43   ` Jeffrey A Law
@ 1999-03-18 14:49     ` Jerry Quinn
  1999-03-31 23:46       ` Jerry Quinn
  1999-03-31 23:46     ` Jeffrey A Law
  1 sibling, 1 reply; 6+ messages in thread
From: Jerry Quinn @ 1999-03-18 14:49 UTC (permalink / raw)
  To: law; +Cc: egcs

Jeffrey A Law wrote:
> 
>   In message < 36EEA621.B5679AED@americasm01.nt.com >you write:
>   > Hi all.  Having put in place a minimal pa8000 schedule option (see
>   > egcs-patches), I thought I'd try my hand at adding the fused multiply
>   > accumulate instructions.  The first step is getting gas to recognize and
>   > assemble them.
> Please don't start down this road without assembler support.  It's not
> very useful to add this stuff if you can't assemble the instruction.
> 
> I'd prefer to see us disable fmpyadd/fmpysub when optimizing for the
> PA8000 class machines.  See pa_reorg.

I've added some support to gas for fmpyfadd, fmpynfadd, fneg, and
fnegabs.  My copy will generate object files with these instructions,
but I don't yet know how to make it label the object files as 2.0.  I
submitted a patch to egcs-patches.

Today, I got egcs to output the fmpyfadd and saw a nice little speedup
where I was hoping in our code.  I also disabled pa_combine_instructions
for pa8000 in my version as you suggested.
 
> Also note, you're probably going to need an assignment if you do much
> more work on the PA port.

I just received my copy of the assignments for gcc and binutils back
today from FSF, so everything should be ok.

Jerry

-- 
Jerry Quinn                             Tel: (514) 761-8737
jquinn@nortelnetworks.com               Fax: (514) 761-8505
Speech Recognition Research

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

* pa8000 fmpyfadd instruction help?
  1999-03-16 10:43 pa8000 fmpyfadd instruction help? Jerry Quinn
       [not found] ` < 36EEA621.B5679AED@americasm01.nt.com >
@ 1999-03-31 23:46 ` Jerry Quinn
  1 sibling, 0 replies; 6+ messages in thread
From: Jerry Quinn @ 1999-03-31 23:46 UTC (permalink / raw)
  To: egcs

Hi all.  Having put in place a minimal pa8000 schedule option (see
egcs-patches), I thought I'd try my hand at adding the fused multiply
accumulate instructions.  The first step is geting gas to recognize and
assemble them.

So far, I've added recognition of the .LEVEL 2.0 directive (although I
don't know how to tell if the obj file is correct), and I've added the
instruction to the list of hppa opcodes.  The problem I have at the
moment is that I can't tell how the bits for the addend are supposed to
be placed.  Unlike any other instruction, the addend register is split
into two sets of 3 bits, which makes it non-obvious where the L/R
selector is supposed to go.  I have the pa-risc 2.0 architecture book,
but it seems to be missing this little tidbit.

I'd guess that it goes in the lsb, similar to the other input operands,
but it's only a guess.

I may be in over my head, but I think the extrapolation approach will
work for this stuff.

If I get this working, I'll also add the FNEG and FNEGABS instructions.

-- 
Jerry Quinn                             Tel: (514) 761-8737
jquinn@nortelnetworks.com               Fax: (514) 761-8505
Speech Recognition Research

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

* Re: pa8000 fmpyfadd instruction help?
  1999-03-18 14:49     ` Jerry Quinn
@ 1999-03-31 23:46       ` Jerry Quinn
  0 siblings, 0 replies; 6+ messages in thread
From: Jerry Quinn @ 1999-03-31 23:46 UTC (permalink / raw)
  To: law; +Cc: egcs

Jeffrey A Law wrote:
> 
>   In message < 36EEA621.B5679AED@americasm01.nt.com >you write:
>   > Hi all.  Having put in place a minimal pa8000 schedule option (see
>   > egcs-patches), I thought I'd try my hand at adding the fused multiply
>   > accumulate instructions.  The first step is getting gas to recognize and
>   > assemble them.
> Please don't start down this road without assembler support.  It's not
> very useful to add this stuff if you can't assemble the instruction.
> 
> I'd prefer to see us disable fmpyadd/fmpysub when optimizing for the
> PA8000 class machines.  See pa_reorg.

I've added some support to gas for fmpyfadd, fmpynfadd, fneg, and
fnegabs.  My copy will generate object files with these instructions,
but I don't yet know how to make it label the object files as 2.0.  I
submitted a patch to egcs-patches.

Today, I got egcs to output the fmpyfadd and saw a nice little speedup
where I was hoping in our code.  I also disabled pa_combine_instructions
for pa8000 in my version as you suggested.
 
> Also note, you're probably going to need an assignment if you do much
> more work on the PA port.

I just received my copy of the assignments for gcc and binutils back
today from FSF, so everything should be ok.

Jerry

-- 
Jerry Quinn                             Tel: (514) 761-8737
jquinn@nortelnetworks.com               Fax: (514) 761-8505
Speech Recognition Research

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

* Re: pa8000 fmpyfadd instruction help?
  1999-03-17 19:43   ` Jeffrey A Law
  1999-03-18 14:49     ` Jerry Quinn
@ 1999-03-31 23:46     ` Jeffrey A Law
  1 sibling, 0 replies; 6+ messages in thread
From: Jeffrey A Law @ 1999-03-31 23:46 UTC (permalink / raw)
  To: Jerry Quinn; +Cc: egcs

  In message < 36EEA621.B5679AED@americasm01.nt.com >you write:
  > Hi all.  Having put in place a minimal pa8000 schedule option (see
  > egcs-patches), I thought I'd try my hand at adding the fused multiply
  > accumulate instructions.  The first step is geting gas to recognize and
  > assemble them.
Please don't start down this road without assembler support.  It's not
very useful to add this stuff if you can't assemble the instruction.

I'd prefer to see us disable fmpyadd/fmpysub when optimizing for the
PA8000 class machines.  See pa_reorg.

Also note, you're probably going to need an assignment if you do much
more work on the PA port.

jeff

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

end of thread, other threads:[~1999-03-31 23:46 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1999-03-16 10:43 pa8000 fmpyfadd instruction help? Jerry Quinn
     [not found] ` < 36EEA621.B5679AED@americasm01.nt.com >
1999-03-17 19:43   ` Jeffrey A Law
1999-03-18 14:49     ` Jerry Quinn
1999-03-31 23:46       ` Jerry Quinn
1999-03-31 23:46     ` Jeffrey A Law
1999-03-31 23:46 ` Jerry Quinn

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).