diff options
Diffstat (limited to 'src/arch/arm/isa/insts/neon64.isa')
-rw-r--r-- | src/arch/arm/isa/insts/neon64.isa | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/arch/arm/isa/insts/neon64.isa b/src/arch/arm/isa/insts/neon64.isa index 697ea80e2..7c9040be3 100644 --- a/src/arch/arm/isa/insts/neon64.isa +++ b/src/arch/arm/isa/insts/neon64.isa @@ -2006,7 +2006,7 @@ let {{ # SQABS sqabsCode = ''' FPSCR fpscr = (FPSCR) FpscrQc; - if (srcElem1 == (Element)((Element)1 << (sizeof(Element) * 8 - 1))) { + if (srcElem1 == (Element)(std::numeric_limits<Element>::min())) { fpscr.qc = 1; destElem = ~srcElem1; } else if (srcElem1 < 0) { @@ -2030,7 +2030,7 @@ let {{ bool negSrc1 = (srcElem1 < 0); bool negSrc2 = (srcElem2 < 0); if ((negDest != negSrc1) && (negSrc1 == negSrc2)) { - destElem = (Element)1 << (sizeof(Element) * 8 - 1); + destElem = std::numeric_limits<Element>::min(); if (negDest) destElem -= 1; fpscr.qc = 1; @@ -2047,7 +2047,7 @@ let {{ qdmlalCode = ''' FPSCR fpscr = (FPSCR) FpscrQc; BigElement midElem = (2 * (int64_t)srcElem1 * (int64_t)srcElem2); - Element maxNeg = (Element)1 << (sizeof(Element) * 8 - 1); + Element maxNeg = std::numeric_limits<Element>::min(); Element halfNeg = maxNeg / 2; if ((srcElem1 == maxNeg && srcElem2 == maxNeg) || (srcElem1 == halfNeg && srcElem2 == maxNeg) || @@ -2086,7 +2086,7 @@ let {{ qdmlslCode = ''' FPSCR fpscr = (FPSCR) FpscrQc; BigElement midElem = (2 * (int64_t)srcElem1 * (int64_t)srcElem2); - Element maxNeg = (Element)1 << (sizeof(Element) * 8 - 1); + Element maxNeg = std::numeric_limits<Element>::min(); Element halfNeg = maxNeg / 2; if ((srcElem1 == maxNeg && srcElem2 == maxNeg) || (srcElem1 == halfNeg && srcElem2 == maxNeg) || @@ -2178,7 +2178,7 @@ let {{ # SQNEG sqnegCode = ''' FPSCR fpscr = (FPSCR) FpscrQc; - if (srcElem1 == (Element)((Element)1 << (sizeof(Element) * 8 - 1))) { + if (srcElem1 == (Element)(std::numeric_limits<Element>::min())) { fpscr.qc = 1; destElem = ~srcElem1; } else { @@ -2198,7 +2198,7 @@ let {{ destElem = (2 * (int64_t)srcElem1 * (int64_t)srcElem2 + ((int64_t)1 << (sizeof(Element) * 8 - 1))) >> (sizeof(Element) * 8); - Element maxNeg = (Element)1 << (sizeof(Element) * 8 - 1); + Element maxNeg = std::numeric_limits<Element>::min(); Element halfNeg = maxNeg / 2; if ((srcElem1 == maxNeg && srcElem2 == maxNeg) || (srcElem1 == halfNeg && srcElem2 == maxNeg) || @@ -2206,7 +2206,7 @@ let {{ if (destElem < 0) { destElem = mask(sizeof(Element) * 8 - 1); } else { - destElem = (Element)1 << (sizeof(Element) * 8 - 1); + destElem = std::numeric_limits<Element>::min(); } fpscr.qc = 1; } @@ -2368,7 +2368,7 @@ let {{ FPSCR fpscr = (FPSCR) FpscrQc; if (imm >= sizeof(Element) * 8) { if (srcElem1 != 0) { - destElem = (Element)1 << (sizeof(Element) * 8 - 1); + destElem = std::numeric_limits<Element>::min(); if (srcElem1 > 0) destElem = ~destElem; fpscr.qc = 1; @@ -2381,7 +2381,7 @@ let {{ sizeof(Element) * 8 - 1, sizeof(Element) * 8 - 1 - imm); if (topBits != 0 && topBits != mask(imm + 1)) { - destElem = (Element)1 << (sizeof(Element) * 8 - 1); + destElem = std::numeric_limits<Element>::min(); if (srcElem1 > 0) destElem = ~destElem; fpscr.qc = 1; @@ -2557,7 +2557,7 @@ let {{ bool negSrc1 = (srcElem1 < 0); bool posSrc2 = (srcElem2 >= 0); if ((negDest != negSrc1) && (negSrc1 == posSrc2)) { - destElem = (Element)1 << (sizeof(Element) * 8 - 1); + destElem = std::numeric_limits<Element>::min(); if (negDest) destElem -= 1; fpscr.qc = 1; |