Browse Source

* Reverted accidentally committed files.

git-svn-id: trunk@46416 -
yury 5 years ago
parent
commit
aefc1be555
4 changed files with 16 additions and 127 deletions
  1. 0 1
      compiler/aasmdata.pas
  2. 5 21
      compiler/ncal.pas
  3. 11 90
      compiler/ncgcal.pas
  4. 0 15
      compiler/psub.pas

+ 0 - 1
compiler/aasmdata.pas

@@ -633,7 +633,6 @@ implementation
          begin
          begin
            p.altsymbol:=p.getaltcopy(AsmSymbolDict,FNextAltNr);
            p.altsymbol:=p.getaltcopy(AsmSymbolDict,FNextAltNr);
            FAltSymbolList.Add(p);
            FAltSymbolList.Add(p);
-           inc(FNextAltNr);
          end;
          end;
       end;
       end;
 
 

+ 5 - 21
compiler/ncal.pas

@@ -153,8 +153,6 @@ interface
           callinitblock,
           callinitblock,
           callcleanupblock : tblocknode;
           callcleanupblock : tblocknode;
 
 
-          asminlineblock : tnode;
-
           { function return node for initialized types or supplied return variable.
           { function return node for initialized types or supplied return variable.
             When the result is passed in a parameter then it is set to nil }
             When the result is passed in a parameter then it is set to nil }
           funcretnode    : tnode;
           funcretnode    : tnode;
@@ -4494,17 +4492,7 @@ implementation
 
 
            { Continue with checking a normal call or generate the inlined code }
            { Continue with checking a normal call or generate the inlined code }
            if cnf_do_inline in callnodeflags then
            if cnf_do_inline in callnodeflags then
-             begin
-               if po_assembler in procdefinition.procoptions then
-                 begin
-                   mark_unregable_parameters;
-                   asminlineblock:=tprocdef(procdefinition).inlininginfo^.code.getcopy;
-//                   asminlineblock:=tblocknode(pass1_inline);
-                   result:=pass1_normal;
-                 end
-               else
-                 result:=pass1_inline
-             end
+             result:=pass1_inline
            else
            else
              begin
              begin
                if (po_inline in procdefinition.procoptions) and not(po_compilerproc in procdefinition.procoptions) and
                if (po_inline in procdefinition.procoptions) and not(po_compilerproc in procdefinition.procoptions) and
@@ -5156,17 +5144,13 @@ implementation
           addstatement(inlineinitstatement,callinitblock.getcopy);
           addstatement(inlineinitstatement,callinitblock.getcopy);
 
 
         { replace complex parameters with temps }
         { replace complex parameters with temps }
-        if not (po_assembler in procdefinition.procoptions) then
-          createinlineparas;
+        createinlineparas;
 
 
         { create a copy of the body and replace parameter loads with the parameter values }
         { create a copy of the body and replace parameter loads with the parameter values }
         body:=tprocdef(procdefinition).inlininginfo^.code.getcopy;
         body:=tprocdef(procdefinition).inlininginfo^.code.getcopy;
-        if not (po_assembler in procdefinition.procoptions) then
-          begin
-            foreachnodestatic(pm_postprocess,body,@removeusercodeflag,nil);
-            foreachnodestatic(pm_postprocess,body,@importglobalsyms,nil);
-            foreachnode(pm_preprocess,body,@replaceparaload,@fileinfo);
-          end;
+        foreachnodestatic(pm_postprocess,body,@removeusercodeflag,nil);
+        foreachnodestatic(pm_postprocess,body,@importglobalsyms,nil);
+        foreachnode(pm_preprocess,body,@replaceparaload,@fileinfo);
 
 
         { Concat the body and finalization parts }
         { Concat the body and finalization parts }
         addstatement(inlineinitstatement,body);
         addstatement(inlineinitstatement,body);

+ 11 - 90
compiler/ncgcal.pas

@@ -60,7 +60,6 @@ interface
           procedure reorder_parameters;
           procedure reorder_parameters;
           procedure freeparas;
           procedure freeparas;
           function is_parentfp_pushed:boolean;
           function is_parentfp_pushed:boolean;
-          function generate_asm_inline:boolean;
        protected
        protected
           retloc: tcgpara;
           retloc: tcgpara;
           paralocs: array of pcgpara;
           paralocs: array of pcgpara;
@@ -128,8 +127,6 @@ interface
 implementation
 implementation
 
 
     uses
     uses
-      aasmtai,nbas,
-      cclasses,
       systems,
       systems,
       verbose,globals,
       verbose,globals,
       symconst,symtable,symtype,symsym,defutil,paramgr,
       symconst,symtable,symtype,symsym,defutil,paramgr,
@@ -137,7 +134,7 @@ implementation
       nld,ncnv,
       nld,ncnv,
       ncgutil,blockutl,
       ncgutil,blockutl,
       cgobj,tgobj,hlcgobj,
       cgobj,tgobj,hlcgobj,
-      procinfo,psub,
+      procinfo,
       wpobase;
       wpobase;
 
 
 
 
@@ -946,75 +943,6 @@ implementation
           not can_skip_para_push(tparavarsym(tprocdef(procdefinition).parentfpsym));
           not can_skip_para_push(tparavarsym(tprocdef(procdefinition).parentfpsym));
       end;
       end;
 
 
-    function tcgcallnode.generate_asm_inline: boolean;
-      var
-//        hp : tlinkedlistitem;
-        old_current_procinfo,asm_procinfo : tprocinfo;
-        old_temp_gen: ttgobj;
-        oldasmlist: TAsmList;
-        headertai:tai;
-      begin
-//        result:=(cnf_do_inline in callnodeflags);
-        result:=asminlineblock<>nil;
-        if not result then
-          exit;
-
-//        current_asmdata.CurrAsmList.concatList(tasmnode(asminlineblock).p_asm);
-        include(current_procinfo.procdef.procoptions,po_inline);
-        asminlineblock.pass_generate_code;
-        exclude(current_procinfo.procdef.procoptions,po_inline);
-
-        asminlineblock.free;
-        asminlineblock:=nil;
-
-        exit;
-//        hp:=current_asmdata.CurrAsmList.Last;
-//        asminlineblock.pass_generate_code;
-
-        old_current_procinfo:=current_procinfo;
-        asm_procinfo:=cprocinfo.create(nil);
-        asm_procinfo.procdef:=tprocdef(procdefinition);
-        asm_procinfo.flags:=asm_procinfo.procdef.inlininginfo^.flags;
-        old_temp_gen:=tg;
-        tg:=nil;
-//        oldasmlist:=current_asmdata.CurrAsmList;
-//        current_asmdata.CurrAsmList:=tasmlist.create;
-
-//        tcgprocinfo(current_procinfo).code:=asminlineblock;
-//        tcgprocinfo(current_procinfo).generate_code;
-
-        current_procinfo.generate_parameter_info;
-        hlcg.g_proc_entry(current_asmdata.CurrAsmList,current_procinfo.calc_stackframe_size,po_nostackframe in procdefinition.procoptions);
-        asminlineblock.pass_generate_code;
-        gen_proc_exit_code(current_asmdata.CurrAsmList);
-
-
-//        oldasmlist.concatList(current_asmdata.CurrAsmList);
-//        current_asmdata.CurrAsmList.Free;
-//        current_asmdata.CurrAsmList:=oldasmlist;
-        tg:=old_temp_gen;
-        //current_asmdata:=
-
-{
-//        old_procoptions:=temp_procinfo.procdef.procoptions;
-//                          include(temp_procinfo.procdef.procoptions,po_noreturn);
-
-        current_procinfo:=asm_procinfo;
-        current_procinfo.generate_parameter_info;
-        gen_proc_entry_code(current_asmdata.CurrAsmList);
-//        hlcg.g_proc_entry(current_asmdata.CurrAsmList,0,po_nostackframe in procdefinition.procoptions);
-        asminlineblock.pass_generate_code;
-//        hlcg.g_proc_exit(current_asmdata.CurrAsmList,0,po_nostackframe in procdefinition.procoptions);
-        gen_proc_exit_code(current_asmdata.CurrAsmList);
-
-}
-        current_procinfo:=old_current_procinfo;
-//        temp_procinfo.procdef.procoptions:=old_procoptions;
-
-        asm_procinfo.free;
-
-      end;
-
 
 
     procedure tcgcallnode.pass_generate_code;
     procedure tcgcallnode.pass_generate_code;
       var
       var
@@ -1214,24 +1142,17 @@ implementation
                         extra_interrupt_code;
                         extra_interrupt_code;
                       extra_call_code;
                       extra_call_code;
                       retloc.resetiftemp;
                       retloc.resetiftemp;
-                      if generate_asm_inline then
-                        begin
-                          retloc:=hlcg.get_call_result_cgpara(tprocdef(procdefinition),typedef);
-                        end
+                      if (name_to_call='') then
+                        name_to_call:=tprocdef(procdefinition).mangledname;
+                      if cnf_inherited in callnodeflags then
+                        retloc:=hlcg.a_call_name_inherited(current_asmdata.CurrAsmList,tprocdef(procdefinition),name_to_call,paralocs)
+                      { under certain conditions, a static call (i.e. without PIC) can be generated }
+                      else if ((procdefinition.owner=current_procinfo.procdef.owner) or
+                         (procdefinition.owner.symtabletype in [localsymtable,staticsymtable])
+                        ) and ((procdefinition.procoptions*[po_weakexternal,po_external])=[]) then
+                        retloc:=hlcg.a_call_name_static(current_asmdata.CurrAsmList,tprocdef(procdefinition),name_to_call,paralocs,typedef)
                       else
                       else
-                      begin
-                        if (name_to_call='') then
-                          name_to_call:=tprocdef(procdefinition).mangledname;
-                        if cnf_inherited in callnodeflags then
-                          retloc:=hlcg.a_call_name_inherited(current_asmdata.CurrAsmList,tprocdef(procdefinition),name_to_call,paralocs)
-                        { under certain conditions, a static call (i.e. without PIC) can be generated }
-                        else if ((procdefinition.owner=current_procinfo.procdef.owner) or
-                           (procdefinition.owner.symtabletype in [localsymtable,staticsymtable])
-                          ) and ((procdefinition.procoptions*[po_weakexternal,po_external])=[]) then
-                          retloc:=hlcg.a_call_name_static(current_asmdata.CurrAsmList,tprocdef(procdefinition),name_to_call,paralocs,typedef)
-                        else
-                          retloc:=hlcg.a_call_name(current_asmdata.CurrAsmList,tprocdef(procdefinition),name_to_call,paralocs,typedef,po_weakexternal in procdefinition.procoptions);
-                      end;
+                        retloc:=hlcg.a_call_name(current_asmdata.CurrAsmList,tprocdef(procdefinition),name_to_call,paralocs,typedef,po_weakexternal in procdefinition.procoptions);
                       extra_post_call_code;
                       extra_post_call_code;
                     end;
                     end;
                end;
                end;

+ 0 - 15
compiler/psub.pas

@@ -181,13 +181,11 @@ implementation
           ppu file }
           ppu file }
         if df_generic in current_procinfo.procdef.defoptions then
         if df_generic in current_procinfo.procdef.defoptions then
           exit;
           exit;
-{
         if pi_has_assembler_block in current_procinfo.flags then
         if pi_has_assembler_block in current_procinfo.flags then
           begin
           begin
             _no_inline('assembler');
             _no_inline('assembler');
             exit;
             exit;
           end;
           end;
-}
         if (pi_has_global_goto in current_procinfo.flags) or
         if (pi_has_global_goto in current_procinfo.flags) or
            (pi_has_interproclabel in current_procinfo.flags) then
            (pi_has_interproclabel in current_procinfo.flags) then
           begin
           begin
@@ -2215,19 +2213,6 @@ implementation
 
 
             finish_eh;
             finish_eh;
 
 
-            if (po_assembler in procdef.procoptions) and (po_inline in procdef.procoptions) then
-              begin
-                if procdef.inlininginfo^.code.nodetype=asmn then
-                  begin
-//                    tasmnode(procdef.inlininginfo^.code).p_asm.Clear;
-//                    tasmnode(procdef.inlininginfo^.code).p_asm.concatListcopy(aktproccode);
-                    gen_proc_entry_code(templist);
-                    tasmnode(procdef.inlininginfo^.code).p_asm.insertList(templist);
-                    gen_proc_exit_code(templist);
-                    tasmnode(procdef.inlininginfo^.code).p_asm.concatList(templist);
-                  end;
-              end;
-
             hlcg.record_generated_code_for_procdef(current_procinfo.procdef,aktproccode,aktlocaldata);
             hlcg.record_generated_code_for_procdef(current_procinfo.procdef,aktproccode,aktlocaldata);
 
 
             { now generate code for any exception filters (they need the tempgen) }
             { now generate code for any exception filters (they need the tempgen) }