Sfoglia il codice sorgente

* ti8086callnode.extra_call_ref_code: do not change the base register to BX if
it's BP, because that breaks memory models with DS<>SS

git-svn-id: trunk@27471 -

nickysn 11 anni fa
parent
commit
e43791cf7c
1 ha cambiato i file con 1 aggiunte e 1 eliminazioni
  1. 1 1
      compiler/i8086/n8086cal.pas

+ 1 - 1
compiler/i8086/n8086cal.pas

@@ -96,7 +96,7 @@ implementation
 
     procedure ti8086callnode.extra_call_ref_code(var ref: treference);
       begin
-        if ref.base<>NR_NO then
+        if (ref.base<>NR_NO) and (ref.base<>NR_BP) then
           begin
             cg.getcpuregister(current_asmdata.CurrAsmList,NR_BX);
             cg.a_load_reg_reg(current_asmdata.CurrAsmList,OS_16,OS_16,ref.base,NR_BX);