Sfoglia il codice sorgente

* Allow any register for GOT if current procedure has assembler code

git-svn-id: trunk@16110 -
pierre 15 anni fa
parent
commit
386478cd77
1 ha cambiato i file con 5 aggiunte e 1 eliminazioni
  1. 5 1
      compiler/x86/aasmcpu.pas

+ 5 - 1
compiler/x86/aasmcpu.pas

@@ -275,6 +275,7 @@ implementation
        cutils,
        cutils,
        globals,
        globals,
        systems,
        systems,
+       procinfo,
        itcpugas,
        itcpugas,
        symsym;
        symsym;
 
 
@@ -933,7 +934,10 @@ implementation
 {$ifdef i386}
 {$ifdef i386}
                      or (
                      or (
                          (ref^.refaddr in [addr_pic]) and
                          (ref^.refaddr in [addr_pic]) and
-                         (ref^.base=NR_EBX)
+                         { allow any base for assembler blocks }
+                        ((assigned(current_procinfo) and
+                         (pi_has_assembler_block in current_procinfo.flags) and
+                         (ref^.base<>NR_NO)) or (ref^.base=NR_EBX))
                         )
                         )
 {$endif i386}
 {$endif i386}
 {$ifdef x86_64}
 {$ifdef x86_64}