The promised refresh of the patch set I posted in December. Changes are: * patch 3 is new, improving decode of the xsave insns themselves. * patch 16 is new, adding (trivial) support for fsgsbase. * I use fewer hflags bits, since we're down to 8 remaining.
Paolo is looking to build on the xsave patches in particular, and requested that I send the pull request for these. r~ The following changes since commit a5af12871fd4601c44f08d9e49131e9ca13ef102: Merge remote-tracking branch 'remotes/sstabellini/tags/xen-2016-02-12' into staging (2016-02-12 17:36:12 +0000) are available in the git repository at: git://github.com/rth7680/qemu.git tags/pull-i386-20160215 for you to fetch changes up to 07929f2ab2ab9c9e01d4ae79f48f2b2476b715c8: target-i386: Implement FSGSBASE (2016-02-15 14:50:00 +1100) ---------------------------------------------------------------- Add XSAVE, MPX, FSGSBASE. ---------------------------------------------------------------- Richard Henderson (16): target-i386: Split fxsave/fxrstor implementation target-i386: Rearrange processing of 0F 01 target-i386: Rearrange processing of 0F AE target-i386: Add XSAVE extension target-i386: Implement XSAVEOPT target-i386: Enable control registers for MPX target-i386: Perform set/reset_inhibit_irq inline target-i386: Split up gen_lea_modrm target-i386: Implement BNDMK target-i386: Implement BNDMOV target-i386: Implement BNDCL, BNDCU, BNDCN target-i386: Update BNDSTATUS for exceptions raised by BOUND target-i386: Implement BNDLDX, BNDSTX target-i386: Clear bndregs during legacy near jumps target-i386: Enable CR4/XCR0 features for user-mode target-i386: Implement FSGSBASE target-i386/Makefile.objs | 2 +- target-i386/cc_helper.c | 10 - target-i386/cpu.c | 91 ++-- target-i386/cpu.h | 21 +- target-i386/fpu_helper.c | 396 ++++++++++++--- target-i386/helper.c | 14 +- target-i386/helper.h | 19 +- target-i386/int_helper.c | 10 + target-i386/kvm.c | 34 +- target-i386/mem_helper.c | 6 + target-i386/misc_helper.c | 9 + target-i386/mpx_helper.c | 166 +++++++ target-i386/smm_helper.c | 4 + target-i386/translate.c | 1203 ++++++++++++++++++++++++++++++--------------- 14 files changed, 1439 insertions(+), 546 deletions(-) create mode 100644 target-i386/mpx_helper.c