[LLVMdev] returning a double in two registers

Rafael Espíndola
2006-10-03T11:50:22Z

> Alternatively, you could merge bitconvert into the fp_hi/lo flags.  That
> would make the pattern simpler, and eliminate the need to have to match a
> bare fp_hi/fp_lo node without the bitconvert.
good point!

> Unfortunately, you can't do this elegantly in tblgen.  You'd want
to
> create an arm-local node at lowering time, then use custom C++ code to
> match it.  The X86 backend has some examples of how to write the custom
> matching code, but it's not for the faint of heart.
I will have a look at it.

> Extending tblgen to support instructions with multiple results is on the
> long term todo list, but we probably won't get to it in the near
future.
>


> You defined your armfmmrd node as taking three inputs: two integer and one
> double.  Shouldn't it produce two outputs and take one input?  If so,
you
> need to write custom c++ matching code.  Alternatively, you can avoid this
> by doing the two pieces separately, as you describe in 1).
It should. I have cheated to be able to use tblgen. Since the
instruction is only used with a flag connecting it to a return, I was
hoping that the hack was "safe".

> -Chris

Rafael