mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 15:48:51 +00:00
core/simd/x86: Use the none calling convention for intrinsics
The LLVM intrinsics that live under `llvm.x86` are not actual functions, so trying to invoke them as such using the platform's native C calling convention causes incorrect types to be emitted in the IR. Thanks to laytanl for assistance in testing.
This commit is contained in:
@@ -30,7 +30,7 @@ _mm_sha256rnds2_epu32 :: #force_inline proc "c" (a, b, k: __m128i) -> __m128i {
|
||||
return transmute(__m128i)sha256rnds2(transmute(i32x4)a, transmute(i32x4)b, transmute(i32x4)k)
|
||||
}
|
||||
|
||||
@(private, default_calling_convention="c")
|
||||
@(private, default_calling_convention="none")
|
||||
foreign _ {
|
||||
@(link_name="llvm.x86.sha1msg1")
|
||||
sha1msg1 :: proc(a, b: i32x4) -> i32x4 ---
|
||||
|
||||
Reference in New Issue
Block a user