This patch adds an additional emergency spill slot to RVV code. This is
required as RVV stack offsets may require an additional register to compute.
This patch includes an optimization by @HsiangKai <kai.wang@sifive.com>
to reduce the number of registers required for the computation of stack
offsets from 3 to 2. Otherwise we'd need two additional emergency spill
slots.
I found a bug in our downstream testing about the condition. We may need to change the condition to
The reason is we will use VLA instructions for VLS data set. If all the data are VLS types, RVVStackSize will be 0. However, we still need one scavenging slot because vector load/store have no immediate offset field in the instructions.