fsgnjx.s
Floating-Point Sign-Inject XOR Single-Precision
The fsgnjx.s instruction produces a result that takes all bits except the sign bit from fs1.
The result’s sign bit is the XOR of sign bits of fs1 and fs2, and the result is written to
the destination register fd. Sign-injection instructions do not set floating-point exception
flags, nor do they canonicalize NaNs.
Decode Variables
Bits<5> fs2 = $encoding[24:20];
Bits<5> fs1 = $encoding[19:15];
Bits<5> fd = $encoding[11:7];
Execution
check_f_ok($encoding);
Bits<32> sp_value = {F[fs1][31] ^ F[fs2][31], F[fs1][30:0]};
if (implemented?(ExtensionName::D)) {
F[fd] = nan_box(32, 64, sp_value);
} else {
F[fd] = sp_value;
}
mark_f_state_dirty();