Displaying 4 results from an estimated 4 matches for "fistp64m".
2012 Jan 19
2
[LLVMdev] Best way to interface with MSVC _ftol2 runtime function for fptoui?
...turns into a call after arranging for the argument to be in ST0.
You should emit:
%ST0 = COPY %vreg13; RFP80:%vreg13
%EAX, %EDX = FTOL2 %ST0<kill>
%vreg16 = COPY %EAX<kill>
%vreg17 = COPY %EDX<kill>
Then teach X86FloatingPoint that FTOL2 pops its argument, like FISTP64m.
2. Use inline asm. Which is pretty gross. You would need to construct a SelectionDAG node identical to the one produced by real inline asm. There should be some help in include/llvm/InlineAsm.h
I am not sure which is worse, but if there are multiple libcalls like this, you should go with somethi...
2012 Jan 20
0
[LLVMdev] Best way to interface with MSVC _ftol2 runtime function for fptoui?
...g for the argument to be in ST0.
> You should emit:
>
> %ST0 = COPY %vreg13; RFP80:%vreg13
> %EAX, %EDX = FTOL2 %ST0<kill>
> %vreg16 = COPY %EAX<kill>
> %vreg17 = COPY %EDX<kill>
>
> Then teach X86FloatingPoint that FTOL2 pops its argument, like FISTP64m.
>
> 2. Use inline asm. Which is pretty gross. You would need to construct a SelectionDAG node identical to the one produced by real inline asm. There should be some help in include/llvm/InlineAsm.h
>
> I am not sure which is worse, but if there are multiple libcalls like this, you shou...
2012 Jan 19
0
[LLVMdev] Best way to interface with MSVC _ftol2 runtime function for fptoui?
2012/1/19 Jakob Stoklund Olesen <stoklund at 2pi.dk>:
> How many of these libcalls do you need to implement? What exactly is the calling convention? Which registers are clobbered etc.
There is only one (that I know about so far). The MSVCRT `_ftol2`
function implements floating-point-to-unsigned conversion for i386
targets, and LLVM 3.0 calls it with the cdecl calling convention for
2012 Jan 19
2
[LLVMdev] Best way to interface with MSVC _ftol2 runtime function for fptoui?
On Jan 18, 2012, at 8:56 PM, Joe Groff wrote:
> 2012/1/18 Jakob Stoklund Olesen <stoklund at 2pi.dk>:
>> This should work:
>> %1 = call i64 asm "call __ftol2", "=A,{st},~{dirflag},~{fpsr},~{flags},~{st}" (double %x) nounwind
>
> Forgive me for being slow, but what would be the best way to implement
> the equivalent of that inline asm as a custom