Re: Calling Convention for Vector ?


Earl Killian
 

Vectors are passed in memory and returned in memory. Vectors are arbitrary length, whereas the vector registers are fixed length, and can only be used to temporarily hold a portion of a memory vector. Thus it doesn’t make sense to pass or return things in vector registers, or to have the registers saved or restored as part of the calling convention.

On Dec 25, 2019, at 20:17, "戎杰杰 <jiejie.rjj@...> wrote:

Hi,

 Thanks for your mention.

 It’s so clear & simple, there is no convention for vector args & return of function ?

 also, according our long time designed cpu experiments, there should be some

 callee saved vector registers for performance across some complicated function calls, right ? :)

 Any considers or details for excluding like vector args ?


--Jojo
在 2019年12月24日 +0800 AM4:46,Andrew Waterman <andrew@...>,写道:
There is a brief sketch of the Linux vector calling convention here:
https://github.com/riscv/riscv-v-spec/blob/master/calling-convention.adoc

Note this is the convention for normal C ABI calls; a separate convention will be adopted for vector millicode calls.

On Mon, Dec 23, 2019 at 2:12 PM "戎杰杰 <jiejie.rjj@...> wrote:
Hi,

 Anyone know extra designed ABI information (like Calling Convention)

 about for vector register ?


--Jojo

Join {tech-vector-ext@lists.riscv.org to automatically receive all group messages.