Skip to content

Instantly share code, notes, and snippets.

@fjolnir
Created June 5, 2012 05:06
Show Gist options
  • Save fjolnir/2872758 to your computer and use it in GitHub Desktop.
Save fjolnir/2872758 to your computer and use it in GitHub Desktop.
@className_NSNumber = private unnamed_addr constant [9 x i8] c"NSNumber\00"
@sel_numberWithDouble = private unnamed_addr constant [18 x i8] c"numberWithDouble:\00"
@className_NSString = private unnamed_addr constant [9 x i8] c"NSString\00"
@sel_stringWithUTF8String = private unnamed_addr constant [22 x i8] c"stringWithUTF8String:\00"
@0 = private unnamed_addr constant [7 x i8] c"foobar\00"
@1 = private unnamed_addr constant [7 x i8] c"barfoo\00"
@_NSConcreteGlobalBlock = external global i8**
@2 = private unnamed_addr constant [6 x i8] c"%@:%@\00"
@__block_descriptor_tmp = internal constant { i64, i64, i8*, i8* } { i64 0, i64 0, i8* getelementptr inbounds ([6 x i8]* @2, i32 0, i32 0), i8* null }
@__block_literal_global = internal constant { i8***, i32, i32, i8* ()*, i8* } { i8*** @_NSConcreteGlobalBlock, i32 1342177280, i32 0, i8* ()* @__tq_block_invoke_1, i8* bitcast ({ i64, i64, i8*, i8* }* @__block_descriptor_tmp to i8*) }
@3 = private unnamed_addr constant [10 x i8] c"hey world\00"
@4 = private unnamed_addr constant [6 x i8] c"%@:%@\00"
@__block_descriptor_tmp1 = internal constant { i64, i64, i8*, i8* } { i64 0, i64 0, i8* getelementptr inbounds ([6 x i8]* @4, i32 0, i32 0), i8* null }
@__block_literal_global2 = internal constant { i8**, i32, i32, i8* ()*, i8* } { i8** bitcast (i8*** @_NSConcreteGlobalBlock to i8**), i32 1342177280, i32 0, i8* ()* @__tq_block_invoke_0, i8* bitcast ({ i64, i64, i8*, i8* }* @__block_descriptor_tmp1 to i8*) }
declare void @objc_allocateClassPair(i8*, i8*, i64)
declare void @objc_registerClassPair(i8*)
declare i8 @class_addIvar(i8*, i8*, i64, i8, i8*)
declare i8 @class_addMethod(i8*, i8*, i8*, i8*)
declare i8* @objc_msgSend(i8*, i8*, ...)
declare void @objc_storeStrong(i8**, i8*)
declare i8* @objc_storeWeak(i8**, i8*)
declare i8* @objc_loadWeak(i8**)
declare void @objc_destroyWeak(i8**)
declare i8* @objc_retain(i8*)
declare void @objc_release(i8*)
declare i8* @sel_registerName(i8*)
declare i8* @sel_getName(i8*)
declare i8* @objc_getClass(i8*)
define i8* @__tq_block_invoke_0() {
entry:
%0 = alloca i8*
store i8* null, i8** %0
%1 = call i8* @objc_getClass(i8* getelementptr inbounds ([9 x i8]* @className_NSNumber, i32 0, i32 0))
%2 = call i8* @sel_registerName(i8* getelementptr inbounds ([18 x i8]* @sel_numberWithDouble, i32 0, i32 0))
%3 = call i8* (i8*, i8*, ...)* @objc_msgSend(i8* %1, i8* %2, double 3.210000e+02)
call void @objc_storeStrong(i8** %0, i8* %3)
%4 = alloca i8*
store i8* null, i8** %4
call void @objc_storeStrong(i8** %4, i8* bitcast ({ i8***, i32, i32, i8* ()*, i8* }* @__block_literal_global to i8*))
%5 = call i8* @objc_getClass(i8* getelementptr inbounds ([9 x i8]* @className_NSString, i32 0, i32 0))
%6 = call i8* @sel_registerName(i8* getelementptr inbounds ([22 x i8]* @sel_stringWithUTF8String, i32 0, i32 0))
%7 = call i8* (i8*, i8*, ...)* @objc_msgSend(i8* %5, i8* %6, i8* getelementptr inbounds ([10 x i8]* @3, i32 0, i32 0))
ret i8* %7
}
define i8* @__tq_block_invoke_1() {
entry:
%0 = alloca i8*
store i8* null, i8** %0
%1 = call i8* @objc_getClass(i8* getelementptr inbounds ([9 x i8]* @className_NSString, i32 0, i32 0))
%2 = call i8* @sel_registerName(i8* getelementptr inbounds ([22 x i8]* @sel_stringWithUTF8String, i32 0, i32 0))
%3 = call i8* (i8*, i8*, ...)* @objc_msgSend(i8* %1, i8* %2, i8* getelementptr inbounds ([7 x i8]* @0, i32 0, i32 0))
call void @objc_storeStrong(i8** %0, i8* %3)
%4 = call i8* @objc_getClass(i8* getelementptr inbounds ([9 x i8]* @className_NSString, i32 0, i32 0))
%5 = call i8* @sel_registerName(i8* getelementptr inbounds ([22 x i8]* @sel_stringWithUTF8String, i32 0, i32 0))
%6 = call i8* (i8*, i8*, ...)* @objc_msgSend(i8* %4, i8* %5, i8* getelementptr inbounds ([7 x i8]* @1, i32 0, i32 0))
ret i8* %6
}
2012-06-05 14:05:38.277 tranquil[82855:60b] 'root' retval: 0x7f87199033e0: hey world
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment