diff options
author | Alan Wu <[email protected]> | 2025-06-10 20:52:57 +0900 |
---|---|---|
committer | Alan Wu <[email protected]> | 2025-06-11 19:49:49 +0900 |
commit | e5c7f1695e8cf774d073e7b103c1d9289cad56ee (patch) | |
tree | c5b0623d5ee0ed48921b1613d9340b333a2f4917 /include/ruby/impl/arithmetic/uid_t.h | |
parent | 4ebe0a1ba50c7022bcbd823471a6d08e7cee52bd (diff) |
YJIT: x86: Fix panic writing 32-bit number with top bit set
Previously, `asm.mov(m32, imm32)` panicked when `imm32 > 0x80000000`. It
attempted to split imm32 into a register before doing the store, but
then the register size didn't match the destination size.
Instead of splitting, use the `MOV r/m32, imm32` form which works for
all 32-bit values. Adjust asserts that assumed that all forms undergo
sign extension, which is not true for this case.
See: 54edc930f9f0a658da45cfcef46648d1b6f82467
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/13576
Diffstat (limited to 'include/ruby/impl/arithmetic/uid_t.h')
0 files changed, 0 insertions, 0 deletions