OpcodeDispatcher: optimize 32-bit lzcnt

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
This commit is contained in:
Alyssa Rosenzweig committed 2024-01-29 13:11:25 -04:00
1 parent bd2b3f35a3
commit ad9aa0bc87
2 files changed
+4 -1

No files matched your search

@@ -5380,7 +5380,8 @@ void OpDispatchBuilder::TZCNT(OpcodeArgs) {
}
void OpDispatchBuilder::LZCNT(OpcodeArgs) {
OrderedNode *Src = LoadSource(GPRClass, Op, Op->Src[0], Op->Flags);
// _CountLeadingZeroes clears upper garbage so we don't need to mask
OrderedNode *Src = LoadSource(GPRClass, Op, Op->Src[0], Op->Flags, {.AllowUpperGarbage = true});
auto Res = _CountLeadingZeroes(OpSizeFromSrc(Op), Src);
StoreResult(GPRClass, Op, Res, -1);