summaryrefslogtreecommitdiffstats
path: root/test/kvm-targetstep_guest.S
diff options
context:
space:
mode:
Diffstat (limited to 'test/kvm-targetstep_guest.S')
-rw-r--r--test/kvm-targetstep_guest.S40
1 files changed, 40 insertions, 0 deletions
diff --git a/test/kvm-targetstep_guest.S b/test/kvm-targetstep_guest.S
new file mode 100644
index 0000000..6625c54
--- /dev/null
+++ b/test/kvm-targetstep_guest.S
@@ -0,0 +1,40 @@
+#include "cachepc/const.h"
+
+#define TARGET_SET 15
+
+.text
+.align(16)
+.code16gcc
+
+guest:
+.rept L1_LINESIZE * L1_SETS * 2
+ nop
+.endr
+
+ mov $0, %cx
+ mov $CPC_GUEST_START_TRACK, %bx
+ mov $KVM_HC_CPC_VMMCALL_SIGNAL, %ax
+ vmmcall
+
+ mov $(L1_LINESIZE * (L1_SETS + 11)), %bx
+ movb (%bx), %bl
+
+ mov $(L1_LINESIZE * (L1_SETS + 13)), %bx
+ movb (%bx), %bl
+
+ mov $(L1_LINESIZE * (L1_SETS + 15)), %bx
+ movb (%bx), %bl
+
+ # this should only be partially single-stepped if
+ # single-stepping is limited to the first page
+.rept L1_LINESIZE * L1_SETS * 2
+ nop
+.endr
+
+ mov $0, %cx
+ mov $CPC_GUEST_STOP_TRACK, %bx
+ mov $KVM_HC_CPC_VMMCALL_SIGNAL, %ax
+ vmmcall
+
+ jmp guest
+