gingerBill
061b14e164
Allow intrinsics.concatenate to be variadic
2025-10-10 11:48:18 +01:00
gingerBill
1572ed57b6
Add intrinsics.concatenate
2025-10-10 11:40:36 +01:00
gingerBill
41c523faa5
Add intrinsics.type_is_raw_union
2025-10-09 10:10:49 +01:00
gingerBill
e001e402c2
Add intrinsics.type_is_cstring and intrinsics.type_is_cstring16
2025-10-09 09:55:14 +01:00
Harold Brenes
5af13f5d53
Automatically emit objc_msgSend calls when calling imported or implemented Objective-C methods
...
- Add intrinsics.objc_super()
- Emit objc_msgSendSuper2 calls when an objc method call is combined with objc_super(self)
- Fix objc_block return value ABI for large struct returns
- Fix objc_implement method wrappers bad ABI for large struct returns and indirect args
- Simplify parameter forwarding for objc_imlpement methods
- Add intrinsics.objc_instancetype to mimi Objective-C instancetype* returns
This facilitates returning the correct type on subclasses when calling mehtods
such as `alloc`, `init`, `retain`, etc.
- Refactor Objective-C class implementations generation so that hierarchies are properly initialized
- Better codegen for context passing with ivar-based autocontext
- Allow @superclass on imported objc-c objects
- Better codegen for block forwarding invoker, arguments are forwarded directly
2025-09-29 20:37:48 -04:00
gingerBill
a0e9a98d61
Merge pull request #5547 from harold-b/hb.objc_block_intrinsic
...
Implements the Apple block ABI.2010.3.16 natively via `objc_block` intrinsic
2025-08-07 16:08:38 +01:00
gingerBill
34b4b84b64
Add intrinsics.type_canonical_name
2025-08-07 12:34:41 +01:00
Harold Brenes
9d8e15b3af
Implementes the block ABI.2010.3.16 natively via the objc_block intrinsic and the Objc_Block builtin type.
...
See: https://clang.llvm.org/docs/Block-ABI-Apple.html
2025-08-06 20:27:31 -04:00
gingerBill
eae43f1225
Merge branch 'master' into bill/utf16-strings
2025-08-05 15:07:06 +01:00
gingerBill
c910b5e583
Add intrinsics.type_is_nearly_simple_compare
2025-08-04 12:13:30 +01:00
gingerBill
ae02d3d02d
Begin supporting string16 across the core library
2025-08-02 11:55:16 +01:00
Colin Davidson
9a2e6fff48
switch to read_cycle_counter_frequency from arm64_read_cycle_counter_freq, trap on invalid arch
2025-07-29 12:21:46 -07:00
Colin Davidson
1848e0df05
use the correct frequency for the arm tsc timer
2025-07-28 15:10:42 -07:00
gingerBill
19a075211f
Merge pull request #5442 from jon-lipstate/table_lookup
...
table lookup simd intrinsic
2025-07-22 11:14:54 +01:00
Jon Lipstate
ecd41b155d
rename table_lookup to runtime_swizzle
2025-07-16 21:54:24 -07:00
FourteenBrush
8cbf75c928
Add type_enum_is_contiguous intrinsic
2025-07-11 17:03:49 +02:00
Jon Lipstate
019084a17f
table lookup intrinsic
2025-07-05 13:55:14 -07:00
iarkn
3152be01b9
Add intrinsics.type_is_bit_field proc
2025-06-06 16:01:13 +02:00
0xrsp
ea806f1d5e
new compiler intrinsics type_integer_to_unsigned,type_integer_to_signed
2025-05-15 01:00:40 +09:30
gingerBill
d2d4ac8120
Add compress_values
2025-05-12 15:29:43 +01:00
gingerBill
92df892f25
Merge pull request #5064 from harold-b/hb/objc-classes
...
Add support for Objective-C class implementation
2025-05-08 12:58:33 +01:00
Barinzaya
dd5b7852ce
Added alternate reduce-add/reduce-mul intrinsics.
...
The new reduce_add/reduce_mul procs perform the corresponding arithmetic
reduction in different orders than sequential order. These alternative
orders can often offer better SIMD hardware utilization.
Two different orders are added: pair-wise (operating on pairs of
adjacent elements) or bisection-wise (operating element-wise on the
first and last N/2 elements of the vector).
2025-05-05 16:38:45 -04:00
gingerBill
36945079f8
Add intrinsics.simd_indices
2025-05-05 11:41:54 +01:00
Harold Brenes
5f0b47c373
Implement all checker specification for Objective-C class implementations and objc_ivar_get intrinsic
2025-05-03 00:59:33 -04:00
Harold Brenes
998ed79738
Go back to objc_ivar_get instead of ivar_get.
2025-04-30 20:43:05 -04:00
Harold Brenes
f3923ed666
Fix indentations
...
Fix Objective-C wrapper procs not forwarding return value
2025-04-27 22:55:53 -04:00
Harold Brenes
a3de9c8de4
Add initial support for Objective-C class implementation
2025-04-20 21:53:46 -04:00
Barinzaya
4afedbc051
Added simd_extract_lsbs intrinsic as well.
...
Equivalent to the simd_extract_msbs intrinsic, except it extracts the
least significant bit of each element instead.
2025-02-24 08:49:57 -05:00
Barinzaya
33a3aab791
Added simd_extract_msbs intrinsic.
2025-02-24 08:39:32 -05:00
Laytan
d299d4e1cd
riscv: add an error when atomics are used without the atomics extension
2024-08-25 21:17:00 +02:00
gingerBill
d0eaf7642d
Add intrinsics.type_has_shared_fields
2024-08-24 14:36:18 +01:00
Laytan Laats
efe68c2e24
posix: add package
2024-08-14 01:44:35 +02:00
gingerBill
f56abf3780
Add intrinsics.masked_expand_load and intrinsics.masked_compress_store
2024-08-05 14:54:09 +01:00
gingerBill
84ac56f778
Add intrinsics.simd_masked_load and intrinsics.simd_masked_store
2024-08-05 14:08:41 +01:00
gingerBill
7e701d1677
Add intrinsics.simd_gather and `intrinsics.simd_scatter
2024-08-05 13:46:24 +01:00
gingerBill
90fc52c2ee
Rename add_sat -> saturating_add
2024-08-05 13:19:01 +01:00
gingerBill
9a01a13914
Add simd_reduce_any and simd_reduce_all
2024-08-05 13:13:19 +01:00
gingerBill
23ca27f40b
Add intrinsics add_sat and sub_sat
2024-07-16 00:48:17 +01:00
gingerBill
544959326b
Add intrinsics.type_struct_has_implicit_padding #3844
2024-07-01 12:13:35 +01: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
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
5473758467
Add intrinsics type_is_matrix_row_major & type_is_matrix_column_major
2024-05-20 10:15:21 +01:00
gingerBill
b0f0e4d02a
Add intrinsics type_bit_set_elem_type & type_bit_set_underlying_type
2024-05-09 15:47:09 +01:00
Laytan Laats
25f1d0906d
compiler: improve target features support
2024-05-02 00:59:52 +02:00
gingerBill
a642ea0b28
Add intrinsics.type_bit_set_backing_type
2024-02-23 11:38:23 +00:00
gingerBill
d04c82e547
Move matrix compiler builtins to intrinsics; alias within core_builtin_matrix.odin
2024-01-28 21:20:30 +00:00
jakubtomsu
160b23f991
Remove len,cap,min,max and implement type_union_base_tag_value, type_union_variant_count
2023-10-27 11:23:26 +02:00
jakubtomsu
625cb03284
Rename type_union_tag to type_union_tag_type
2023-10-25 20:23:24 +02:00
jakubtomsu
c76ab138eb
Naming, use variant index instead of tag
2023-10-24 22:15:33 +02:00
jakubtomsu
16c176dc89
Implement new union intrinsics and add support for len/cap
2023-10-23 22:03:06 +02:00