I see this in the changelog for VMP 3.4:
"Fixed a bug that occurred during virtualization of BT [m16]"
But there still is a problem with latest release.
The following Delphi program will use the BT instruction to find a value in a set and it fails after being virtualized. Tested in VMP build 1131 and 1142.
Code: Select all
program vmptest2;
{$APPTYPE CONSOLE}
procedure f;
const
TestValue = 32;
MySet : set of byte = [TestValue];
var
I : integer;
B : boolean;
begin
I := TestValue;
B := I in MySet; //<<this will use the BT instruction
if B then
writeln('pass')
else
writeln('fail');
end;
begin
f;
readln;
end.
Can you fix this please? We had to downgrade to older version for now (it works in build 1086).