diff --git a/target-arm/neon_helper.c b/target-arm/neon_helper.c index 4ee5658362884073a699c661eb0771e71f1b93d3..35fbaf530406f1504926c6c463078d527edf7ba6 100644 --- a/target-arm/neon_helper.c +++ b/target-arm/neon_helper.c @@ -456,11 +456,11 @@ uint64_t HELPER(neon_shl_s64)(uint64_t valop, uint64_t shiftop) if (tmp >= sizeof(src1) * 8) { \ dest = 0; \ } else if (tmp < -sizeof(src1) * 8) { \ - dest >>= sizeof(src1) * 8 - 1; \ + dest = src1 >> (sizeof(src1) * 8 - 1); \ } else if (tmp == -sizeof(src1) * 8) { \ dest = src1 >> (tmp - 1); \ dest++; \ - src2 >>= 1; \ + dest >>= 1; \ } else if (tmp < 0) { \ dest = (src1 + (1 << (-1 - tmp))) >> -tmp; \ } else { \