21 lines
661 B
LLVM
21 lines
661 B
LLVM
|
|
@format = global [49 x i8] c"Hello, world!%s %s %lld %lld %lld %lld %lld %lld\00"
|
||
|
|
@text = global [5 x i8] c"2020\00"
|
||
|
|
@integer = global i64 4
|
||
|
|
|
||
|
|
define void @changetext() {
|
||
|
|
%1 = load i64, i64* @integer
|
||
|
|
%2 = sub i64 %1, 1
|
||
|
|
store i64 %2, i64* @integer
|
||
|
|
ret void
|
||
|
|
}
|
||
|
|
|
||
|
|
define i64 @main(i64 %argc, i8** %argv) {
|
||
|
|
%1 = getelementptr [49 x i8], [49 x i8]* @format, i32 0, i32 0
|
||
|
|
%2 = getelementptr i8*, i8** %argv, i32 1
|
||
|
|
%3 = load i8*, i8** %2
|
||
|
|
%4 = getelementptr [5 x i8], [5 x i8]* @text, i32 0, i32 0
|
||
|
|
call void @changetext()
|
||
|
|
%5 = load i64, i64* @integer
|
||
|
|
call void @printf(i8* %1, i8* %3, i8* %4, i64 %5, i64 4, i64 5, i64 6, i64 7, i64 8)
|
||
|
|
ret i64 0
|
||
|
|
}
|