PTAL, PS1 is the original change, PS2-3 is the fix (+ reusing IterateWasmFXArgBuffer in wrappers-inl.h as suggested by Jakob).
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
PTAL at PS 4. Reducing the fixed frame size by 1 caused the pushes in arm64 to be misaligned.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Reland: "[wasmfx] Support arguments in stack wrapper"
This is a reland of commit 30cf6998b99e4a793d8d5d5aaca96fe0879dfaed
The issue was that the stack entry frame was treated as a wasm frame in
linkage.cc, causing it to have the wrong number of fixed slots. The
stack entry frame does not have an instance slot.
Drive-by: reuse IterateWasmFXArgBuffer in the wrapper code.
Original change's description:
> Now that stack wrappers are cached per signature, allow them to have
> arguments.
> The wrapper receives a pointer to the arg buffer, unpacks it and
> forwards the arguments to the initial func ref.
R=clem...@chromium.org
CC=jkum...@chromium.org,f...@chromium.org
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
required_slots--;Hi Thibaud, could I ask why this change was only needed on arm64? Trying to figure out if ppc64/s390x also need a port of this.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
required_slots--;Hi Thibaud, could I ask why this change was only needed on arm64? Trying to figure out if ppc64/s390x also need a port of this.
Hi Milad. In short: this is needed if these platforms expect 16 byte stack alignment.
This is related to the change in linkage.cc: this declares the fixed slot count of this frame type to be 3 instead of 4, which is correct, but to keep the stack 16-byte aligned we push a padding register here, and remove 1 from the number of slots that we need to reserve for the rest of the frame.
This was guarded by DCHECKs on arm64. If this did not break ppc64/s390x, either this is not needed, or you might want to consider adding similar DCHECKs.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
required_slots--;Thank you for the information. Our ports are taken mainly from arm (not arm64) and I'm assuming if arm needs the same stack alignment then we may not need to add this change either?
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
required_slots--;Thibaud MichaudHi Thibaud, could I ask why this change was only needed on arm64? Trying to figure out if ppc64/s390x also need a port of this.
Hi Milad. In short: this is needed if these platforms expect 16 byte stack alignment.
This is related to the change in linkage.cc: this declares the fixed slot count of this frame type to be 3 instead of 4, which is correct, but to keep the stack 16-byte aligned we push a padding register here, and remove 1 from the number of slots that we need to reserve for the rest of the frame.This was guarded by DCHECKs on arm64. If this did not break ppc64/s390x, either this is not needed, or you might want to consider adding similar DCHECKs.
Done
required_slots--;Thank you for the information. Our ports are taken mainly from arm (not arm64) and I'm assuming if arm needs the same stack alignment then we may not need to add this change either?
This change ensures that we keep the SP two-pointers aligned at all time within the frame, which I think is only a requirement on arm64 and not on arm.
I don't know what the requirements are on ppc64 and s390x.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
required_slots--;Thibaud MichaudThank you for the information. Our ports are taken mainly from arm (not arm64) and I'm assuming if arm needs the same stack alignment then we may not need to add this change either?
This change ensures that we keep the SP two-pointers aligned at all time within the frame, which I think is only a requirement on arm64 and not on arm.
I don't know what the requirements are on ppc64 and s390x.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
required_slots--;Thibaud MichaudThank you for the information. Our ports are taken mainly from arm (not arm64) and I'm assuming if arm needs the same stack alignment then we may not need to add this change either?
Milad FarazmandThis change ensures that we keep the SP two-pointers aligned at all time within the frame, which I think is only a requirement on arm64 and not on arm.
I don't know what the requirements are on ppc64 and s390x.
Thanks again for clarifying.
Done
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |