I wanted to add AFP-register control related checks for a long time. However, doing these checks in each and every relevant handler is ugly.
As I will need similar checks for vector instructions (yes, I'm looking into that but it might take some time), I decided to introduce per-instruction flags, that allow to to check such "instruction properties" globally. Tagging e.g. privileged instructions that way turns out quite nice. Of course, while at it some fixes and cleanups. v3 -> v4 - Use deposit32() and simplify one assert in patch #2 - Rename IF_HFP[123] to IF_AFP[123] in patch #5 and #6 - Moved comment fixup from patch #8 to patch #7 (again :/) - Added r-bs v2 -> v3: - Moved comment fixup from patch #8 to patch #7 - Added an include to kvm.c in patch #1 to make it compile - Added r-bs v1 -> v2: - added "s390x: move tcg_s390_program_interrupt() into TCG code and ..." - Some checkpatch changes lead to some false positives in the last two patches ... to work around them, I dropped some unnecessary parantheses. David Hildenbrand (9): s390x: move tcg_s390_program_interrupt() into TCG code and mark it noreturn s390x/tcg: factor out and fix DATA exception injection s390x/tcg: store in the TB flags if AFP is enabled s390x/tcg: support flags for instructions s390x/tcg: add instruction flags for floating point instructions s390x/tcg: check for AFP-register, BFP and DFP data exceptions s390x/tcg: handle privileged instructions via flags s390x/tcg: fix FP register pair checks s390x/tcg: refactor specification checking target/s390x/cpu.h | 9 + target/s390x/excp_helper.c | 36 ++++ target/s390x/fpu_helper.c | 13 +- target/s390x/helper.h | 1 + target/s390x/insn-data.def | 395 +++++++++++++++++++------------------ target/s390x/interrupt.c | 15 +- target/s390x/kvm.c | 4 +- target/s390x/tcg-stub.c | 10 + target/s390x/tcg_s390x.h | 4 + target/s390x/translate.c | 197 ++++++++---------- 10 files changed, 344 insertions(+), 340 deletions(-) -- 2.17.1