> Patch, which makes the test case of this bug report work
> (needs also be changed for the _wide variant):
That unfortunately causes other test cases to fail.
The test programs (none/tests/amd64/pcmpstr64{,w}.c) can be used to
test the C logic without using Valgrind, because they contain a copy
of same code that is in guest_generic_x87.c and they compare the
output against the real instruction. Hence you can do this:
(In reply to comment #5)
Josef, thanks for chasing this:
> Patch, which makes the test case of this bug report work
> (needs also be changed for the _wide variant):
That unfortunately causes other test cases to fail.
The test programs (none/tests/ amd64/pcmpstr64 {,w}.c) can be used to
test the C logic without using Valgrind, because they contain a copy
of same code that is in guest_generic_x87.c and they compare the
output against the real instruction. Hence you can do this:
gcc -Wall -g -O -o foo none/tests/ amd64/pcmpstr64 .c && ./foo | grep "\!\!\!"
and it will show any lines where the C simulation is wrong. With
the test case additions in the previous comment, I get:
sewardj@ phoenix: ~/VgTRUNK/ trunk$ gcc -Wall -g -O -o foo none/tests/ amd64/pcmpstr64 .c && ./foo | grep "\!\!\!"
istri 0C 00abcde100bcde11 00000000000abcde -> 00c00010 00c10006 !!!!
istri 0C 0000000000000000 123456789abcdef1 -> 00400010 08410000 !!!!