Commit Graph

5344 Commits

Author SHA1 Message Date
Feoramund
33270f14a4 Fix #3739 2024-06-12 15:31:43 -04:00
Feoramund
5b5402fb23 Add intrinsics.syscall_bsd
This is a BSD-style syscall that checks for a high Carry Flag as the
error state. If the CF is high, the boolean return value is false, and
if it is low (no errors) then the boolean return value is true.
2024-06-12 13:07:13 -04:00
gingerBill
c5f7788652 Check to see if matrices are exactly the same type 2024-06-12 12:54:57 +01:00
gingerBill
f57c03c170 Improve matrix type hinting rules a little 2024-06-12 12:40:29 +01:00
gingerBill
eaf1d88287 Merge pull request #3734 from Feoramund/fix-3730
Fix #3730
2024-06-11 12:50:41 +01:00
gingerBill
1dc90103bd Make verification ignorable with a define flag 2024-06-11 12:30:24 +01:00
gingerBill
0b02c67cdf Minor clean up for backend 2024-06-11 12:19:52 +01:00
gingerBill
9b0e87544a Unify LLVMVerifyFunction invocations into on place 2024-06-11 12:07:22 +01:00
Feoramund
61c630bbf8 Fix #3730 2024-06-11 05:23:43 -04:00
gingerBill
f1779c85de Fix #3727 2024-06-10 18:50:53 +01:00
gingerBill
eef2aef021 Fix #3724 2024-06-10 15:07:45 +01:00
gingerBill
fa3cae2bb0 Add intrinsics.procedure_of
```odin
foo :: proc(x: $T) { fmt.println(x) }
bar :: intrinsics.procedure_of(foo(int(123))) // parameters are never ran at compile time, similar to `size_of`
bar(333) // prints 333
```
2024-06-10 15:02:34 +01:00
gingerBill
1945218f6d Improve parsing for label: #reverse for and label: #partial switch 2024-06-10 14:18:33 +01:00
Feoramund
71a812e7fe Use get_final_microarchitecture() for ODIN_MICROARCH_STRING 2024-06-10 05:30:16 -04:00
Jeroen van Rijn
741ee00b64 Merge pull request #3721 from Feoramund/add-tuning-consts
Add compilation-related constants
2024-06-10 10:31:12 +02:00
Jeroen van Rijn
d3ae70264e Merge pull request #3720 from Feoramund/fix-force-inline-err-typo
Fix typo in a `#force_inline` error message
2024-06-10 10:25:09 +02:00
Feoramund
ff7fcb6d38 Add compilation-related constants
`ODIN_VERSION_HASH` is the `git` SHA hash of the commit the Odin
compiler was built with.

`ODIN_MICROARCH_STRING` is the string passed to `-microarch` when
the program was built.

`ODIN_OPTIMIZATION_MODE` is an enum value of which optimization mode was
used to build the program.
2024-06-10 03:47:20 -04:00
Feoramund
45d1328a85 Fix typo in a #force_inline error message 2024-06-10 00:50:16 -04:00
Feoramund
8702bf00d5 Remove _ in Syntax_Error verbose message 2024-06-09 22:47:43 -04:00
Feoramund
9d28f2e18c Fix or_or_<branch> error messages 2024-06-09 22:46:45 -04:00
gingerBill
7c529e990d Add -target:freestanding_arm32 (experimental) 2024-06-09 17:48:46 +01:00
gingerBill
ef7c6b9895 Re Fix #3713 2024-06-09 14:07:07 +01:00
gingerBill
c17981ac38 Add edge case to error_operand_no_value 2024-06-09 14:02:01 +01:00
gingerBill
4b52f7fe2b Fix #3713 2024-06-09 13:35:22 +01:00
gingerBill
8fcfd8c506 Fix sign flag 2024-06-09 13:21:22 +01:00
gingerBill
e0d0dc704c Make f32(u8) etc do an immediate cast to f32(u32(u8)) in code generation 2024-06-09 13:20:48 +01:00
Jeroen van Rijn
14f08ff02b Merge pull request #3712 from laytan/fix-large-ints-amd64sysv-abi
fix large ints amd64 sysv abi
2024-06-09 11:01:31 +02:00
Jeroen van Rijn
5d5ef78de9 Merge pull request #3711 from laytan/fix-swizzle-crash
fix swizzle crash due to wrong alignment
2024-06-09 11:00:15 +02:00
Jeroen van Rijn
e595bdc805 Merge pull request #3710 from laytan/fix-unreachable-with-complex-param-or-return-inits
fix unreachable hit when param and/or return have complex inits
2024-06-09 10:59:26 +02:00
Laytan Laats
6d862cc4e5 fix unreachable hit when param and/or return have complex inits
Fixes #3630
2024-06-09 04:43:19 +02:00
Laytan Laats
3628154849 fix swizzle crash due to wrong alignment
Fixes #3691
2024-06-09 03:33:23 +02:00
Laytan Laats
9ad9236c3b fix large ints amd64 sysv abi
Fixes #3707
2024-06-09 02:47:05 +02:00
Feoramund
49f147cc86 Prevent panic when swizzle called with < 2 indices
The requirement for at least 2 indices has been sourced from
`lb_addr_swizzle` in `llvm_backend_general.cpp`, where there is an
assert to ensure the swizzle_count is `1 < n <= 4`.
2024-06-08 17:05:00 -04:00
gingerBill
be0774acc8 Add error message on return a constant slice value from a procedure 2024-06-08 16:07:28 +01:00
gingerBill
7e994b6d21 Remove empty line preventing a suggestion from happening 2024-06-08 15:42:19 +01:00
Laytan Laats
072825ac5a add MacOS 14.5 to 'core:sys/info' and 'odin report' 2024-06-07 17:42:41 +02:00
Laytan Laats
e627fcb0e6 fix not printing Error: when terminal has no color support 2024-06-07 16:58:23 +02:00
Laytan Laats
29250f2657 fix regression in test_issue_2395 2024-06-07 16:33:38 +02:00
Laytan Laats
315695b4f8 collect and show docs of defineables 2024-06-07 15:08:41 +02:00
gingerBill
68781f8dd3 Remove unnecessary Wait_Signal checks 2024-06-07 00:11:00 +01:00
gingerBill
7044a7d776 Try to fix a possible race condition with polymorphic record parameters 2024-06-06 23:55:48 +01:00
Laytan Laats
fa08690686 explicit integer conversions 2024-06-06 19:49:51 +02:00
Laytan Laats
b818a77131 check if -define is actually used 2024-06-06 19:46:01 +02:00
Laytan Laats
9a95049393 -show-defineables and -export-defineables 2024-06-06 19:44:54 +02:00
Laytan
e2eb3cdd8a fix linking on weird linuxes 2024-06-06 19:23:36 +02:00
gingerBill
039bb8794a Improve matrix_align_of logic when it has invalid inputs. 2024-06-06 17:59:12 +01:00
gingerBill
bea47db495 Allow @(rodata) on @(static) variables 2024-06-06 15:20:47 +01:00
gingerBill
9ef43fc782 Add @(rodata) 2024-06-06 15:16:34 +01:00
gingerBill
971229fe66 Fix #3686 2024-06-06 13:27:55 +01:00
gingerBill
c4ef8e7f6c Merge branch 'master' of https://github.com/odin-lang/Odin 2024-06-06 13:02:16 +01:00