-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Int128 compiler-rt methods (Int128 literal support part 1) #11206
Int128 compiler-rt methods (Int128 literal support part 1) #11206
Conversation
In rust's compiler-builtins, the method __muloti4 needed to be in AFAIK should be @[CallConvention("unadjusted")], but this is not a valid call convention in crystal. The __muloti4 specs fail on windows, but this shouldn't need SIMD. |
It seems that's a calling convention in Rust, but I don't see it listed in LLVM: https://llvm.org/docs/LangRef.html#calling-conventions I don't know what they call "unadjusted". You can put a CallConvetion annotation to functions and methods: The values there should be updated. Unfortunately I can't figure out what's this "unadjusted" in Rust... 🤔 |
I found something: rust-lang/rust#38482 (comment) Good luck! (I still think we should drop support for Int128 and UInt128) |
|
Specs fail on win32 with both LLVM 10.0 and 11.1 for me. So it appears to be something different. But don't worry about that. |
Just checked again, looks like I forgot to replace the win32_std_spec.cr 😄 |
I think this should be ready to review now |
I think this one should be reverted. We shouldn't use new compiler features in std specs. Otherwise you can't run std specs without compiling a new compiler. |
(though maybe that changed, no idea... if CI passes it's fine, maybe someone changed that rule...) |
Everything necessary to pass the specs is in the prelude, the compiler source hasn't changed. |
Co-authored-by: Johannes Müller <straightshoota@gmail.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
Includes the compiler-rt methods from #11196.
The modulo and dision methods do not work on windows due to the lack of SIMD support in crystal.