From: Ralf Baechle <ralf@linux-mips.org>
To: Mikael Starvik <mikael.starvik@axis.com>
Cc: linux-mips@linux-mips.org
Subject: Re: GCC 3.4.5 and mftc0
Date: Fri, 14 Dec 2007 16:26:29 +0000 [thread overview]
Message-ID: <20071214162629.GC30137@linux-mips.org> (raw)
In-Reply-To: <BFECAF9E178F144FAEF2BF4CE739C6680557B0DB@exmail1.se.axis.com>
On Fri, Dec 14, 2007 at 10:49:40AM +0100, Mikael Starvik wrote:
> mftc0() is implemented as
>
> .word ...
> move %0, $1
>
> With at least gcc 3.4.5 the move is implemented as an addu %0, $1, $0.
> But in the MIPS sumulator this fails and %0 gets the value 0xffffffff.
> Implementing this as a or %0, $1, $0 instead gives the expected result.
I wonder what "sumulator" you're using ...
Addu is a perfectly fine implementation of move for 32-bit code. It's not
for 64-bit code but that's beside the point here. The or method is also
correct but historically the add instruction has been prefered, also
because some processor - the R4300 afair - processes arithmetic instructions
(add, sub that is not mul / div) faster than logic operations.
> Any suggestions where the problem is and what the correct solution is?
Fix the sumulator.
> After fixing this my next problem is that IPIs doesn't reach all TCs
> correctly (it seams like the code doesn't detect IXMT status correctly,
> but I am still investigating). It is likely that it is caused by
> something similar to the problem above.
The code certainly works on real silicon, so the cause must be something
local to your environment.
Cheers,
Ralf
next prev parent reply other threads:[~2007-12-14 16:26 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-12-14 9:49 GCC 3.4.5 and mftc0 Mikael Starvik
2007-12-14 9:49 ` Mikael Starvik
2007-12-14 16:26 ` Ralf Baechle [this message]
[not found] <BFECAF9E178F144FAEF2BF4CE739C668056FE63A@exmail1.se.axis.com>
2007-12-17 6:45 ` Mikael Starvik
2007-12-17 6:45 ` Mikael Starvik
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=20071214162629.GC30137@linux-mips.org \
--to=ralf@linux-mips.org \
--cc=linux-mips@linux-mips.org \
--cc=mikael.starvik@axis.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