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