Fixed edge case in the DRC front-end that would incorrectly tag the

end of a sequence as "return to start" even if the last instruction
did not abet the starting instruction.
This commit is contained in:
Aaron Giles 2008-07-13 07:03:30 +00:00
parent 4860b171b2
commit c4e5ae4e41

View File

@ -397,7 +397,11 @@ static opcode_desc **build_sequence(drcfe_state *drcfe, opcode_desc **tailptr, i
/* if we are the last instruction, indicate end-of-sequence and redispatch */
if (nextdesc == NULL)
curdesc->flags |= OPFLAG_END_SEQUENCE | endflag;
{
curdesc->flags |= OPFLAG_END_SEQUENCE;
if (endflag != OPFLAG_RETURN_TO_START || nextdescnum == end)
curdesc->flags |= endflag;
}
/* otherwise, do some analysis based on the next instruction */
else