| To: | "J. Scott Kasten" <jsk@tetracon-eng.net> |
|---|---|
| Subject: | Re: Indy 64 or 32 bit? |
| From: | Ralf Baechle <ralf@oss.sgi.com> |
| Date: | Thu, 9 Aug 2001 14:08:00 +0200 |
| Cc: | Thiemo Seufer <ica2_ts@csv.ica.uni-stuttgart.de>, "linux-mips@oss.sgi.com" <linux-mips@oss.sgi.com> |
| In-reply-to: | <Pine.SGI.4.33.0108081550070.24737-100000@thor.tetracon-eng.net>; from jsk@tetracon-eng.net on Wed, Aug 08, 2001 at 04:12:39PM -0400 |
| References: | <20010808174142.F4452@rembrandt.csv.ica.uni-stuttgart.de> <Pine.SGI.4.33.0108081550070.24737-100000@thor.tetracon-eng.net> |
| Sender: | owner-linux-mips@oss.sgi.com |
| User-agent: | Mutt/1.2.5i |
On Wed, Aug 08, 2001 at 04:12:39PM -0400, J. Scott Kasten wrote:
> 100012b0: ffc20028 sd $v0,40($s8)
> 100012b4: dfc20028 ld $v0,40($s8)
> 100012b8: 3c030807 lui $v1,0x807
> 100012bc: 34630605 ori $v1,$v1,0x605
> 100012c0: 00031c38 dsll $v1,$v1,0x10
> 100012c4: 34630403 ori $v1,$v1,0x403
> 100012c8: 00031c38 dsll $v1,$v1,0x10
> 100012cc: 34630201 ori $v1,$v1,0x201
> 100012d0: fc430000 sd $v1,0($v0)
> 100012d4: dfc20020 ld $v0,32($s8)
> 100012d8: 64430001 daddiu $v1,$v0,1
> 100012dc: ffc30020 sd $v1,32($s8)
> 100012e0: dfc20028 ld $v0,40($s8)
>
> Ouch that's a painfull load. It's interesting that in both cases, it
> effectively makes the constant load a 16 bit operation, does the math 64
> bit, and stores 64 bit.
With GP optimization something like the following would have been created:
dla $gp, _gp + $8000
ld $reg1, %gprel(var)($gp)
daddiu $reg1, $reg1, 1
sd $reg1, %gprel(var)($gp)
_gp:
var: .word 0
Gas is lame. MIPS/ELF gas is more.
Ralf
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | RM5231A Cause Register Values, Phil Thompson |
|---|---|
| Next by Date: | Re: RM5231A Cause Register Values, Kevin D. Kissell |
| Previous by Thread: | Re: Indy 64 or 32 bit?, Thiemo Seufer |
| Next by Thread: | MIPS-INDIGO2-KERNEL BUG, Salisbury, Roger |
| Indexes: | [Date] [Thread] [Top] [All Lists] |