This option causes the window to not resize automatically on guest
display resolution changes.
QEMU has this option enabled by default when using virtio-gpu.
Due to optimiser shenanigans in the tree alternative form, some
JumpNonEmpty ops might be moved before their Checkpoint instruction.
It is safe to assume the distance between the nonexistent checkpoint and
the current op is zero, so just do that.
(cherry picked from commit eee90f4aa23afd66ce6007faf4943d4ab56d4f22)
Repeat's 'offset' field is a bit odd in that it is treated as a negative
offset, causing a backwards jump when positive; the optimizer didn't
correctly model this behaviour, which caused crashes and misopts when
dealing with Repeats.
This commit fixes that behaviour.
(cherry picked from commit 358378c1c073440ef830a3485e7d6cb9382e0c92)
These were getting difficult to differentiate, now they each get a
comment on where they came from to aid with future debugging.
(cherry picked from commit 4a8d3e35a37cf94b6d076eec7b242d6924b17757)
This is similar to HashMap::get(key), which returns an Optional, empty
if the index is out of bounds for the vector.
(cherry picked from commit 44798f44ef1c112aa9dbee7abee7ff6a5568c4f4)
The motivation is to allow functions that use FloatExtractor to be
constexpr. Type punning through a union will never work in constexpr.
In practice, bit_cast<>()ing bit fields also does not yet work in clang,
but that's just a bug and it will work eventually (and it does already
work in gcc): https://github.com/llvm/llvm-project/issues/54018
No behavior change.
Most RISC-V floating-point operations only generate the canonical NaN,
so the sign bit was cleared in this test.
The sign injection instruction does keep the NaN payload and sign bit,
so doing `-v.f` to get a negative NaN works as expected.
RISC-V now works just as well as Arm and even passes more tests than it.
"riscv64" is not an official name for the RISC-V architecture and
just using the pretty-printed name for RISC-V looks weird, so use the
pretty name for all architectures instead.
This avoids a warning for CMake policy CMP0175, which is new with CMake
3.31. The warning is as follows:
Exactly one of PRE_BUILD, PRE_LINK, or POST_BUILD must be given.
Assuming POST_BUILD to preserve backward compatibility.
To preserve behavior, mark these as POST_BUILD. It might not be the
ideal way to have the custom commands run, but it is behavior-preserving