On 8/17/21 5:39 AM, Richard Henderson wrote:
Hmm, you're correct that we get this wrong.

We probably didn't do these in the right priority
order before this series, though, and I dunno whether
we get the insn-abort vs swstep ordering right either...

And you're correct that we got it wrong beforehand.  The reorg did not alter the recognized ordering of the exceptions.

I'm a bit surprised that insn-abort comes higher than breakpoint.

That would be because I mis-remembered the language.

Going back to the list,

  4 - software step
  6 - pc alignment fault
  7 - instruction abort (address translation!)
  8 - breakpoint exceptions
  9 - illegal execution state
 10 - software breakpoint (brk)
 11 - BTI exceptions
 12 - el2 traps
 13 - undefined exceptions

I thought "insn-abort" was #13, but it's really #7.

Well, behaviour is unchanged, since we check for address match before calling arm_ldl_code, before and after the reorg.

So: we need to suppress breakpoints (#8) for any higher-priority condition. For #7, that might require some extra generic work. I should have a look at the other targets that use architectural breakpoints to see what happens for a breakpoint on an unmapped page.

I'll work something out.


r~

Reply via email to