rizin/subprojects/packagefiles
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
..
blake2 blake2 hash support (#5995) 2026-03-06 22:17:59 +08:00
blake3 build: Improved meson-build to use rizin as subproject (#4684) 2024-10-29 23:59:42 +08:00
capstone-4.0.2 Migrate from Capstone to Zydis (x86 architecture) (#5164) 2025-05-23 13:03:46 +00:00
capstone-5.0.1 Migrate from Capstone to Zydis (x86 architecture) (#5164) 2025-05-23 13:03:46 +00:00
capstone-6.0.0-alpha10 Bump Capstone v6 to Alpha10 (#6644) 2026-08-04 13:00:50 +00:00
capstone-next Capstone eBPF disassembly (#6611) 2026-07-19 17:51:24 +08:00
libmspack build: Improved meson-build to use rizin as subproject (#4684) 2024-10-29 23:59:42 +08:00
libzip-1.11.4 subprojects: update libzip 1.11.4 (#5701) 2025-12-30 05:29:39 +08:00
lz4-1.10.0 subprojects: update lz4, xz, zstd libraries (#4958) 2025-03-04 02:44:53 +08:00
pcre2 Add SerenityOS Support (#5905) 2026-02-23 16:34:05 +00:00
pcre2_cross_native Add SerenityOS Support (#5905) 2026-02-23 16:34:05 +00:00
rizin-grammar-c Revert -Wno-error cancel flag (#5408) 2025-09-25 20:17:06 +08:00
softfloat/include Improve RzIL floating-point support (#6626) 2026-08-10 01:06:17 +08:00
tree-sitter-0.26.9 subprojects: update tree-sitter to v0.26.9 2026-06-21 01:09:02 +08:00
xz-5.8.3 subprojects: update xz to 5.8.3 2026-06-21 05:16:57 +08:00
zlib-1.3.2 subprojects: update zlib to 1.3.2 2026-06-21 05:16:57 +08:00
zstd-1.5.7 Prevent installation of libzstd.pc (#5008) 2025-03-18 00:39:59 +08:00
zydis Patch Zydis for Mac OS X ppc support (Fix #6584) (#6587) 2026-07-02 15:18:09 +02:00