From: Peter Gavin Date: Fri, 8 Dec 2017 20:57:25 +0000 (+0900) Subject: sim: cgen: add MUL2OFSI and MUL1OFSI functions (needed for OR1K l.mul[u]) X-Git-Tag: users/hjl/linux/release/2.29.51.0.1^2~5^2~23 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=58884b0e451043ed2fb4d2fba18134f0fb451ce5;p=thirdparty%2Fbinutils-gdb.git sim: cgen: add MUL2OFSI and MUL1OFSI functions (needed for OR1K l.mul[u]) sim/common/ChangeLog: 2017-12-12 Peter Gavin Stafford Horne * cgen-ops.h (MUL2OFSI): New function, 2's complement overflow flag. (MUL1OFSI): New function, 1's complement overflow flag. --- diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog index 091ca429298..313a467c36e 100644 --- a/sim/common/ChangeLog +++ b/sim/common/ChangeLog @@ -1,3 +1,10 @@ +2017-12-12 Peter Gavin + Stafford Horne + + * cgen-ops.h (MUL2OFSI): New function, 2's complement overflow + flag. + (MUL1OFSI): New function, 1's complement overflow flag. + 2017-12-12 Peter Gavin Stafford Horne diff --git a/sim/common/cgen-ops.h b/sim/common/cgen-ops.h index 97585d7943d..0fa327630c4 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)); + 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