fix some oss-fuzz (#1184)
* fix oss-fuzz 10419. * fix oss-fuzz 10427. * fix oss-fuzz 10421. * fix oss-fuzz 10422. * fix oss-fuzz 10425. * fix oss-fuzz 10426. * fix oss-fuzz 10426. * fix oss-fuzz 10422. * fix oss-fuzz 10426. * fix oss-fuzz 10456. * fix oss-fuzz 10428. * fix oss-fuzz 10429. * fix oss-fuzz 10431. * fix oss-fuzz 10435. * fix oss-fuzz 10430. * fix oss-fuzz 10436. * remove unused var. * fix oss-fuzz 10449. * fix oss-fuzz 10452. * fix oss-fuzz 11792. * fix oss-fuzz 10457. * fix oss-fuzz 11737. * fix oss-fuzz 10458. * fix oss-fuzz 10565. * fix oss-fuzz 11651. * fix oss-fuzz 10497. * fix oss-fuzz 10515. * fix oss-fuzz 10586. * fix oss-fuzz 10597. * fiz oss-fuzz 11721. * fix oss-fuzz 10718. * fix oss-fuzz 15610. * fix oss-fuzz 10512. * fix oss-fuzz 10545. * fix oss-fuzz 10598. * fix oss-fuzz 11112. * fix oss-fuzz 11589. * fix oss-fuzz 10674. * git fix oss-fuzz 19610. * fix oss-fuzz 19848. * fix oss-fuzz 19851. * fix oss-fuzz 19852. * fix oss-fuzz 10878. * fix oss-fuzz 11655. * fix oss-fuzz 19849. * fix oss-fuzz 11765. * fix oss-fuzz 10337. * fix oss-fuzz 10575. * fix oss-fuzz 19877. * fix oss-fuzz 19895. * fix oss-fuzz 19896. * fix oss-fuzz 19897. * remove verbose fprintf output.
This commit is contained in:
committed by
Nguyen Anh Quynh
parent
8621bca537
commit
7e4ac9e86e
@@ -654,7 +654,9 @@ void helper_fbst_ST0(CPUX86State *env, target_ulong ptr)
|
||||
mem_end = mem_ref + 9;
|
||||
if (val < 0) {
|
||||
cpu_stb_data(env, mem_end, 0x80);
|
||||
val = -val;
|
||||
if (val != 0x8000000000000000LL) {
|
||||
val = -val;
|
||||
}
|
||||
} else {
|
||||
cpu_stb_data(env, mem_end, 0x00);
|
||||
}
|
||||
@@ -664,7 +666,7 @@ void helper_fbst_ST0(CPUX86State *env, target_ulong ptr)
|
||||
}
|
||||
v = val % 100;
|
||||
val = val / 100;
|
||||
v = ((v / 10) << 4) | (v % 10);
|
||||
v = (int)((unsigned int)(v / 10) << 4) | (v % 10);
|
||||
cpu_stb_data(env, mem_ref++, v);
|
||||
}
|
||||
while (mem_ref < mem_end) {
|
||||
|
||||
@@ -352,7 +352,7 @@ static int idiv64(uint64_t *plow, uint64_t *phigh, int64_t b)
|
||||
neg128(plow, phigh);
|
||||
}
|
||||
sb = (b < 0);
|
||||
if (sb) {
|
||||
if (sb && (b != 0x8000000000000000LL)) {
|
||||
b = -b;
|
||||
}
|
||||
if (div64(plow, phigh, b) != 0) {
|
||||
|
||||
@@ -852,7 +852,7 @@ static inline uint64_t helper_extrq(uint64_t src, int shift, int len)
|
||||
if (len == 0) {
|
||||
mask = ~0LL;
|
||||
} else {
|
||||
mask = (1ULL << len) - 1;
|
||||
mask = (1ULL << (len & 0x3f)) - 1;
|
||||
}
|
||||
return (src >> shift) & mask;
|
||||
}
|
||||
@@ -1469,8 +1469,8 @@ void glue(helper_phsubw, SUFFIX)(CPUX86State *env, Reg *d, Reg *s)
|
||||
|
||||
void glue(helper_phsubd, SUFFIX)(CPUX86State *env, Reg *d, Reg *s)
|
||||
{
|
||||
d->L(0) = (int32_t)d->L(0) - (int32_t)d->L(1);
|
||||
XMM_ONLY(d->L(1) = (int32_t)d->L(2) - (int32_t)d->L(3));
|
||||
d->L(0) = (int32_t)((int64_t)d->L(0) - (int64_t)d->L(1));
|
||||
XMM_ONLY(d->L(1) = (int32_t)((int64_t)d->L(2) - (int64_t)d->L(3)));
|
||||
d->L((1 << SHIFT) + 0) = (uint32_t)((int32_t)s->L(0) - (int32_t)s->L(1));
|
||||
XMM_ONLY(d->L(3) = (int32_t)s->L(2) - (int32_t)s->L(3));
|
||||
}
|
||||
|
||||
@@ -1014,7 +1014,7 @@ static CCPrepare gen_prepare_eflags_c(DisasContext *s, TCGv reg)
|
||||
/* (CC_SRC >> (DATA_BITS - 1)) & 1 */
|
||||
size = s->cc_op - CC_OP_SHLB;
|
||||
shift = (8 << size) - 1;
|
||||
return ccprepare_make(TCG_COND_NE, cpu_cc_src, 0, 0, (target_ulong)(1U << shift), false, false);
|
||||
return ccprepare_make(TCG_COND_NE, cpu_cc_src, 0, 0, (target_ulong)(1ULL << shift), false, false);
|
||||
|
||||
case CC_OP_MULB: case CC_OP_MULW: case CC_OP_MULL: case CC_OP_MULQ:
|
||||
return ccprepare_make(TCG_COND_NE, cpu_cc_src, 0, 0, -1, false, false);
|
||||
|
||||
Reference in New Issue
Block a user