Fix x86_64 ABI small issue (#1174)

* Fix x86_64 ABI small issue Update tests for fix.

---------

Co-authored-by: Christoffer Lerno <christoffer@aegik.com>
This commit is contained in:
David
2024-03-25 02:39:26 -06:00
committed by GitHub
parent 6cade814e1
commit 204fb211ac
4 changed files with 14 additions and 20 deletions

View File

@@ -140,20 +140,20 @@ entry:
store %"any*" %2, ptr %varargslots, align 16
%3 = call i64 @std.io.printfn(ptr %retparam, ptr @.str, i64 12, ptr %varargslots, i64 1)
call void @llvm.memcpy.p0.p0.i32(ptr align 8 %literal, ptr align 8 @.__const, i32 16, i1 false)
%lo1 = load i64, ptr %literal, align 8
%lo1 = load i32, ptr %literal, align 8
%ptradd2 = getelementptr inbounds i8, ptr %literal, i64 8
%hi3 = load ptr, ptr %ptradd2, align 8
%4 = call i8 @"std.collections.map$int$test.Foo$.HashMap.set"(ptr %map, i32 1, i64 %lo1, ptr %hi3)
%4 = call i8 @"std.collections.map$int$test.Foo$.HashMap.set"(ptr %map, i32 1, i32 %lo1, ptr %hi3)
%ptradd5 = getelementptr inbounds i8, ptr %map, i64 32
%5 = insertvalue %"any*" undef, ptr %ptradd5, 0
%6 = insertvalue %"any*" %5, i64 ptrtoint (ptr @"$ct.uint" to i64), 1
store %"any*" %6, ptr %varargslots4, align 16
%7 = call i64 @std.io.printfn(ptr %retparam6, ptr @.str.1, i64 12, ptr %varargslots4, i64 1)
call void @llvm.memcpy.p0.p0.i32(ptr align 8 %literal7, ptr align 8 @.__const.2, i32 16, i1 false)
%lo8 = load i64, ptr %literal7, align 8
%lo8 = load i32, ptr %literal7, align 8
%ptradd9 = getelementptr inbounds i8, ptr %literal7, i64 8
%hi10 = load ptr, ptr %ptradd9, align 8
%8 = call i8 @"std.collections.map$int$test.Foo$.HashMap.set"(ptr %map, i32 1, i64 %lo8, ptr %hi10)
%8 = call i8 @"std.collections.map$int$test.Foo$.HashMap.set"(ptr %map, i32 1, i32 %lo8, ptr %hi10)
%ptradd12 = getelementptr inbounds i8, ptr %map, i64 32
%9 = insertvalue %"any*" undef, ptr %ptradd12, 0
%10 = insertvalue %"any*" %9, i64 ptrtoint (ptr @"$ct.uint" to i64), 1
@@ -187,10 +187,10 @@ after_check18: ; preds = %entry, %after_check
store %"any*" %24, ptr %varargslots23, align 16
%25 = call i64 @std.io.printfn(ptr %retparam25, ptr @.str.6, i64 9, ptr %varargslots23, i64 1)
call void @llvm.memcpy.p0.p0.i32(ptr align 8 %literal28, ptr align 8 @.__const.7, i32 16, i1 false)
%lo29 = load i64, ptr %literal28, align 8
%lo29 = load i32, ptr %literal28, align 8
%ptradd30 = getelementptr inbounds i8, ptr %literal28, i64 8
%hi31 = load ptr, ptr %ptradd30, align 8
%26 = call i8 @"std.collections.map$int$test.Foo$.HashMap.set"(ptr %map, i32 7, i64 %lo29, ptr %hi31)
%26 = call i8 @"std.collections.map$int$test.Foo$.HashMap.set"(ptr %map, i32 7, i32 %lo29, ptr %hi31)
%lo33 = load i64, ptr @std.core.mem.allocator.thread_allocator, align 8
%hi34 = load ptr, ptr getelementptr inbounds (i8, ptr @std.core.mem.allocator.thread_allocator, i64 8), align 8
%27 = call { ptr, i64 } @"std.collections.map$int$test.Foo$.HashMap.value_new_list"(ptr %map, i64 %lo33, ptr %hi34)

View File

@@ -140,20 +140,20 @@ entry:
store %"any*" %2, ptr %varargslots, align 16
%3 = call i64 @std.io.printfn(ptr %retparam, ptr @.str, i64 12, ptr %varargslots, i64 1)
call void @llvm.memcpy.p0.p0.i32(ptr align 8 %literal, ptr align 8 @.__const, i32 16, i1 false)
%lo1 = load i64, ptr %literal, align 8
%lo1 = load i32, ptr %literal, align 8
%ptradd2 = getelementptr inbounds i8, ptr %literal, i64 8
%hi3 = load ptr, ptr %ptradd2, align 8
%4 = call i8 @"std.collections.map$int$test.Foo$.HashMap.set"(ptr %map, i32 1, i64 %lo1, ptr %hi3)
%4 = call i8 @"std.collections.map$int$test.Foo$.HashMap.set"(ptr %map, i32 1, i32 %lo1, ptr %hi3)
%ptradd5 = getelementptr inbounds i8, ptr %map, i64 32
%5 = insertvalue %"any*" undef, ptr %ptradd5, 0
%6 = insertvalue %"any*" %5, i64 ptrtoint (ptr @"$ct.uint" to i64), 1
store %"any*" %6, ptr %varargslots4, align 16
%7 = call i64 @std.io.printfn(ptr %retparam6, ptr @.str.1, i64 12, ptr %varargslots4, i64 1)
call void @llvm.memcpy.p0.p0.i32(ptr align 8 %literal7, ptr align 8 @.__const.2, i32 16, i1 false)
%lo8 = load i64, ptr %literal7, align 8
%lo8 = load i32, ptr %literal7, align 8
%ptradd9 = getelementptr inbounds i8, ptr %literal7, i64 8
%hi10 = load ptr, ptr %ptradd9, align 8
%8 = call i8 @"std.collections.map$int$test.Foo$.HashMap.set"(ptr %map, i32 1, i64 %lo8, ptr %hi10)
%8 = call i8 @"std.collections.map$int$test.Foo$.HashMap.set"(ptr %map, i32 1, i32 %lo8, ptr %hi10)
%ptradd12 = getelementptr inbounds i8, ptr %map, i64 32
%9 = insertvalue %"any*" undef, ptr %ptradd12, 0
%10 = insertvalue %"any*" %9, i64 ptrtoint (ptr @"$ct.uint" to i64), 1
@@ -187,10 +187,10 @@ after_check18: ; preds = %entry, %after_check
store %"any*" %24, ptr %varargslots23, align 16
%25 = call i64 @std.io.printfn(ptr %retparam25, ptr @.str.6, i64 9, ptr %varargslots23, i64 1)
call void @llvm.memcpy.p0.p0.i32(ptr align 8 %literal28, ptr align 8 @.__const.7, i32 16, i1 false)
%lo29 = load i64, ptr %literal28, align 8
%lo29 = load i32, ptr %literal28, align 8
%ptradd30 = getelementptr inbounds i8, ptr %literal28, i64 8
%hi31 = load ptr, ptr %ptradd30, align 8
%26 = call i8 @"std.collections.map$int$test.Foo$.HashMap.set"(ptr %map, i32 7, i64 %lo29, ptr %hi31)
%26 = call i8 @"std.collections.map$int$test.Foo$.HashMap.set"(ptr %map, i32 7, i32 %lo29, ptr %hi31)
%lo33 = load i64, ptr @std.core.mem.allocator.thread_allocator, align 8
%hi34 = load ptr, ptr getelementptr inbounds (i8, ptr @std.core.mem.allocator.thread_allocator, i64 8), align 8
%27 = call { ptr, i64 } @"std.collections.map$int$test.Foo$.HashMap.value_new_list"(ptr %map, i64 %lo33, ptr %hi34)