xref: /qemu/tests/tcg/x86_64/system/patch-target.c (revision 597639c4273d1433b0a47c8533b90ccce29f84e5)
1*71d33794SRowan Hart /*
2*71d33794SRowan Hart  * SPDX-License-Identifier: GPL-2.0-or-later
3*71d33794SRowan Hart  *
4*71d33794SRowan Hart  * This test target increments a value 100 times. The patcher converts the
5*71d33794SRowan Hart  * inc instruction to a nop, so it only increments the value once.
6*71d33794SRowan Hart  *
7*71d33794SRowan Hart  */
8*71d33794SRowan Hart #include <minilib.h>
9*71d33794SRowan Hart 
main(void)10*71d33794SRowan Hart int main(void)
11*71d33794SRowan Hart {
12*71d33794SRowan Hart     ml_printf("Running test...\n");
13*71d33794SRowan Hart     unsigned int x = 0;
14*71d33794SRowan Hart     for (int i = 0; i < 100; i++) {
15*71d33794SRowan Hart         asm volatile (
16*71d33794SRowan Hart             "inc %[x]"
17*71d33794SRowan Hart             : [x] "+a" (x)
18*71d33794SRowan Hart         );
19*71d33794SRowan Hart     }
20*71d33794SRowan Hart     ml_printf("Value: %d\n", x);
21*71d33794SRowan Hart     return 0;
22*71d33794SRowan Hart }
23