[v5,2/6] sim: cgen: add MUL2OFSI and MUL1OFSI macros (needed for OR1K l.mul[u])
Commit Message
From: Peter Gavin <pgavin@gmail.com>
sim/common/ChangeLog:
2012-03-14 Peter Gavin <pgavin@gmail.com>
* cgen-ops.h (MUL2OFSI): New macro, 1's complement overflow.
(MUL1OFSI): New macro, 2's complement overflow.
---
sim/common/cgen-ops.h | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
Comments
On 2017-10-05 09:49 AM, Stafford Horne wrote:
> From: Peter Gavin <pgavin@gmail.com>
>
> sim/common/ChangeLog:
>
> 2012-03-14 Peter Gavin <pgavin@gmail.com>
>
> * cgen-ops.h (MUL2OFSI): New macro, 1's complement overflow.
> (MUL1OFSI): New macro, 2's complement overflow.
Macro? Aren't they functions?
> ---
> sim/common/cgen-ops.h | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/sim/common/cgen-ops.h b/sim/common/cgen-ops.h
> index 97585d7943..ffbdf3fd6e 100644
> --- a/sim/common/cgen-ops.h
> +++ b/sim/common/cgen-ops.h
> @@ -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));
Add spaces before the parentheses.
> + BI res = tmp < -0x80000000LL || tmp > 0x7fffffffLL;
> + return res;
> +}
> +
> +SEMOPS_INLINE BI
> +MUL1OFSI (USI a, USI b)
> +{
> + UDI tmp = MULDI (ZEXTSIDI(a), ZEXTSIDI(b));
Here too.
Otherwise, this patch makes sense to me.
Simon
On Sat, Oct 07, 2017 at 12:00:55PM -0400, Simon Marchi wrote:
> On 2017-10-05 09:49 AM, Stafford Horne wrote:
> > From: Peter Gavin <pgavin@gmail.com>
> >
> > sim/common/ChangeLog:
> >
> > 2012-03-14 Peter Gavin <pgavin@gmail.com>
> >
> > * cgen-ops.h (MUL2OFSI): New macro, 1's complement overflow.
> > (MUL1OFSI): New macro, 2's complement overflow.
>
> Macro? Aren't they functions?
Yes, I am not sure where macro came from. Maybe I added that, maybe it was
there before.
> > ---
> > sim/common/cgen-ops.h | 18 ++++++++++++++++++
> > 1 file changed, 18 insertions(+)
> >
> > diff --git a/sim/common/cgen-ops.h b/sim/common/cgen-ops.h
> > index 97585d7943..ffbdf3fd6e 100644
> > --- a/sim/common/cgen-ops.h
> > +++ b/sim/common/cgen-ops.h
> > @@ -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));
>
> Add spaces before the parentheses.
Right, fixed.
> > + BI res = tmp < -0x80000000LL || tmp > 0x7fffffffLL;
> > + return res;
> > +}
> > +
> > +SEMOPS_INLINE BI
> > +MUL1OFSI (USI a, USI b)
> > +{
> > + UDI tmp = MULDI (ZEXTSIDI(a), ZEXTSIDI(b));
>
> Here too.
>
> Otherwise, this patch makes sense to me.
>
> Simon
Thank You
-Stafford
@@ -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