-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Winch: Add SIMD conversion operators for x64 with AVX #10180
Winch: Add SIMD conversion operators for x64 with AVX #10180
Conversation
I can help with this review. |
Subscribe to Label Action
This issue or pull request has been labeled: "winch"
Thus the following users have been cc'd because of the following labels:
To subscribe or unsubscribe from this label, edit the |
&mut self.pool, | ||
&mut self.constants, | ||
&mut self.buffer, | ||
MemFlags::trusted(), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it generally fine to consider those memory access trusted? It seems to me that, in this specific case, this is fine, but the callee cannot assume that address will indeed be aligned and non-trapping, no?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it generally fine to consider those memory access trusted?
It is -- as a rule of thumb, any accesses emitted by the compiler as part of loading and storing/loading spilled values are considered trusted.
On the other hand, any accesses emitted by the compiler by virtue of translating any Wasm instruction which explicitly interacts with linear memory is considered untrusted and must comply with the semantics dictated by such instruction, like alignment and trapping.
Practically speaking what that means is that if the operand used in this instruction is an incorrect address, this memory access will likely result in a segmentation fault rather than in a Wasm trap.
Part of #8093. Adds the following instructions:
*x*.convert_*
*x*.demote_*
*x*.extend_*
*x*.narrow_*