Message ID | 20180927130303.12236-1-david@redhat.com |
---|---|
Headers | show |
Series | s390x: instruction flags and AFP registers for TCG | expand |
On Thu, 27 Sep 2018 15:02:54 +0200 David Hildenbrand <david@redhat.com> wrote: > 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(-) > Thanks, applied.