OpcodeDispatcher: drop PossiblySetNZCV

this is a pain to track and, it turns out, buys us virtually nothing on flagm
systems. rip it out.

this fixes a bug with failing to set in all the right places.

on non-flagm systems there's a slight instcountci impact, but that is mostly
mitigated by the earlier patches in the series. so overall a wash there but
worth it for making the codebase easier
to reason about.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
This commit is contained in:
Alyssa Rosenzweig committed 2024-11-26 08:59:19 -05:00
1 parent 2350ae5a07
commit aeb2c98cbf
4 files changed
+10 -43

No files matched your search

@@ -4874,7 +4874,7 @@ void OpDispatchBuilder::RDRANDOp(OpcodeArgs) {
SetCFInverted(CF_inv);
} else {
// Accelerated path. Invalid is 0 or 1, so set NZCV with a single rmif.
HandleNZCVWrite(1u << 29 /* C */);
HandleNZCVWrite();
_RmifNZCV(CF_inv, (64 - 1) /* rotate bit 0 into bit 1 = C */, 0xf);
CFInverted = true;
}