Loading... (original) (raw)
MachSpillCopy in aarch64 does not handle large stack offset.
In general the stack offset is limited to (1<<12) * sizeof(type). This is generally sufficient.
However for 128 bit vectors the limit can be as little as +256 bytes. This is because 128 bit vectors may not be 128 bit aligned, therefore they have to use a different form of load/store which only has a 9 bit signed offset instead of the 12 bit unsigned scaled offset.
This issue proposes rewriting the spill code to handle large (up to 1<<24) offsets.