Merge pull request #13875 from JosJuice/jitarm64-orr-base-without-mirror

JitArm64: Add missing ORR pattern in MOVI2RImpl
This commit is contained in:
JosJuice 2025-11-10 20:16:21 +01:00 committed by GitHub
commit cd4902f0ed
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1908,12 +1908,17 @@ void ARM64XEmitter::MOVI2RImpl(ARM64Reg Rd, T imm)
{ {
if constexpr (sizeof(T) == 8) if constexpr (sizeof(T) == 8)
{ {
for (u64 orr_imm : {(imm << 32) | (imm & 0x0000'0000'FFFF'FFFF), for (u64 orr_imm : {imm, (imm << 32) | (imm & 0x0000'0000'FFFF'FFFF),
(imm & 0xFFFF'FFFF'0000'0000) | (imm >> 32), (imm & 0xFFFF'FFFF'0000'0000) | (imm >> 32),
(imm << 48) | (imm & 0x0000'FFFF'FFFF'0000) | (imm >> 48)}) (imm << 48) | (imm & 0x0000'FFFF'FFFF'0000) | (imm >> 48)})
{ {
if (LogicalImm(orr_imm, GPRSize::B64)) if (LogicalImm(orr_imm, GPRSize::B64))
{
try_base(orr_imm, Approach::ORRBase, false); try_base(orr_imm, Approach::ORRBase, false);
if (instructions_required(best_parts, best_approach) <= 1)
break;
}
} }
} }
else else