소스 검색

* 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
         if (actasmregister=NR_NO) and (current_procinfo.procdef.proccalloption=pocall_register) then
           begin
           begin
             entry := current_procinfo.procdef.parast.Find(s);
             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;
           end;
         if actasmregister<>NR_NO then
         if actasmregister<>NR_NO then
           begin
           begin