On 9/3/21 4:17 PM, Peter Maydell wrote:
I don't really understand what you mean here. What's the difference
between ending the TB now and translating a few more insns in
this TB before we end it?

  VCMP (pred now on or off)
  B    label

The code we emit for B uses goto_tb.

When goto_tb is unlinked (e.g. first execute), we exit with a code that causes the current cpu state to be evaluated, the new TB created, and the link filled in. This makes permanent the cpu state we evaluated, and thus the state change across goto_tb must be constant. This is fine for B, since only the PC changes and to a known destination.

So we have two choices: end the TB immediately after the VCMP, or set another flag to cause gen_goto_tb to fall back to goto_ptr.

But I sorta think that it's just easier to end after VCMP.


r~

Reply via email to