On 12/07/2015 08:43 PM, Steve Ellcey wrote:
I am not sure about this. There is an earlier if statement in the loop that does a 'return' instead of a break (or continue) and there is a return in the 'else' part of the if that sets must_annul. Both of these are inside the loop that looks at all the instructions in the sequence 'seq'. I think the code is looking at all the instructions in the sequence and if any of them fail one of the tests in the loop (in this case require annulling) then we can't handle any of the instructions in the sequence and so we return immediately without putting any of the instructions from 'seq' in the delay slot. I believe a frame related instruction in an annulled branch needs to be handled that way too.
Ah, I think I was looking at the other function that has the same must_annul test (steal_delay_list_from_fallthrough). The patch is ok without the backslash. Maybe the other function ought to be changed as well though?
Bernd