ISLE: port more ops on x64 to lowering patterns.#3855
ISLE: port more ops on x64 to lowering patterns.#3855cfallin merged 1 commit intobytecodealliance:mainfrom
Conversation
Subscribe to Label ActionDetailsThis issue or pull request has been labeled: "cranelift", "cranelift:area:aarch64", "cranelift:area:machinst", "cranelift:area:x64", "isle"Thus the following users have been cc'd because of the following labels:
To subscribe or unsubscribe from this label, edit the |
| ;; Rules for `debugtrap` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
|
|
||
| (rule (lower (debugtrap)) | ||
| (side_effect (hlt))) |
There was a problem hiding this comment.
Existing/curious: Do you know why debugtrap isn't a safe point? Our other traps are safe points.
There was a problem hiding this comment.
I'm actually not sure! For what it's worth, hlt is a bit of an odd choice here as well (it can only execute in kernel mode, and I think generates SIGILL in userspace). I guess the idea is that it's not meant to be a "normal" transfer of control to the runtime paired with the generated code, but rather a place where a debugger could catch a signal or hook in with ptrace or something of the sort, so setting up state for a "normal" runtime invocation to e.g. scan the stack wouldn't be useful. I'm not sure though.
In the absence of more context here I'm inclined to leave the lowering as-is (translated from existing), but we should definitely ask whether this opcode is even necessary, or at least what its precise guarantees should be, when we get to cleaning up the CLIF opcode space...
27a6700 to
39f36d2
Compare
Depends on / stacked on top of #3848, #3849.