[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[xen staging] x86emul: make test harness build again as 32-bit binary



commit cff389bca78885447c8cfa381e058c6fb983df9c
Author:     Jan Beulich <jbeulich@xxxxxxxx>
AuthorDate: Tue Apr 1 12:48:23 2025 +0200
Commit:     Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Tue Apr 1 12:48:23 2025 +0200

    x86emul: make test harness build again as 32-bit binary
    
    Adding Q suffixes to FXSAVE/FXRSTOR did break the 32-bit build. Don't go
    back though, as the hand-coded 0x48 there weren't quite right either for
    the 32-bit case (they might well cause confusion when looking at the
    disassembly). Instead arrange for the compiler to DCE respective asm()-s,
    by short-circuiting REX_* to zero.
    
    Fixes: 5a33ea2800c1 ("x86emul: drop open-coding of REX.W prefixes")
    Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
    Acked-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
---
 xen/arch/x86/x86_emulate/private.h | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/xen/arch/x86/x86_emulate/private.h 
b/xen/arch/x86/x86_emulate/private.h
index ef4745f56e..f33330c787 100644
--- a/xen/arch/x86/x86_emulate/private.h
+++ b/xen/arch/x86/x86_emulate/private.h
@@ -110,11 +110,19 @@ struct operand {
     } mem;
 };
 
+#if defined(__x86_64__)
 #define REX_PREFIX 0x40
 #define REX_B 0x01
 #define REX_X 0x02
 #define REX_R 0x04
 #define REX_W 0x08
+#elif defined(__i386__)
+#define REX_PREFIX 0
+#define REX_B 0
+#define REX_X 0
+#define REX_R 0
+#define REX_W 0
+#endif
 
 enum simd_opsize {
     simd_none,
--
generated by git-patchbot for /home/xen/git/xen.git#staging



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.