Displaying 3 results from an estimated 3 matches for "nsp2".
Did you mean:
ns2
2011 Jul 09
1
[LLVMdev] Explicit register usage in LLVM assembly
...@main(i64 %in_hp, i64 %in_p, i64 %in_sp) {
;; In the entry block:
%hp = alloca i64
store %in_hp -> %hp
%p = alloca i64
store %in_p -> %p
%sp = alloca i64
store %in_sp -> %sp
......
;; before normal call
%hp1 = load %hp
%p1 = load %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,...
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