[LLVMdev] Few questions about stack frame and calling conventions implementation in a backend

Artur Pietrek pietreka at gmail.com
Thu Apr 15 01:40:02 PDT 2010


Hi all
Ups, I'm really sorry for that previous message, I've sent it by mistake.

So let me write it once more.

I've been working for some time now on a backend for our CPU. However I
couldn't figure out how to implement some stuff.
I'd appreciate your help with these.

First thing is return address saving. To do that, first I have to copy it to
a general purpose register. I have no idea how to find an unused gpr
register in emitPrologue/emitEpilogue. I've noticed that in other backends
RegScavenger is used for that purpose, but not from inside of those methods.
So my question is how could I get an unused register from inside of these
methods?

And my second problem is with returning structures by value. ABI says that
aggregates up to 32bytes should be returned directly in register. Any advice
how this could be done?

Thanks
Artur
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100415/0b1f7a58/attachment.html>


More information about the llvm-dev mailing list