[bug] Fixed FMOV encoding bug (AArch64)

This commit is contained in:
Ilya Vinogradov
2025-12-09 16:48:18 +03:00
committed by GitHub
parent 12f9ca3b32
commit 0cf6eafda2
2 changed files with 5 additions and 1 deletions

View File

@@ -1907,6 +1907,10 @@ static void ASMJIT_NOINLINE test_aarch64_assembler_simd(AssemblerTester<a64::Ass
TEST_INSTRUCTION("01F4034F", fmov(v1.s4(), 0.5)); TEST_INSTRUCTION("01F4034F", fmov(v1.s4(), 0.5));
TEST_INSTRUCTION("01F4004F", fmov(v1.s4(), 2.0)); TEST_INSTRUCTION("01F4004F", fmov(v1.s4(), 2.0));
TEST_INSTRUCTION("01F4036F", fmov(v1.d2(), 0.5)); TEST_INSTRUCTION("01F4036F", fmov(v1.d2(), 0.5));
TEST_INSTRUCTION("00F4030F", fmov(v0.s2(), 0.5));
TEST_INSTRUCTION("00F4000F", fmov(v0.s2(), 2.0));
TEST_INSTRUCTION("00F4034F", fmov(v0.s4(), 0.5));
TEST_INSTRUCTION("00F4004F", fmov(v0.s4(), 2.0));
TEST_INSTRUCTION("01F4006F", fmov(v1.d2(), 2.0)); TEST_INSTRUCTION("01F4006F", fmov(v1.d2(), 2.0));
TEST_INSTRUCTION("4190C31F", fmsub(h1, h2, h3, h4)); TEST_INSTRUCTION("4190C31F", fmsub(h1, h2, h3, h4));
TEST_INSTRUCTION("4190031F", fmsub(s1, s2, s3, s4)); TEST_INSTRUCTION("4190031F", fmsub(s1, s2, s3, s4));

View File

@@ -3580,7 +3580,7 @@ Case_BaseLdurStur:
if (q > 1 || sz > 2) if (q > 1 || sz > 2)
goto InvalidInstruction; goto InvalidInstruction;
static const uint32_t sz_bits_table[3] = { B(11), B(0), B(29) }; static const uint32_t sz_bits_table[3] = { B(11), 0, B(29) };
opcode.reset(0b00001111000000001111010000000000); opcode.reset(0b00001111000000001111010000000000);
opcode ^= sz_bits_table[sz]; opcode ^= sz_bits_table[sz];
opcode.add_imm(q, 30); opcode.add_imm(q, 30);