瀏覽代碼

+ support for more win64 specific relocs

git-svn-id: trunk@3482 -
florian 19 年之前
父節點
當前提交
83a0c8cd4b
共有 1 個文件被更改,包括 26 次插入0 次删除
  1. 26 0
      compiler/ogcoff.pas

+ 26 - 0
compiler/ogcoff.pas

@@ -810,6 +810,32 @@ const win32stub : array[0..131] of byte=(
                 end;
 {$ifdef x86_64}
               RELOC_ABSOLUTE32,
+              { 64 bit coff only }
+              RELOC_RELATIVE_1:
+                begin
+                  address:=address-mempos+relocval;
+                  dec(address,objreloc.dataoffset+1);
+                end;
+              RELOC_RELATIVE_2:
+                begin
+                  address:=address-mempos+relocval;
+                  dec(address,objreloc.dataoffset+2);
+                end;
+              RELOC_RELATIVE_3:
+                begin
+                  address:=address-mempos+relocval;
+                  dec(address,objreloc.dataoffset+3);
+                end;
+              RELOC_RELATIVE_4:
+                begin
+                  address:=address-mempos+relocval;
+                  dec(address,objreloc.dataoffset+4);
+                end;
+              RELOC_RELATIVE_5:
+                begin
+                  address:=address-mempos+relocval;
+                  dec(address,objreloc.dataoffset+5);
+                end;
 {$endif x86_64}
               RELOC_ABSOLUTE :
                 begin