Displaying 3 results from an estimated 3 matches for "armfmmrd".
2006 Oct 03
1
[LLVMdev] returning a double in two registers
...ow 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 cheat...
2006 Oct 02
0
[LLVMdev] returning a double in two registers
...e fmrrd as
> defining its two integer arguments. Currently this is only used during
> returns and the function is marked as defining R0 and R1, so this
> shouldn't be a problem,
>
> How can I fix the declaration of fmrrd so that it can be used in other contexts?
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).
-Chris
--
http://nondot.org/sabr...
2006 Oct 02
2
[LLVMdev] returning a double in two registers
I have started to add support for FP in the ARM backend.
According to the ABI, 32 bit floating point numbers should be returned
in R0 and 64bit ones in R0/R1.
I have solved the 32 bit case by inserting bit_converts in LowerRET.
For the 64bit case I considered two options:
1) Creating two nodes. fp_lo and fp_hi. I could then select fmrdh and fmrdl with
(set IntRegs:$dst (bitconvert (fp_hi