Displaying 7 results from an estimated 7 matches for "retaddr1".
Did you mean:
retaddr
2017 Apr 17
9
[RFC] Adding CPS call support
...ss(@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 back to %retpt from another func...
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)
>> }
>> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>> There is currently...
2017 Apr 19
3
[RFC] Adding CPS call support
...>
>> 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)
>> }
>>
>> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>>
>...
2013 Nov 19
2
[LLVMdev] [3.4 branch] PPC64 regressions
...7s] <stdin>:40:2: note: with variable "REGSP" equal to "1"
[ 3467s] lwzx r6, r7, r6
[ 3467s] ^
[ 3467s] <stdin>:65:3: note: possible intended match here
[ 3467s] stw r9, 48(r1)
[ 3467s] ^
[ 3466s]
/home/abuild/rpmbuild/BUILD/llvm/test/CodeGen/PowerPC/2010-05-03-retaddr1.ll:22:10:
error: expected string not found in input
[ 3466s] ; CHECK: lwz r3, 8(r2)
[ 3466s] ^
[ 3466s] <stdin>:20:2: note: scanning from here
[ 3466s] lwzx r3, r2, r3
[ 3466s] ^
[ 3466s] <stdin>:21:2: note: possible intended match here
[ 3466s] lwz r0, 8(r1)
[ 3466s] ^
---...
2013 Nov 19
0
[LLVMdev] [3.4 branch] PPC64 regressions
...ot;REGSP" equal to "1"
> [ 3467s] lwzx r6, r7, r6
> [ 3467s] ^
> [ 3467s] <stdin>:65:3: note: possible intended match here
> [ 3467s] stw r9, 48(r1)
> [ 3467s] ^
>
>
>
> [ 3466s]
> /home/abuild/rpmbuild/BUILD/llvm/test/CodeGen/PowerPC/2010-05-03-retaddr1.ll:22:10:
> error: expected string not found in input
> [ 3466s] ; CHECK: lwz r3, 8(r2)
> [ 3466s] ^
> [ 3466s] <stdin>:20:2: note: scanning from here
> [ 3466s] lwzx r3, r2, r3
> [ 3466s] ^
> [ 3466s] <stdin>:21:2: note: possible intended match here
> [ 3466s] l...
2017 Apr 17
2
[RFC] Adding CPS call support
...>
>> 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 18
2
[RFC] Adding CPS call support
> Most architectures have a call instruction which does not push anything onto the stack; e.g. on ARM, the "BL" instruction saves the return address in LR. On other architectures, you can emulate this (for example, you could lower an IR "call" to LEA+JMP on x86-64).
This is similar to what I was originally thinking, since the end goal of all of this is the following