On 26 August 2015 at 12:36, Sergey Sorokin <[email protected]> wrote: > If any store instruction writes the code inside the same TB > after this store insn, the execution of the TB must be stopped > to execute new code correctly. > As described in ARMv8 manual D3.4.6 a self-modified code need to do > IC invalidation to be valid. So it's enough to end the TB > after IC invalidation instruction on the code translation.
I think it would be better to fix this problem by requiring that we end the TB on every ISB instruction. We need to do that anyway, because the v8 ARM ARM D1.14.4 says that we must take interrupts immediately after an ISB. And if you have self-modifying code then you'll need to put an ISB between the store and the execution, so it will deal with your bug too. thanks -- PMM
