diff mbox series

[for-8.1] tcg/i386: Output %gs prefix in tcg_out_vex_opc

Message ID 20230812155004.326182-1-richard.henderson@linaro.org
State Superseded
Headers show
Series [for-8.1] tcg/i386: Output %gs prefix in tcg_out_vex_opc | expand

Commit Message

Richard Henderson Aug. 12, 2023, 3:50 p.m. UTC
Missing the segment prefix means that user-only fails
to add guest_base for some 128-bit load/store.

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1763
Fixes: 098d0fc10d2 ("tcg/i386: Support 128-bit load/store")
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
 tcg/i386/tcg-target.c.inc | 3 +++
 1 file changed, 3 insertions(+)
diff mbox series

Patch

diff --git a/tcg/i386/tcg-target.c.inc b/tcg/i386/tcg-target.c.inc
index 77482da070..a6b2eae995 100644
--- a/tcg/i386/tcg-target.c.inc
+++ b/tcg/i386/tcg-target.c.inc
@@ -595,6 +595,9 @@  static void tcg_out_vex_opc(TCGContext *s, int opc, int r, int v,
 {
     int tmp;
 
+    if (opc & P_GS) {
+        tcg_out8(s, 0x65);
+    }
     /* Use the two byte form if possible, which cannot encode
        VEX.W, VEX.B, VEX.X, or an m-mmmm field other than P_EXT.  */
     if ((opc & (P_EXT | P_EXT38 | P_EXT3A | P_VEXW)) == P_EXT