Commit Graph

79 Commits

Author SHA1 Message Date
gingerBill
e331b0647e Add simd_rotate_left simd_rotate_right` 2022-05-26 11:48:04 +01:00
gingerBill
35502816c7 Add simd_add_sat simd_sub_sat 2022-05-26 11:24:10 +01:00
gingerBill
7ec0236fbf Add simd_reverse 2022-05-26 11:14:22 +01:00
gingerBill
0fd43c1a0b Add simd.{sqrt, ceil, floor, trunc, nearest} 2022-05-26 11:02:02 +01:00
gingerBill
b95ca80f85 Fix simd_shuffle 2022-05-26 00:39:34 +01:00
gingerBill
83d880a94a Remove unneeded mask 2022-05-26 00:37:48 +01:00
gingerBill
cde6a2f7a5 Make simd_shuffle act closer to swizzle 2022-05-26 00:36:24 +01:00
gingerBill
7002c94a63 Add intrinsics.simd_select 2022-05-25 23:34:41 +01:00
gingerBill
140c00aa0c intrinsics.simd_shuffle 2022-05-25 23:01:33 +01:00
gingerBill
10e4de3c01 Add intrinsics.simd_reduce_* 2022-05-25 22:04:47 +01:00
gingerBill
b168bf9460 Rename simd_insert to simd_replace 2022-05-25 21:00:00 +01:00
gingerBill
4c4480104d Add simd_extract and simd_insert 2022-05-25 20:27:14 +01:00
gingerBill
81dd727f75 Implement backend for simd intrinsics 2022-05-25 18:49:17 +01:00
gingerBill
184d1c57b1 Change atomic.wait32 and atomic.notify selection 2022-05-21 13:37:00 +01:00
gingerBill
e48f41165c Begin work on Atomics for wasm32 (wait and notify intrinsics) 2022-05-21 12:58:48 +01:00
Tobias Mollstam
846930a07f emit optnone and noinline for all procs when opt set to minimal 2022-05-18 07:07:20 +02:00
gingerBill
8023c8abc7 Fix @(disable=...) 2022-05-02 14:10:02 +01:00
gingerBill
18ad6c33ef Implement syscall for arm32 2022-05-01 23:32:31 +01:00
gingerBill
a232c0888c intrinsics.atomic_type_is_lock_free 2022-04-02 14:38:42 +01:00
gingerBill
6636376a81 Correct weak handling 2022-03-31 00:58:01 +01:00
gingerBill
203382461b Replace the atomic intrinsics
Matching C11 in style
2022-03-31 00:14:49 +01:00
gingerBill
72ae061769 Add intrinsics.wasm_memory_grow intrinsics.wasm_memory_size 2022-03-30 17:29:37 +01:00
gingerBill
3a4630e6b4 Correct atomic_cxchg_* atomic_cxchgweak_* intrinsics behaviour to monotonic on failure for acq, rel, and acqrel 2022-03-30 16:15:23 +01:00
gingerBill
a7adb2fb6e Merge branch 'master' into freestanding_amd64 2022-03-14 11:02:59 +00:00
gingerBill
f907516cbd #Fix 1615 Replace llvm.readcyclecounter with cntvct_el0 on arm64 2022-03-12 10:48:31 +00:00
Joakim Hentula
a5dde78f08 Add relative slice to type checks for built in len 2022-03-02 16:44:33 +00:00
gingerBill
196bd735d4 Replace local @(no_red_zone) with global -disable-red-zone 2022-02-23 11:29:36 +00:00
gingerBill
493bc653b5 Add @(no_red_zone) for procedures 2022-02-23 11:23:27 +00:00
gingerBill
ba61d911da Remove dead code 2022-02-20 13:26:27 +00:00
gingerBill
ffc45e8cc2 Add intrinsics.constant_utf16_cstring 2022-02-17 20:48:37 +00:00
gingerBill
db6bd9b358 Allow sysv and win64 calling conventions to be used on any platform on amd64 2022-02-16 16:03:49 +00:00
gingerBill
e011d812ca Improve debug information for direct procedure parmaters 2022-02-16 14:39:08 +00:00
gingerBill
0738822dda Change how parameter and variables are given debug values 2022-02-16 13:25:31 +00:00
gingerBill
7386ca9272 Add new objc intrinsics: objc_(register|find)_(selector|class) 2022-02-14 11:21:21 +00:00
gingerBill
c5d348515d Add intrinsics.type_is_subtype_of; intrinsics.objc_selector_name 2022-02-08 22:59:37 +00:00
gingerBill
0cc40db565 Begin work on support objc intrinsics 2022-02-08 17:04:55 +00:00
gingerBill
eac74631ec Correct debug information logic for procedure parameters 2022-02-01 14:11:19 +00:00
gingerBill
f6a087775e Disable early return from check_proc_info 2022-01-25 12:39:06 +00:00
gingerBill
49872e40dc Comment out calls 2022-01-24 14:46:56 +00:00
gingerBill
849fe01e70 Add lb_add_debug_local_variable call to procedure arguments 2022-01-24 14:13:24 +00:00
gingerBill
29ebe0c3c9 Rename architecture 386 to i386 2022-01-15 17:40:00 +00:00
gingerBill
9ecbadd457 Simplify procedure parameters callee logic 2022-01-15 16:16:11 +00:00
gingerBill
fb0a3ab7c1 Correct linkage for entry point procedures on Windows 2022-01-12 20:07:17 +00:00
gingerBill
7e4067c44c Begin work to move entry point code to Odin itself rather than in C++ side 2022-01-12 19:19:43 +00:00
Platin21
7a14acaa01 Fixes syscall intrinsic on macOS they use a slightly different section + register for the id 2022-01-05 16:49:58 +01:00
Platin21
8dbeed8a9f Removes unneeded lookups / Adds sret to call site which fixes the mac bug 2021-12-23 01:59:31 +01:00
gingerBill
3f038428a7 Begin minimizing Ast size 2021-11-14 15:12:37 +00:00
Yawning Angel
c430a82721 src: Fix the syscall intrinsic code generation for Linux and Windows
The old assembly generated for the syscall intrinsic did not specify
clobber constraints.  This adds RCX and R11 (that are clobbered by
the instruction itself), and memory (that is clobbered by some
system calls) to the assembly constraints.

Note: This is still incorrect on FreeBSD, which clobbers more registers
and uses the carry flag instead of -errno in rax to indicate an error.
2021-11-13 09:53:20 +00:00
gingerBill
23f0fbc376 Improve matrix->matrix casting implementation 2021-11-08 11:40:41 +00:00
gingerBill
6be104e521 Make llvm backend code use PtrMap; remove dead code 2021-11-05 16:43:53 +00:00