Explorar o código

* fixed ie with pi_do_call

florian %!s(int64=21) %!d(string=hai) anos
pai
achega
7f20bc1c96
Modificáronse 1 ficheiros con 19 adicións e 6 borrados
  1. 19 6
      compiler/arm/cgcpu.pas

+ 19 - 6
compiler/arm/cgcpu.pas

@@ -245,9 +245,14 @@ unit cgcpu;
 
     procedure tcgarm.a_call_name(list : taasmoutput;const s : string);
       begin
-         list.concat(taicpu.op_sym(A_BL,objectlibrary.newasmsymbol(s,AB_EXTERNAL,AT_FUNCTION)));
-         if not(pi_do_call in current_procinfo.flags) then
-           internalerror(2003060703);
+        list.concat(taicpu.op_sym(A_BL,objectlibrary.newasmsymbol(s,AB_EXTERNAL,AT_FUNCTION)));
+{
+        the compiler does not properly set this flag anymore in pass 1, and
+        for now we only need it after pass 2 (I hope) (JM)
+          if not(pi_do_call in current_procinfo.flags) then
+            internalerror(2003060703);
+}
+        include(current_procinfo.flags,pi_do_call);
       end;
 
 
@@ -257,8 +262,13 @@ unit cgcpu;
       begin
         list.concat(taicpu.op_reg_reg(A_MOV,NR_R14,NR_PC));
         list.concat(taicpu.op_reg_reg(A_MOV,NR_PC,reg));
-        if not(pi_do_call in current_procinfo.flags) then
-          internalerror(2003060704);
+{
+        the compiler does not properly set this flag anymore in pass 1, and
+        for now we only need it after pass 2 (I hope) (JM)
+          if not(pi_do_call in current_procinfo.flags) then
+            internalerror(2003060703);
+}
+        include(current_procinfo.flags,pi_do_call);
       end;
 
 
@@ -1277,7 +1287,10 @@ begin
 end.
 {
   $Log$
-  Revision 1.60  2004-10-31 16:04:30  florian
+  Revision 1.61  2004-10-31 16:47:43  florian
+    * fixed ie with pi_do_call
+
+  Revision 1.60  2004/10/31 16:04:30  florian
     * fixed compilation of system unit on arm
 
   Revision 1.59  2004/10/31 12:37:11  florian