On 1/29/19 1:57 AM, Peter Maydell wrote: >>> The advantage of picking the other choice (SPSR_ELx.BTYPE == >>> PSTATE.BTYPE) is that it means that the behaviour is identical >>> for all exceptions (async or sync of any type) and we don't >>> do the work of clearing the BTYPE field (which will happen >>> potentially in "normal" guest code if we're not in a guarded page, >>> I think). >> >> Well, BTYPE is in the TB flags, so we know it's already zero in that case, so >> there's no extra work. > > It's not zero if we just did a BR Xn to get to this SVC insn, is it?
I guess I misunderstood what you meant by "extra" work. It's not "extra" if btype is known to not be zero... Anyway, in v2 the clearing of btype happens in cpu_loop, more like what the kernel would have to do. r~