target-s390x: basic PER event handling
commit777c98c32ce577a9671b9267ff6e2802f69ebafd
authorAurelien Jarno <aurelien@aurel32.net>
Fri, 12 Jun 2015 22:45:56 +0000 (13 00:45 +0200)
committerAlexander Graf <agraf@suse.de>
Wed, 17 Jun 2015 10:40:52 +0000 (17 12:40 +0200)
tree1c6aece20307d708f01509a4d76867617e444385
parentd453d103831c966e7920f146eb3416e43b588f89
target-s390x: basic PER event handling

This patch add basic support to generate PER exceptions. It adds two
fields to the cpu structure to record for the PER address and PER
code & ATMID values. When an exception is triggered and a PER event is
pending, the two PER values are copied to the lowcore area.

At the end of an instruction, an helper is checking for a possible
pending PER event and triggers an exception in that case. For that to
work with branches, we need to disable TB chaining when PER is
activated. Fortunately it's already in the TB flags.

Finally in case of a SERVICE CALL exception, we need to trigger the PER
exception immediately after.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Alexander Graf <agraf@suse.de>
target-s390x/cpu.h
target-s390x/helper.c
target-s390x/helper.h
target-s390x/misc_helper.c
target-s390x/translate.c