gingerBill
2e0c5fefde
Reuse the slice value too for variadic parameters (LLVM >= 13)
2024-07-14 14:07:36 +01:00
gingerBill
6959554040
Calculate size and alignment, and reuse memory for all variadic calls within a procedure body
2024-07-14 13:44:47 +01:00
gingerBill
5027c7081e
Reuse slice variable for variadic parameters
2024-07-14 12:50:33 +01:00
gingerBill
3533094cc2
Restrict #no_capture to pointer-like types only
2024-07-14 12:44:13 +01:00
gingerBill
5ce6676914
Make #no_capture map to nocapture
2024-07-14 12:41:16 +01:00
gingerBill
3dff83f3dc
Mock out #no_capture for future use
2024-07-14 12:39:30 +01:00
gingerBill
edc793d7c1
Add #no_capture args: ..T to reuse the backing array stack memory
2024-07-14 11:39:05 +01:00
Laytan Laats
1a20b78633
remove misleading @(optimization_mode) values and make "none" inhibit optimizations
2024-07-08 21:06:57 +02:00
Laytan Laats
b79d7e6917
disallow non-global foreign import of variables on wasm
2024-06-28 01:34:09 +02: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
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
2a526058b3
fix passing pointer to constant in non-odin cc
2024-06-04 20:15:47 +02:00
gingerBill
8dec4f6ed3
Merge pull request #3570 from jasonKercher/linux-arm32
...
Get the compiler to build and work on arm32 Linux
2024-05-20 00:05:57 +01:00
gingerBill
1207d64c64
Fix intrinsics.ptr_sub
2024-05-19 23:55:45 +01:00
jason
20752d904b
fix 6 argument syscall on i386
2024-05-10 23:06:49 -04:00
jasonkercher
2183140e71
arm32 now compiles and runs demo
2024-05-10 13:24:43 -04:00
Laytan Laats
25f1d0906d
compiler: improve target features support
2024-05-02 00:59:52 +02:00
Laytan Laats
90369b669b
fix direct proc args debug info
2024-04-22 19:36:24 +02:00
Laytan Laats
b150f49c46
fix wasm atomics
...
Fixes #2745
2024-04-06 23:32:38 +02:00
Laytan Laats
a7056f2b4f
fix lbArg_Ignore logic
...
Fixes #2698
2024-04-04 16:58:22 +02:00
Laytan Laats
fc30bde0f6
fix untyped nil into c varargs
...
Fixes #2842
2024-04-02 18:49:35 +02:00
Laytan Laats
a8d8696e2f
fix named arguments with #c_vararg
...
Previously `args=1`, `args={}`, `args={1, 2, 3}` would all crash the
compiler. Now it passes them correctly, and if given a compound literal,
the values are expanded into the call so you can use a named arg while
passing multiple values.
Fixes #3168
2024-04-02 17:25:11 +02:00
gingerBill
a7bab89c93
Unify min/max semantics for simd_(min|max)
2024-03-06 15:07:21 +00:00
gingerBill
84a7e03178
Merge pull request #3220 from laytan/promote-types-in-c-varargs
...
Promote types in `#c_varargs` according to C rules
2024-02-28 10:49:28 +00:00
gingerBill
5107bdc06b
Make lb_type_info use a procedure to load the global value
2024-02-27 15:45:53 +00:00
Laytan Laats
f6f3a760bc
Promote types in #c_varargs according to C rules
2024-02-21 22:05:11 +01:00
gingerBill
5c4485f657
Add #load_directory(path: string) > []runtime.Load_Directory_File
2024-02-09 15:18:29 +00:00
gingerBill
c1d853a24e
Remove dead code
2024-01-28 17:32:34 +00:00
gingerBill
f4782157d3
Implement instrumentation pass
2024-01-07 21:34:44 +00:00
gingerBill
3bf7b416e7
Fix builtin.quaternion generation
2024-01-05 14:36:58 +00:00
gingerBill
0b83e3dae5
Enforce naming the parameters with builtin.quaternion to reduce confusion
2024-01-05 14:29:14 +00:00
korvahkh
759e342872
Fix #3056
2023-12-29 22:39:34 -06:00
flysand7
a3a3156ddd
Fix-up inline asm for i386 syscalls emit
2023-10-30 02:03:35 +11:00
Morten Hauke Solvang
fb5bb1cd83
llvm: specify calling convention on call
...
Looks like the compiler only was specifying the calling convention on
function declarations, but not on function calls.
But LLVM seems to produce "bad" code when optimizing with level -O2
unless you specify the same calling convention on the call too.
2023-10-13 21:21:54 +02:00
gingerBill
23054138c2
Remove debug message
2023-09-29 12:12:14 +01:00
gingerBill
63f755554b
Rename simd bitwise operations from intrinsics.simd_and to intrinsics.simd_bit_and etc
2023-09-28 16:42:08 +01:00
gingerBill
94d68c1f22
Fix ptr != ptr type cast problem in LLVM 17
2023-09-26 11:58:12 +01:00
gingerBill
963559676e
Fix build times for -o:<string> in LLVM-17
2023-09-21 16:48:00 +01:00
gingerBill
4aa9d34b3d
Add attributes for sanitize_memory and sanitize_thread
2023-09-21 11:20:13 +01:00
gingerBill
38d2a0ddb9
Add sanitize_address attribute to all normal packages
2023-09-21 11:13:26 +01:00
William Roe
5d8b78cb88
Fix read_cycle_counter intrinsic on arm64
...
Running this code with the hard-coded x9 register results in not
returning the cycle count, but some other value.
This code (using $0 as the register), works on arm64 Linux and Darwin.
2023-08-07 21:18:56 +01:00
gingerBill
c91898a888
Remove #relative slices; Replace with #relative multi-pointers
2023-08-05 16:05:39 +01:00
gingerBill
afa8eb2d6f
Fix #2699
2023-08-05 15:04:14 +01:00
gingerBill
65206fe33e
Go through loads of TODOs
2023-08-01 11:39:04 +01:00
gingerBill
3072479c3c
Generalize name mangling rule to have a singular definition for a name separator
2023-07-07 23:52:56 +01:00
gingerBill
3c0f1caa41
Fix #2606
2023-06-26 17:03:40 +01:00
gingerBill
ea76e09ea7
Fix empty varargs
2023-06-21 14:30:39 +01:00
gingerBill
c9fb078c0f
Handle #c_vararg
2023-06-21 14:07:14 +01:00
gingerBill
1800030356
Correct deferred procedures
2023-06-21 14:01:46 +01:00
gingerBill
43ba2c6226
Fix constant parameter passing
2023-06-21 12:10:07 +01:00