diff --git a/src/asmjit/x86/x86assembler.cpp b/src/asmjit/x86/x86assembler.cpp index 10e33df..bcd65f3 100644 --- a/src/asmjit/x86/x86assembler.cpp +++ b/src/asmjit/x86/x86assembler.cpp @@ -3185,7 +3185,6 @@ _EmitX86M: EMIT_BYTE(0x67); } - // Segment override prefix. if (rmMem->hasSegment()) { EMIT_BYTE(x86SegmentPrefix[rmMem->getSegment()]); diff --git a/src/asmjit/x86/x86defs.cpp b/src/asmjit/x86/x86defs.cpp index 43ebe3a..405fd4e 100644 --- a/src/asmjit/x86/x86defs.cpp +++ b/src/asmjit/x86/x86defs.cpp @@ -3146,6 +3146,7 @@ Mem ptr_abs(Ptr pAbs, const X86Reg& index, uint32_t shift, int32_t disp, uint32_ Mem m(NoInit); uint32_t flags = shift << kMemShiftIndex; + if (index.isGp()) flags |= Mem::_getGpdFlags(reinterpret_cast(index)); if (index.isXmm()) flags |= kMemVSibXmm << kMemVSibIndex; if (index.isYmm()) flags |= kMemVSibYmm << kMemVSibIndex; @@ -3160,6 +3161,7 @@ Mem ptr_abs(Ptr pAbs, const X86Var& index, uint32_t shift, int32_t disp, uint32_ Mem m(NoInit); uint32_t flags = shift << kMemShiftIndex; + if (index.isGp()) flags |= Mem::_getGpdFlags(reinterpret_cast(index)); if (index.isXmm()) flags |= kMemVSibXmm << kMemVSibIndex; if (index.isYmm()) flags |= kMemVSibYmm << kMemVSibIndex;