sim: cgen: add MUL2OFSI and MUL1OFSI functions (needed for OR1K l.mul[u])

sim/common/ChangeLog:

2017-12-12  Peter Gavin  <pgavin@gmail.com>
	    Stafford Horne  <shorne@gmail.com>

	* cgen-ops.h (MUL2OFSI): New function, 2's complement overflow
	flag.
	(MUL1OFSI): New function, 1's complement overflow flag.
This commit is contained in:
Peter Gavin 2017-12-09 05:57:25 +09:00 committed by Stafford Horne
parent 07b95864f3
commit 58884b0e45
2 changed files with 25 additions and 0 deletions

View File

@ -1,3 +1,10 @@
2017-12-12 Peter Gavin <pgavin@gmail.com>
Stafford Horne <shorne@gmail.com>
* cgen-ops.h (MUL2OFSI): New function, 2's complement overflow
flag.
(MUL1OFSI): New function, 1's complement overflow flag.
2017-12-12 Peter Gavin <pgavin@gmail.com>
Stafford Horne <shorne@gmail.com>

View File

@ -631,6 +631,22 @@ SUBOFQI (QI a, QI b, BI c)
return res;
}
SEMOPS_INLINE BI
MUL2OFSI (SI a, SI b)
{
DI tmp = MULDI (EXTSIDI (a), EXTSIDI (b));
BI res = tmp < -0x80000000LL || tmp > 0x7fffffffLL;
return res;
}
SEMOPS_INLINE BI
MUL1OFSI (USI a, USI b)
{
UDI tmp = MULDI (ZEXTSIDI (a), ZEXTSIDI (b));
BI res = (tmp > 0xFFFFFFFFULL);
return res;
}
#else
SI ADDCSI (SI, SI, BI);
@ -651,6 +667,8 @@ UBI ADDOFQI (QI, QI, BI);
QI SUBCQI (QI, QI, BI);
UBI SUBCFQI (QI, QI, BI);
UBI SUBOFQI (QI, QI, BI);
BI MUL1OFSI (SI a, SI b);
BI MUL2OFSI (SI a, SI b);
#endif