diff --git a/compiler/x86/cgx86.pas b/compiler/x86/cgx86.pas index 1ad4531dee..ff8bfe6f6b 100644 --- a/compiler/x86/cgx86.pas +++ b/compiler/x86/cgx86.pas @@ -619,6 +619,15 @@ unit cgx86; list.concat(taicpu.op_reg_reg(A_MOV,S_W,ref.segment,NR_ES)); ref.segment:=NR_ES; end; + + { can the segment override be dropped? } + if ref.segment<>NR_NO then + begin + if (ref.base=NR_BP) and segment_regs_equal(ref.segment,NR_SS) then + ref.segment:=NR_NO; + if (ref.base<>NR_BP) and segment_regs_equal(ref.segment,NR_DS) then + ref.segment:=NR_NO; + end; {$endif} end;