feat: Add support for various integer and floating-point operations in the interpreter#72
Conversation
…n the interpreter - Implemented I32 and I64 bitwise operations: XOR, AND, OR, CLZ, CTZ, POPCNT, ROTL, ROTR, and sign-extension operations. - Added floating-point operations: ABS, NEG, SQRT, CEIL, FLOOR, TRUNC, NEAREST, MIN, MAX, and COPYSIGN for F32 and F64 types. - Introduced reinterpretation functions for converting between integer and floating-point types. - Implemented saturation functions for converting floating-point values to integer types, handling out-of-range values and NaN. - Added tests for new instructions to ensure correctness of implementations.
PR Review — feat: Add support for various integer and floating-point operations in the interpreterStatus: Needs Changes (Compilation Error)This PR adds comprehensive support for integer and floating-point bitwise/arithmetic operations, tail call optimization (RETURN_CALL), and a MAP_KEYS instruction. The implementation is well-scoped with good test coverage. However, the code fails to compile due to missing updates to Blocking Issue: Missing
|
- Added support for new instructions: I32_ROTL, I32_ROTR, I64_ROTL, I64_ROTR, I32_CLZ, I32_CTZ, I64_CLZ, I64_CTZ, I32_POPCNT, I64_POPCNT, F32_MIN, F32_MAX, F32_COPYSIGN, F64_MIN, F64_MAX, F64_COPYSIGN. - Enhanced the threaded compiler to handle RETURN_CALL for both functions and closures. - Updated the ARM64 lowerer to support new binary operations and unary operations for floating-point types. - Improved test coverage for new operations in the interpreter's JIT compilation path. - Marked RETURN_CALL and CLOSURE_NEW as unrecordable in the tracer to optimize performance.
Changes Made
Related Issues
Additional Information