Displaying 2 results from an estimated 2 matches for "casted_fp".
2016 Feb 29
0
[cfe-dev] RFC: A new ABI for virtual calls, and a change to the virtual call representation in the IR
..._vtable0 + 16)}
> @C_vtable1 = {i8*, i8*, i32} {-8, @C::rtti, @C::h - (@C_vtable1 + 16)}
>
> define void @fcall(%A* %a) {
> %slot = call i32 @llvm.vtable.slot.offset(!"A", i32 0)
> %vtable = load i8* %a
> %fp = i8* @llvm.vtable.load.relative(%vtable, %slot)
> %casted_fp = bitcast i8* %fp to void (%A*)
> call void %casted_fp(%a)
> }
>
> define void @gcall(%A* %a) {
> %slot = call i32 @llvm.vtable.slot.offset(!"A", i32 1)
> %vtable = load i8* %a
> %fp = i8* @llvm.vtable.load.relative(%vtable, %slot)
> %casted_fp = bitcast...
2016 Feb 29
10
RFC: A new ABI for virtual calls, and a change to the virtual call representation in the IR
...g - (@C_vtable0 + 16), @C::h - (@C_vtable0 + 16)}
@C_vtable1 = {i8*, i8*, i32} {-8, @C::rtti, @C::h - (@C_vtable1 + 16)}
define void @fcall(%A* %a) {
%slot = call i32 @llvm.vtable.slot.offset(!"A", i32 0)
%vtable = load i8* %a
%fp = i8* @llvm.vtable.load.relative(%vtable, %slot)
%casted_fp = bitcast i8* %fp to void (%A*)
call void %casted_fp(%a)
}
define void @gcall(%A* %a) {
%slot = call i32 @llvm.vtable.slot.offset(!"A", i32 1)
%vtable = load i8* %a
%fp = i8* @llvm.vtable.load.relative(%vtable, %slot)
%casted_fp = bitcast i8* %fp to void (%A*)
call void %cast...