瀏覽代碼

* fixed error in r14402 for functions/procedures that are not declared as
"assembler" (mantis #15370)

git-svn-id: trunk@14449 -

Jonas Maebe 15 年之前
父節點
當前提交
d3f9e6290b
共有 1 個文件被更改,包括 6 次插入4 次删除
  1. 6 4
      compiler/x86/rax86int.pas

+ 6 - 4
compiler/x86/rax86int.pas

@@ -233,10 +233,12 @@ Unit Rax86int;
         if (actasmregister=NR_NO) and (current_procinfo.procdef.proccalloption=pocall_register) then
           begin
             entry := current_procinfo.procdef.parast.Find(s);
-            if assigned(entry) and (entry.typ=paravarsym) and
-              assigned(tparavarsym(entry).paraloc[calleeside].Location) and
-              (tparavarsym(entry).paraloc[calleeside].Location^.Loc=LOC_REGISTER) then
-                actasmregister:=tparavarsym(entry).paraloc[calleeside].Location^.register;
+            if assigned(entry) and
+               (po_assembler in current_procinfo.procdef.procoptions) and
+               (entry.typ=paravarsym) and
+               assigned(tparavarsym(entry).paraloc[calleeside].Location) and
+               (tparavarsym(entry).paraloc[calleeside].Location^.Loc=LOC_REGISTER) then
+              actasmregister:=tparavarsym(entry).paraloc[calleeside].Location^.register;
           end;
         if actasmregister<>NR_NO then
           begin