rizin/subprojects
billow 19b1783c88
Improve RzIL floating-point support (#6626)
The `RzFloat` changes fix or improve:

- binary80 explicit-integer-bit, pseudo-value, infinity, and NaN handling;
- binary16 conversions;
- gradual underflow and directed rounding;
- overflow, underflow, invalid-operation, and inexact exception reporting;
- exception propagation through nested conversions and arithmetic operations;
- binary80 fused multiply-add rounding, including reduced-precision and double-rounding edge cases;
- thread-local SoftFloat state, preventing rounding state from leaking between threads.

The `RzIL` changes add scoped binary80 precision support through `RzFloatRPrecision` and `FWITH_RPREC`. The supported precisions are 32, 64, and 80. Precision scopes restore the
previous thread-local SoftFloat state after successful evaluation and evaluation failures.

Runtime rounding modes are represented explicitly by dedicated pure opcodes:

- `FCONVERT_WITH_RMODE`
- `FROUND_WITH_RMODE`
- `FSQRT_WITH_RMODE`
- `FADD_WITH_RMODE`
- `FSUB_WITH_RMODE`
- `FMUL_WITH_RMODE`
- `FDIV_WITH_RMODE`
- `FMOD_WITH_RMODE`

Their rounding-mode operand is a 32-bit IL bitvector whose values correspond to `RzFloatRMode`: RNE, RNA, RTP, RTN, and RTZ. Invalid operand widths are rejected by validation,
while invalid runtime values cause evaluation to fail with an error.

Dedicated opcodes keep runtime-controlled floating-point expressions compact. This is useful for architectures whose rounding mode is selected from register state and avoids the
expression duplication caused by expanding every operation into nested `ITE` branches.

The new operations are supported by:

- construction, duplication, and destruction;
- type and operand validation;
- VM evaluation;
- plain, Unicode, and JSON exporters;
- graph output and opcode stringification.

`FEXCEPT` now emits a VM event only when the queried exception is present, while preserving exceptions raised by nested conversions and arithmetic operations.
2026-08-10 01:06:17 +08:00
..
nettle build: Improved meson-build to use rizin as subproject (#4684) 2024-10-29 23:59:42 +08:00
packagefiles Improve RzIL floating-point support (#6626) 2026-08-10 01:06:17 +08:00
ptrace-wrap Move remaining things from shlr/ to meson subprojects (#2126) 2021-12-22 09:20:39 +08:00
rizin-math-parser Rewrite the RzNum parser and calculator on tree-sitter (#4326) 2026-07-24 02:57:27 +08:00
rizin-shell-parser Regenerate shell parser 2026-06-21 01:09:02 +08:00
rzar subprojects/rzar: fix crash (#6516) 2026-06-17 02:09:11 +08:00
rzgdb Implement file download from the remote machine in GDB protocol (#6576) 2026-07-18 14:49:31 +08:00
rzheap Refactor windows heap parser (#6014) 2026-04-10 15:46:11 +08:00
rzqnx Fix unused-but-set-variable 2026-06-01 01:45:59 +08:00
rzspp Bump Capstone v6 to Alpha10 (#6644) 2026-08-04 13:00:50 +00:00
rzw32dbg_wrap Move remaining things from shlr/ to meson subprojects (#2126) 2021-12-22 09:20:39 +08:00
rzwinkd Fix Illumos/Solaris platform support (#5972) 2026-02-27 13:01:40 +08:00
xxhash build: Improved meson-build to use rizin as subproject (#4684) 2024-10-29 23:59:42 +08:00
yxml SPDX Copyright text for all files based on history 2021-03-05 19:39:15 +08:00
blake2.wrap blake2 hash support (#5995) 2026-03-06 22:17:59 +08:00
blake3.wrap subprojects: bump blake3 to 2de3cb1 (#5091) 2025-04-18 23:13:12 +08:00
capstone-next.wrap Bump Capstone v6 to Alpha10 (#6644) 2026-08-04 13:00:50 +00:00
capstone-v4.wrap Use git depth 1 for Meson subprojects (#4138) 2024-01-22 21:14:32 +08:00
capstone-v5.wrap Use git depth 1 for Meson subprojects (#4138) 2024-01-22 21:14:32 +08:00
capstone-v6.wrap Bump Capstone v6 to Alpha10 (#6644) 2026-08-04 13:00:50 +00:00
libdemangle.wrap Bump rz-libdemangle (#6575) 2026-06-29 10:51:14 +08:00
liblzma.wrap subprojects: update xz to 5.8.3 2026-06-21 05:16:57 +08:00
libmspack.wrap Use git depth 1 for Meson subprojects (#4138) 2024-01-22 21:14:32 +08:00
libzip.wrap subprojects: update libzip 1.11.4 (#5701) 2025-12-30 05:29:39 +08:00
lz4.wrap subprojects: update lz4, xz, zstd libraries (#4958) 2025-03-04 02:44:53 +08:00
pcre2.wrap Updated to pcre2 10.47 (#5830) 2026-01-27 14:44:51 +00:00
pcre2_cross_native.wrap Updated to pcre2 10.47 (#5830) 2026-01-27 14:44:51 +00:00
rizin-grammar-c.wrap subprojects/rizin-grammar-c: update to tree-sitter-0.26.9 2026-06-21 01:09:02 +08:00
rizin-math-parser.wrap Rewrite the RzNum parser and calculator on tree-sitter (#4326) 2026-07-24 02:57:27 +08:00
sigdb.wrap Use git depth 1 for Meson subprojects (#4138) 2024-01-22 21:14:32 +08:00
softfloat.wrap Improve RzIL floating-point support (#6626) 2026-08-10 01:06:17 +08:00
softfloat_cross_native.wrap Improve RzIL floating-point support (#6626) 2026-08-10 01:06:17 +08:00
tree-sitter.wrap subprojects: update tree-sitter to v0.26.9 2026-06-21 01:09:02 +08:00
zlib.wrap subprojects: update zlib to 1.3.2 2026-06-21 05:16:57 +08:00
zstd.wrap subprojects: update lz4, xz, zstd libraries (#4958) 2025-03-04 02:44:53 +08:00
zydis.wrap Migrate from Capstone to Zydis (x86 architecture) (#5164) 2025-05-23 13:03:46 +00:00