diff --git a/car_llvmkot/kotlib/kotlin_main.ll b/car_llvmkot/kotlib/kotlin_main.ll index b8bc562e3b2..461f3839abd 100644 --- a/car_llvmkot/kotlib/kotlin_main.ll +++ b/car_llvmkot/kotlib/kotlin_main.ll @@ -1,8 +1,7 @@ declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture readonly, i64, i32, i1) -declare i8* @malloc_static(i32) -attributes #0 = { nounwind "stack-protector-buffer-size"="8" "target-cpu"="cortex-m3" "target-features"="+hwdiv,+strict-align" } +declare i8* @malloc(i32) %class.ComplexRef = type { i32, %class.Simple* } -define void @ComplexRef(%class.ComplexRef* %classvariable.this, i32 %i, %class.Simple* %s) #0 +define void @ComplexRef(%class.ComplexRef* %classvariable.this, i32 %i, %class.Simple* %s) { %classvariable.this.addr = alloca %class.ComplexRef, align 4 %i.addr = alloca i32, align 4 @@ -18,7 +17,7 @@ call void @llvm.memcpy.p0i8.p0i8.i64(i8* %var4, i8* %var5, i64 8, i32 4, i1 fals ret void } %class.Simple = type { i32 } -define void @Simple(%class.Simple* %classvariable.this, i32 %i) #0 +define void @Simple(%class.Simple* %classvariable.this, i32 %i) { %classvariable.this.addr = alloca %class.Simple, align 4 %i.addr = alloca i32, align 4 @@ -31,15 +30,15 @@ store i32 %var6, i32* %var7, align 4 call void @llvm.memcpy.p0i8.p0i8.i64(i8* %var8, i8* %var9, i64 4, i32 4, i1 false) ret void } -define void @kotlin_main() #0 +define void @main() { -%var11 = call i8* @malloc_static(i32 4) +%var11 = call i8* @malloc(i32 4) %var10 = bitcast i8* %var11 to %class.Simple* call void @Simple(%class.Simple* %var10, i32 5) %managed.s.1 = alloca %class.Simple, align 4 %var12 = load %class.Simple* %var10, align 4 store %class.Simple %var12, %class.Simple* %managed.s.1, align 4 -%var14 = call i8* @malloc_static(i32 4) +%var14 = call i8* @malloc(i32 4) %var13 = bitcast i8* %var14 to %class.ComplexRef* call void @ComplexRef(%class.ComplexRef* %var13, i32 1, %class.Simple* %managed.s.1) %managed.i.1 = alloca %class.ComplexRef, align 4 diff --git a/translator/src/main/kotlin/main.kt b/translator/src/main/kotlin/main.kt index 92c79a6085e..74d15cdca22 100644 --- a/translator/src/main/kotlin/main.kt +++ b/translator/src/main/kotlin/main.kt @@ -10,7 +10,7 @@ fun main(args: Array) { } val disposer = Disposer.newDisposable() - val state = parseAndAnalyze(args.asList(), disposer, arm = true) + val state = parseAndAnalyze(args.asList(), disposer, arm = false) val files = state.environment.getSourceFiles() if (files.isEmpty()) { diff --git a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/LLVMBuilder.kt b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/LLVMBuilder.kt index 9f48ebbb23c..017baa6abf7 100644 --- a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/LLVMBuilder.kt +++ b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/LLVMBuilder.kt @@ -22,7 +22,7 @@ class LLVMBuilder(val arm: Boolean) { private fun initBuilder() { val declares = arrayOf( "declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture readonly, i64, i32, i1)", - "declare i8* @malloc_static(i32)") + "declare i8* @${if (arm) "malloc_static" else "malloc"}(i32)") declares.forEach { globalCode.appendln(it) } @@ -168,7 +168,7 @@ class LLVMBuilder(val arm: Boolean) { val allocedVar = getNewVariable(LLVMCharType(), pointer = 1) val size = if (target.pointer > 0) POINTER_SIZE else target.type.size - val alloc = "$allocedVar = call i8* @malloc_static(i32 $size)" + val alloc = "$allocedVar = call i8* @${if (arm) "malloc_static" else "malloc"}(i32 $size)" localCode.appendln(alloc) val cast = "$target = bitcast ${allocedVar.getType()} $allocedVar to ${target.getType()}"