fix some oss-fuzz (#1224)
* fix oss-fuzz 18138. * fix oss-fuzz 20079. * fix oss-fuzz 20209. * fix oss-fuzz 20210. * fix oss-fuzz 20262. * rollback. * rollback. * fix oss-fuzz 20079. * fix oss-fuzz 20179. * fix oss-fuzz 20195. * fix oss-fuzz 20206. * fix oss-fuzz 20207. * fix oss-fuzz 20265. * fix oss-fuzz 20285. * fix oss-fuzz 20868. * fix oss-fuzz 20908. * fix oss-fuzz 20909. * fix oss-fuzz 20914. * fix oss-fuzz 20922. * fix oss-fuzz 20928. * remove warnigs. * fix oss-fuzz 20961. * fix oss-fuzz 21005. * remove clang warnings. * fix oss-fuzz 21043. * fix oss-fuzz 21047. * fix oss-fuzz 21050. * fix oss-fuzz 21219.
This commit is contained in:
@@ -608,7 +608,7 @@ NEON_POP(pmax_u16, neon_u16, 2)
|
||||
#undef NEON_FN
|
||||
|
||||
#define NEON_FN(dest, src1, src2) \
|
||||
dest = (src1 > src2) ? (src1 - src2) : (src2 - src1)
|
||||
dest = (src1 > src2) ? ((int64_t)src1 - (int64_t)src2) : ((int64_t)src2 - (int64_t)src1)
|
||||
NEON_VOP(abd_s8, neon_s8, 4)
|
||||
NEON_VOP(abd_u8, neon_u8, 4)
|
||||
NEON_VOP(abd_s16, neon_s16, 2)
|
||||
@@ -1052,7 +1052,7 @@ uint64_t HELPER(neon_qrshl_u64)(CPUARMState *env, uint64_t val, uint64_t shiftop
|
||||
if (tmp >= (ssize_t)sizeof(src1) * 8) { \
|
||||
if (src1) { \
|
||||
SET_QC(); \
|
||||
dest = (1 << (sizeof(src1) * 8 - 1)); \
|
||||
dest = (uint32_t)(1U << (sizeof(src1) * 8 - 1)); \
|
||||
if (src1 > 0) { \
|
||||
dest--; \
|
||||
} \
|
||||
@@ -1067,7 +1067,7 @@ uint64_t HELPER(neon_qrshl_u64)(CPUARMState *env, uint64_t val, uint64_t shiftop
|
||||
dest = ((uint64_t)src1) << tmp; \
|
||||
if ((dest >> tmp) != src1) { \
|
||||
SET_QC(); \
|
||||
dest = (uint32_t)(1 << (sizeof(src1) * 8 - 1)); \
|
||||
dest = (uint32_t)(1U << (sizeof(src1) * 8 - 1)); \
|
||||
if (src1 > 0) { \
|
||||
dest--; \
|
||||
} \
|
||||
@@ -1133,7 +1133,7 @@ uint64_t HELPER(neon_qrshl_s64)(CPUARMState *env, uint64_t valop, uint64_t shift
|
||||
}
|
||||
} else {
|
||||
int64_t tmp = val;
|
||||
val <<= shift;
|
||||
val = (uint64_t)val << (shift & 0x3f);
|
||||
if ((val >> shift) != tmp) {
|
||||
SET_QC();
|
||||
val = (tmp >> 63) ^ ~SIGNBIT64;
|
||||
|
||||
@@ -6144,7 +6144,7 @@ static int disas_neon_data_insn(DisasContext *s, uint32_t insn)
|
||||
val = 0;
|
||||
for (n = 0; n < 4; n++) {
|
||||
if (imm & (1 << (n + (pass & 1) * 4)))
|
||||
val |= 0xff << (n * 8);
|
||||
val |= 0xffU << (n * 8);
|
||||
}
|
||||
tcg_gen_movi_i32(tcg_ctx, tmp, val);
|
||||
} else {
|
||||
@@ -11127,7 +11127,7 @@ static void disas_thumb_insn(CPUARMState *env, DisasContext *s) // qq
|
||||
/* jump to the offset */
|
||||
val = (uint32_t)s->pc + 2;
|
||||
offset = ((int32_t)((uint32_t)insn << 24)) >> 24;
|
||||
val += offset << 1;
|
||||
val += (int32_t)((uint32_t)offset << 1);
|
||||
gen_jmp(s, val);
|
||||
break;
|
||||
|
||||
@@ -11140,7 +11140,7 @@ static void disas_thumb_insn(CPUARMState *env, DisasContext *s) // qq
|
||||
/* unconditional branch */
|
||||
val = (uint32_t)s->pc;
|
||||
offset = ((int32_t)((uint32_t)insn << 21)) >> 21;
|
||||
val += (offset << 1) + 2;
|
||||
val += (int32_t)((uint32_t)offset << 1) + 2;
|
||||
gen_jmp(s, val);
|
||||
break;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user