https://bugs.kde.org/show_bug.cgi?id=434296

--- Comment #4 from Andreas Arnez <ar...@linux.ibm.com> ---
(In reply to Julian Seward from comment #3)
>   Is it possible for any incoming instruction to cause this assertion to
> fail?
Yes.  Of course, only invalid code would do that.
>   If so that should be reported as SIGILL, and not cause an assertion
> failure.
Right.  The s390_insn_assert macro does not behave like vassert(), though.
If its argument is false, it reports a "specification exception" up
through the call chain.  The user would see something like this:

vex s390->IR: specification exception: E712 30F0 F082
==2699373== valgrind: Unrecognised instruction at address 0x1000518.
...
==2699373== 
==2699373== Process terminating with default action of signal 4 (SIGILL):
dumping core
...

I think it's an improvement over the previous logic, which simply called
vassert().  Although in practice, I haven't heard about that causing
trouble, either.  So my take is, whenever I touch an existing IR
translator function that uses vassert() for indicating a specification
exception, I replace that by s390_insn_assert() instead.

> [...]
> The one thing I would suggest is that, for the instructions in question, in
> the front end, set the returned DisResult::hint field to Dis_HintVerbose.
Ah, good point, will do.  Is there a recommended threshold when to set
this flag?

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to