瀏覽代碼

* fixed the TRelocDataInt to avoid truncating 16-bit addresses to 8-bit on 8-bit CPUs

git-svn-id: trunk@45289 -
nickysn 5 年之前
父節點
當前提交
616cb38292
共有 1 個文件被更改,包括 5 次插入3 次删除
  1. 5 3
      compiler/ogbase.pas

+ 5 - 3
compiler/ogbase.pas

@@ -368,13 +368,15 @@ interface
        Owner: TObjData;
      end;
 
-{$ifdef i8086}
+{$if defined(i8086)}
      { on i8086 we use a longint, to support 32-bit relocations as well (e.g.
        for allowing 386+ instructions with 32-bit addresses in inline asm code) }
      TRelocDataInt = longint;
-{$else i8086}
+{$elseif defined(cpu16bitaddr)}
+     TRelocDataInt = asizeint;
+{$else}
      TRelocDataInt = aint;
-{$endif i8086}
+{$endif}
 
      TObjData = class(TLinkedListItem)
      private