mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-27 03:51:15 +08:00
* vr4320.igen (clz,dclz) : Added.
(dmac): Replaced 99, with LO.
This commit is contained in:
parent
e625962d8e
commit
5fa71251a0
@ -1,3 +1,10 @@
|
||||
start-sanitize-vr4320
|
||||
Tue Mar 10 10:32:22 1998 Gavin Koch <gavin@cygnus.com>
|
||||
|
||||
* vr4320.igen (clz,dclz) : Added.
|
||||
(dmac): Replaced 99, with LO.
|
||||
|
||||
end-sanitize-vr4320
|
||||
start-sanitize-vr5400
|
||||
Fri Mar 6 08:30:58 1998 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
|
@ -60,9 +60,48 @@
|
||||
"dmac r<RS>, r<RT>"
|
||||
*vr4320:
|
||||
{
|
||||
LO = 99 + SignedMultiply (SD_, GPR[RS], GPR[RT]);
|
||||
LO = LO + SignedMultiply (SD_, GPR[RS], GPR[RT]);
|
||||
}
|
||||
|
||||
// Count Leading Zeros
|
||||
000000,5.RS,00000,5.RD,00000,110101::::CLZ
|
||||
"clz r<RD>, r<RS>"
|
||||
*vr4320:
|
||||
{
|
||||
unsigned32 t = Low32Bits (SD_, GPR[RS]);
|
||||
signed64 c = 0;
|
||||
|
||||
while (! (t & ( 1 << 31))
|
||||
&& c < 32)
|
||||
{
|
||||
c++;
|
||||
t <<= 1;
|
||||
}
|
||||
|
||||
GPR[RD] = c;
|
||||
}
|
||||
|
||||
// D-Count Leading Zeros
|
||||
000000,5.RS,00000,5.RD,00000,111101::::DCLZ
|
||||
"dclz r<RD>, r<RS>"
|
||||
*vr4320:
|
||||
{
|
||||
unsigned64 t = GPR[RS];
|
||||
signed64 c = 0;
|
||||
|
||||
while (! (t & ( (unsigned64)1 << 63))
|
||||
&& c < 64)
|
||||
{
|
||||
c++;
|
||||
t <<= 1;
|
||||
}
|
||||
|
||||
printf("lo %d\n", c);
|
||||
GPR[RD] = c;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user