|
From: <sv...@va...> - 2011-07-30 20:14:17
|
Author: florian
Date: 2011-07-30 21:09:28 +0100 (Sat, 30 Jul 2011)
New Revision: 2186
Log:
Fix an assert.
This occured when we were chasing a branch insn (thereby setting the
disassembly result to Dis_ResteerU and the continueAt field to something
non-zero) and later changing the result kind to Dis_StopHere (because
the next insn is an EX insn). The ContinueAt field remained non-zero
in the case causing an assert down the road.
This should fix the failing test memcheck/tests/linux/timerfd-syscall
Modified:
trunk/priv/guest_s390_toIR.c
Modified: trunk/priv/guest_s390_toIR.c
===================================================================
--- trunk/priv/guest_s390_toIR.c 2011-07-27 20:40:22 UTC (rev 2185)
+++ trunk/priv/guest_s390_toIR.c 2011-07-30 20:09:28 UTC (rev 2186)
@@ -12970,6 +12970,7 @@
if (irsb->next == NULL && bytes[insn_length] == 0x44) {
irsb->next = IRExpr_Const(IRConst_U64(guest_IA_next_instr));
dis_res->whatNext = Dis_StopHere;
+ dis_res->continueAt = 0;
}
if (status == S390_DECODE_OK) return insn_length; /* OK */
|