diff options
author | Aurelien Jarno <aurelien@aurel32.net> | 2015-06-13 00:45:58 +0200 |
---|---|---|
committer | Alexander Graf <agraf@suse.de> | 2015-06-17 12:40:52 +0200 |
commit | f0e0d817c22539cd2ce1bcb5487e076f117b04c0 (patch) | |
tree | 654992ba9d6cbb96cfade0d5826de97ca7da4bbc /target-s390x/helper.h | |
parent | 2c2275eb41c612df4bd115cf71d6e651d105f69c (diff) | |
download | qemu-f0e0d817c22539cd2ce1bcb5487e076f117b04c0.tar.gz qemu-f0e0d817c22539cd2ce1bcb5487e076f117b04c0.tar.bz2 qemu-f0e0d817c22539cd2ce1bcb5487e076f117b04c0.zip |
target-s390x: PER instruction-fetch event support
For the PER instruction-fetch, we can't use the QEMU breakpoint
infrastructure as it triggers for a single address and not a full
address range, and as it actually stop before the instruction and
not before.
We therefore call an helper with the just fetched instruction address,
which check if the address is within the PER address range. If it is
the case, an event is recorded and will be signaled through an
exception.
Note that we implement here the PER-3 behaviour, that is an invalid
opcode is not considered as an instruction fetch. Without PER-3 this
behavious is undefined.
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'target-s390x/helper.h')
-rw-r--r-- | target-s390x/helper.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/target-s390x/helper.h b/target-s390x/helper.h index 89197cb674..7e06119e99 100644 --- a/target-s390x/helper.h +++ b/target-s390x/helper.h @@ -118,6 +118,7 @@ DEF_HELPER_FLAGS_3(stura, TCG_CALL_NO_WG, void, env, i64, i64) DEF_HELPER_FLAGS_3(sturg, TCG_CALL_NO_WG, void, env, i64, i64) DEF_HELPER_1(per_check_exception, void, env) DEF_HELPER_FLAGS_3(per_branch, TCG_CALL_NO_RWG, void, env, i64, i64) +DEF_HELPER_FLAGS_2(per_ifetch, TCG_CALL_NO_RWG, void, env, i64) DEF_HELPER_2(xsch, void, env, i64) DEF_HELPER_2(csch, void, env, i64) |