Displaying 4 results from an estimated 4 matches for "retaddr0".
Did you mean:
retaddr
2017 Apr 17
9
[RFC] Adding CPS call support
...n address
%retAddr = blockaddress(@foo, %retpt)
store i8* %retAddr, i8** %sp
; jump to @bar
tail call void @bar(i8** %sp, ...)
retpt: ; <- how can @bar "call" %retpt?
%sp2 = ???
%val = ???
; ...
}
define void @bar (i8** %sp, ...) {
; perform a return
%retAddr0 = load i8*, i8** %sp
%retAddr1 = bitcast i8* %retAddr0 to void (i8**, i64)*
%val = bitcast i64 1 to i64
; jump back to %retpt in @foo, passing %sp and %val
tail call void %retAddr1(i8** %sp, i64 %val)
}
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
There is currently no way to jump...
2017 Apr 17
2
[RFC] Adding CPS call support
...%sp
>> ; jump to @bar
>> tail call void @bar(i8** %sp, ...)
>> retpt: ; <- how can @bar "call" %retpt?
>> %sp2 = ???
>> %val = ???
>> ; ...
>> }
>> define void @bar (i8** %sp, ...) {
>> ; perform a return
>> %retAddr0 = load i8*, i8** %sp
>> %retAddr1 = bitcast i8* %retAddr0 to void (i8**, i64)*
>> %val = bitcast i64 1 to i64
>> ; jump back to %retpt in @foo, passing %sp and %val
>> tail call void %retAddr1(i8** %sp, i64 %val)
>> }
>> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...
2017 Apr 19
3
[RFC] Adding CPS call support
...tail call void @bar(i8** %sp, ...)
>>
>> retpt: ; <- how can @bar "call" %retpt?
>> %sp2 = ???
>> %val = ???
>> ; ...
>>
>> }
>>
>> define void @bar (i8** %sp, ...) {
>> ; perform a return
>> %retAddr0 = load i8*, i8** %sp
>> %retAddr1 = bitcast i8* %retAddr0 to void (i8**, i64)*
>> %val = bitcast i64 1 to i64
>> ; jump back to %retpt in @foo, passing %sp and %val
>> tail call void %retAddr1(i8** %sp, i64 %val)
>> }
>>
>> ;;;;;;;;;;;;;;;;;;;;;...
2017 Apr 17
2
[RFC] Adding CPS call support
...tail call void @bar(i8** %sp, ...)
>>
>> retpt: ; <- how can @bar "call" %retpt?
>> %sp2 = ???
>> %val = ???
>> ; ...
>>
>> }
>>
>> define void @bar (i8** %sp, ...) {
>> ; perform a return
>> %retAddr0 = load i8*, i8** %sp
>> %retAddr1 = bitcast i8* %retAddr0 to void (i8**, i64)*
>> %val = bitcast i64 1 to i64
>> ; jump back to %retpt in @foo, passing %sp and %val
>> tail call void %retAddr1(i8** %sp, i64 %val)
>> }
>>
>> ;;;;;;;;;;;;;;;;;;;;;...