search for: nsp4

Displaying 3 results from an estimated 3 matches for "nsp4".

Did you mean: ns4
2011 Jul 09
1
[LLVMdev] Explicit register usage in LLVM assembly
...ad %p %sp1 = load %sp {%hp2, %p2, %nsp2, %val} = call @foo(%hp1, %p1, %sp1, arg1, arg2) ;; in normal continuation store %hp2 -> %hp store %p2 -> %p store %sp2 -> %sp ....... ....... ;; before invoke call %hp3 = load %hp %p3 = load %p %sp3 = load %sp {%hp4, %p4, %nsp4, %val} = invoke @bar(%hp3, %p3, %sp3, ...) to label %Continue unwind label %Cleanup ;; %Continue label (normal return) store %hp4 -> %hp store %p4 -> %p store %sp5 -> %sp ..... %Cleanup: ;; In this block i *cannot* access %hp4, %p4, %sp4 ..... ;; Return of main %hp5 = l...
2011 Jul 08
0
[LLVMdev] Explicit register usage in LLVM assembly
On 8 July 2011 21:10, Yiannis Tsiouris <yiannis.tsiouris at gmail.com> wrote: > The problem with that is the case of an 'invoke' call. According to the > semantics of the invoke instruction the return value is not available  when > a stack unwind happens. From the Language Reference Manual: >  "For the purposes of the SSA form, the definition of the value returned by
2011 Jul 08
2
[LLVMdev] Explicit register usage in LLVM assembly
On Sun, Apr 3, 2011 at 2:58 AM, David Terei <davidterei at gmail.com> wrote: > Hi Yiannis, > > As has been said GHC had this problem (I'm the author of GHC's LLVM > backend). GHC uses 4 pinned registers on x86-32 and 16 on x86-64. The > solution is to use a custom calling convention. I would argue that > this is a better solution then having the registers