CS153/hw3/llprograms/callback1.ll
jmug cfe502c598 Add all the assignment code.
Signed-off-by: jmug <u.g.a.mariano@gmail.com>
2025-01-24 18:59:28 -08:00

20 lines
412 B
LLVM

%fty = type i64 (i64, i64)
declare i64 @ll_callback(%fty*)
declare i8* @ll_ltoa(i64)
declare void @ll_puts(i8*)
define i64 @foo(i64 %x, i64 %y) {
%1 = alloca i64
%2 = add i64 %x, %y
store i64 %2, i64* %1
%3 = load i64, i64* %1
ret i64 %3
}
define i64 @main(i64 %argc, i8** %argv) {
%1 = call i64 @ll_callback(%fty* @foo)
%2 = call i8* @ll_ltoa(i64 %1)
call void @ll_puts(i8* %2)
ret i64 0
}