Linux MIPS Architecture development
 help / color / mirror / Atom feed
From: "Kevin D. Kissell" <kevink@mips.com>
To: "Carsten Langgaard" <carstenl@mips.com>,
	"Zajerko-McKee, Nick" <nmckee@telogy.com>
Cc: "Linux-Mips \(E-mail\)" <linux-mips@oss.sgi.com>
Subject: Re: GAS 4kc question...
Date: Wed, 31 Jul 2002 09:04:17 +0200	[thread overview]
Message-ID: <004201c23860$85425d10$10eca8c0@grendel> (raw)
In-Reply-To: 3D477DC3.6C304839@mips.com

To try to reconcile some seemingly contradictory responses,
the multiply-accumulate and the 3-operand, or "targeted" multiply 
instruction were first supported by the IDT R4650 as a superset 
of the MIPS III ISA.  As they proved useful and popular, they
were later integrated into the MIPS32 ISA spec.  Prior to MIPS32
standardizing things, there were several variations on the multiply-accumulate
instruction mnemonics (madd, mac, etc.) and even some variants
on the encoding.  MIPS32 adopted "madd" as the standard
mnemonic, and uses the same encoding as the R4650.  I'm 
not sure what you mean by "mulu".  The origininal MIPS mnemonic
for a 2-operand multiply is "mult", and it has an unsigned counterpart
"multu".  The 3-operand multiply was standardized with the mnemonic
"mul". If an "unsigned" version of that instruction existed, it would be 
"mulu", but no such version  exists, and it's not clear to me that it would
make any sense, given that the definition of the targeted multiply is that 
the specified target GPR gets the *least significant* 32 bits of the product.

As Carsten indicates, "madd" and "mul" are enabled by -mips32
in newer assemblers, but it is also true that -m4650 will cause them
to be assembled correctly in older assemblers.  I have run madd code
generated with the 4650 option successfully on a MIPS 4Kc.

            Regards,

            Kevin K.

----- Original Message ----- 
From: "Carsten Langgaard" <carstenl@mips.com>
To: "Zajerko-McKee, Nick" <nmckee@telogy.com>
Cc: "Linux-Mips (E-mail)" <linux-mips@oss.sgi.com>
Sent: Wednesday, July 31, 2002 8:03 AM
Subject: Re: GAS 4kc question...


> I guess you mean madd and mul (not mulu).
> These instructions are MIPS32 instructions and are most likely not recognized
> by your toolchain.
> Try use the compiler option "-mips32" to verify it.
> So for now I'm afraid you need to hardcode these by hand. We are very close to
> release a MIPS32 compiler, so we don't need these hacks in the future.
> 
> /Carsten
> 
> "Zajerko-McKee, Nick" wrote:
> 
> > Hi,
> >
> > I'm trying to write some inline assembler code that needs the madd and mulu
> > op codes found on the 4KC processor.  I've tried setting the cpu to 4650,
> > but it failed to recognize the mulu instruction.  Can someone give me the
> > magic incantation?  I'm running right now GCC 2.95.3 from Montavista.  I
> > guess one way I can attack it for now is to build the op code by hand, but
> > that is quite dirty, IMHO...
> >
> >   ------------------------------------------------------------------------
> >
> >    Nick Zajerko-McKee.vcfName: Nick Zajerko-McKee.vcf
> >                          Type: VCard (text/x-vcard)
> 
> --
> _    _ ____  ___   Carsten Langgaard   Mailto:carstenl@mips.com
> |\  /|||___)(___   MIPS Denmark        Direct: +45 4486 5527
> | \/ |||    ____)  Lautrupvang 4B      Switch: +45 4486 5555
>   TECHNOLOGIES     2750 Ballerup       Fax...: +45 4486 5556
>                    Denmark             http://www.mips.com
> 
> 
> 
> 

WARNING: multiple messages have this Message-ID (diff)
From: "Kevin D. Kissell" <kevink@mips.com>
To: Carsten Langgaard <carstenl@mips.com>,
	"Zajerko-McKee, Nick" <nmckee@telogy.com>
Cc: "Linux-Mips (E-mail)" <linux-mips@oss.sgi.com>
Subject: Re: GAS 4kc question...
Date: Wed, 31 Jul 2002 09:04:17 +0200	[thread overview]
Message-ID: <004201c23860$85425d10$10eca8c0@grendel> (raw)
Message-ID: <20020731070417.z3YoxzAcKzLKaxwy_ipjXq8eXro4ZHCqJuXxE6-OUmc@z> (raw)
In-Reply-To: 3D477DC3.6C304839@mips.com

To try to reconcile some seemingly contradictory responses,
the multiply-accumulate and the 3-operand, or "targeted" multiply 
instruction were first supported by the IDT R4650 as a superset 
of the MIPS III ISA.  As they proved useful and popular, they
were later integrated into the MIPS32 ISA spec.  Prior to MIPS32
standardizing things, there were several variations on the multiply-accumulate
instruction mnemonics (madd, mac, etc.) and even some variants
on the encoding.  MIPS32 adopted "madd" as the standard
mnemonic, and uses the same encoding as the R4650.  I'm 
not sure what you mean by "mulu".  The origininal MIPS mnemonic
for a 2-operand multiply is "mult", and it has an unsigned counterpart
"multu".  The 3-operand multiply was standardized with the mnemonic
"mul". If an "unsigned" version of that instruction existed, it would be 
"mulu", but no such version  exists, and it's not clear to me that it would
make any sense, given that the definition of the targeted multiply is that 
the specified target GPR gets the *least significant* 32 bits of the product.

As Carsten indicates, "madd" and "mul" are enabled by -mips32
in newer assemblers, but it is also true that -m4650 will cause them
to be assembled correctly in older assemblers.  I have run madd code
generated with the 4650 option successfully on a MIPS 4Kc.

            Regards,

            Kevin K.

----- Original Message ----- 
From: "Carsten Langgaard" <carstenl@mips.com>
To: "Zajerko-McKee, Nick" <nmckee@telogy.com>
Cc: "Linux-Mips (E-mail)" <linux-mips@oss.sgi.com>
Sent: Wednesday, July 31, 2002 8:03 AM
Subject: Re: GAS 4kc question...


> I guess you mean madd and mul (not mulu).
> These instructions are MIPS32 instructions and are most likely not recognized
> by your toolchain.
> Try use the compiler option "-mips32" to verify it.
> So for now I'm afraid you need to hardcode these by hand. We are very close to
> release a MIPS32 compiler, so we don't need these hacks in the future.
> 
> /Carsten
> 
> "Zajerko-McKee, Nick" wrote:
> 
> > Hi,
> >
> > I'm trying to write some inline assembler code that needs the madd and mulu
> > op codes found on the 4KC processor.  I've tried setting the cpu to 4650,
> > but it failed to recognize the mulu instruction.  Can someone give me the
> > magic incantation?  I'm running right now GCC 2.95.3 from Montavista.  I
> > guess one way I can attack it for now is to build the op code by hand, but
> > that is quite dirty, IMHO...
> >
> >   ------------------------------------------------------------------------
> >
> >    Nick Zajerko-McKee.vcfName: Nick Zajerko-McKee.vcf
> >                          Type: VCard (text/x-vcard)
> 
> --
> _    _ ____  ___   Carsten Langgaard   Mailto:carstenl@mips.com
> |\  /|||___)(___   MIPS Denmark        Direct: +45 4486 5527
> | \/ |||    ____)  Lautrupvang 4B      Switch: +45 4486 5555
>   TECHNOLOGIES     2750 Ballerup       Fax...: +45 4486 5556
>                    Denmark             http://www.mips.com
> 
> 
> 
> 

  reply	other threads:[~2002-07-31  7:02 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-07-30 22:28 GAS 4kc question Zajerko-McKee, Nick
2002-07-30 23:08 ` Thiemo Seufer
2002-07-31  0:31 ` Ralf Baechle
2002-07-31  6:03 ` Carsten Langgaard
2002-07-31  7:04   ` Kevin D. Kissell [this message]
2002-07-31  7:04     ` Kevin D. Kissell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='004201c23860$85425d10$10eca8c0@grendel' \
    --to=kevink@mips.com \
    --cc=carstenl@mips.com \
    --cc=linux-mips@oss.sgi.com \
    --cc=nmckee@telogy.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox