Commit Graph

16 Commits

Author SHA1 Message Date
Antoni Boucher
5c2dec038c Add used function attribute from inline asm 2022-08-27 17:26:46 -04:00
Antoni Boucher
672eec3055 Support symbol visibility 2022-08-03 19:34:47 -04:00
Antoni Boucher
85036a5afa Use gccjit from repo 2022-07-06 15:24:53 -04:00
Antoni Boucher
1c4ca283df Support #[target(enable)] function attribute 2022-07-06 15:24:53 -04:00
yvt
f26eb5a7a2 Update gccjit 2022-05-25 23:58:53 +09:00
Antoni Boucher
4d7de81199 Add feature for future libgccjit 12 release 2022-04-13 23:01:01 -04:00
Antoni Boucher
02970a6ca8 Add support for target builtins 2022-03-29 21:41:17 -04:00
Antoni Boucher
dcc0853a34 Add support for on_stack parameters 2022-02-27 22:23:03 -05:00
bjorn3
ac4baf3fd6 Allow unreachable blocks for now
The cleanup blocks normally executed when unwinding are unreachable for
now as unwinding is not yet implemented.
2022-02-26 19:35:33 +01:00
antoyo
41f20fa3a5
Support 128-bit integers on platforms without native support (#103)
* Use sized integer types

* Add support for integer types not supported on some platforms

* Add feature to test non-native integers in CI
2022-01-30 21:45:14 -05:00
antoyo
5dc660b106
Support upgrading the alignment of a global variable (#121)
* Renable failing test
* Update to newest gccjit.rs
2022-01-26 08:57:17 -05:00
antoyo
2989a25273
Feature/global rvalue initialization petter tomner (#111)
* Use new initialization functions

* Fix for new reflection patch

* Fix for new TLS patch
2021-12-15 23:48:10 -05:00
bjorn3
08183f9f2d
Remove unused dependency on object (#102) 2021-10-31 12:17:13 -04:00
antoyo
64c561dc22
Fix global initialization (#91)
* Make define_global() return a RValue directly
* Return LValue in functions declaring a global variable
* Remove useless cast
* Fix bytes_in_context to use an array rvalue
* Remove global_names which is unused
* Make const_struct create a constant struct
* Correctly initialize global in static_addr_of_mut
* Fix global variable initialization
* Remove workaround for ARGV
2021-09-26 12:20:02 -04:00
Commeownist
7c707e4b95
Implement basic inline asm support (#72)
* Implement basic support for inline assembly

* Disable LTO

We don't support it yet at all

* Handle `inout(reg) var` correctly

Turns out that `+` readwrite output registers cannot be tied with
input variables.

* Add limited support for llvm_asm!

* Handle CHANNEL correctly

* Add support for arbitrary explicit registers

* Handle symbols properly

* Add rudimentary asm tests

* Exclude llvm_asm! tests from tests runs

* Insert `__builtin_unreachable()` after diverging asm blocks
2021-09-05 11:26:01 -04:00
Antoni Boucher
afae271d5d Initial commit 2021-08-12 21:46:50 -04:00