On 18 September 2017 at 18:09, Lluís Vilanova <vilan...@ac.upc.edu> wrote: > TCI still has a separation of translation-time (translate.c) and > execution-time > (interpreting the TCG opcodes), and I don't think that's gonna go away anytime > soon. > > Even if it did, I think there still will be a translation/execution separation > easy enough to hook into (even if it's a "fake" one for the cold-path > interpreted instructions).
As a slightly more immediate and practical example, I'm currently implementing the v8M "SG" instruction. This is a somewhat weird corner-case of an instruction (it's the only instruction you can execute in non-secure state from a code region that's secure). I'm implementing it in the exception-handling code path: if we detect "NS execute from S memory" we throw a QEMU internal exception, and in the cpu_do_interrupt code we either (a) identify that this is the SG instruction and execute it or (b) generate the right guest CPU exception. That's definitely executing an instruction, and there's no translation time for it... thanks -- PMM