mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-06 14:00:16 +02:00
ConstProp: Removes VMOV assumption
ConstProp has an assumption that a VMOV of the same size arguments is a no-op. This isn't quite 100% true as this could be behaving as a zext and the pass can't see through the op correctly. Something to be said that the vector ops should be looked over to see which op is leaving dirty bits in the upper bits of the register. But that's a battle for a different time
This commit is contained in:
1 parent
744b778013
commit
2afa14d1f3
1 file changed
+3
-1
@@ -448,8 +448,10 @@ bool ConstProp::ZextAndMaskingElimination(IREmitter *IREmit, const IRListView& C
|
||||
IREmit->ReplaceAllUsesWith(CodeNode, CurrentIR.GetNode(source));
|
||||
} else if (IROp->Size == sourceHeader->Size) {
|
||||
// VMOV of same size
|
||||
// XXX: This is unsafe of an optimization since in some cases we can't see through garbage data in the upper bits of a vector
|
||||
// RCLSE generates VMOV instructions which are being used as a zero extension
|
||||
//printf("printf vmov of same size?!\n");
|
||||
IREmit->ReplaceAllUsesWith(CodeNode, CurrentIR.GetNode(source));
|
||||
//IREmit->ReplaceAllUsesWith(CodeNode, CurrentIR.GetNode(source));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user