Skip to content

Commit

Permalink
JitArm64: Prefer MOVI with 64-bit elements for zeroing
Browse files Browse the repository at this point in the history
The Cortex-X2 and Cortex-X3 (and possibly others) recognize MOVI with
64-bit elements as a zeroing idiom, but not MOVI with other sizes.
  • Loading branch information
JosJuice committed Aug 6, 2023
1 parent f2b8baa commit 1ebec40
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 2 deletions.
Expand Up @@ -832,7 +832,7 @@ void JitArm64::ConvertSingleToDoublePair(size_t guest_reg, ARM64Reg dest_reg, AR
{
// Set each 32-bit element of scratch_reg to 0x0000'0000 or 0xFFFF'FFFF depending on whether
// the absolute value of the corresponding element in src_reg compares greater than 0
m_float_emit.MOVI(8, EncodeRegToDouble(scratch_reg), 0);
m_float_emit.MOVI(64, EncodeRegToDouble(scratch_reg), 0);
m_float_emit.FACGT(32, EncodeRegToDouble(scratch_reg), EncodeRegToDouble(src_reg),
EncodeRegToDouble(scratch_reg));

Expand Down
2 changes: 1 addition & 1 deletion Source/Core/Core/PowerPC/JitArm64/JitArm64_Paired.cpp
Expand Up @@ -254,7 +254,7 @@ void JitArm64::ps_arith(UGeckoInstruction inst)

// Pick the right NaNs

m_float_emit.MOVI(8, zero_reg, 0);
m_float_emit.MOVI(64, zero_reg, 0);

const auto check_input = [&](ARM64Reg input) {
m_float_emit.FACGE(size, nan_temp_reg_paired, input, zero_reg);
Expand Down

0 comments on commit 1ebec40

Please sign in to comment.