Browse Source

+ a_call_name_inherited(), by default calls a_call_name() (for the JVM
target you have to use a different opcode for calling inherited methods
than for regular methods)

git-svn-id: branches/jvmbackend@18300 -

Jonas Maebe 14 years ago
parent
commit
09ac60b084
1 changed files with 8 additions and 0 deletions
  1. 8 0
      compiler/hlcgobj.pas

+ 8 - 0
compiler/hlcgobj.pas

@@ -173,6 +173,9 @@ unit hlcgobj;
           { same as a_call_name, might be overridden on certain architectures to emit
             static calls without usage of a got trampoline }
           procedure a_call_name_static(list : TAsmList;pd : tprocdef;const s : string);virtual;
+          { same as a_call_name, might be overridden on certain architectures to emit
+            special static calls for inherited methods }
+          procedure a_call_name_inherited(list : TAsmList;pd : tprocdef;const s : string);virtual;
 
           { move instructions }
           procedure a_load_const_reg(list : TAsmList;tosize : tdef;a : aint;register : tregister);virtual;abstract;
@@ -629,6 +632,11 @@ implementation
       a_call_name(list,pd,s,false);
     end;
 
+    procedure thlcgobj.a_call_name_inherited(list: TAsmList; pd: tprocdef; const s: string);
+      begin
+        a_call_name(list,pd,s,false);
+      end;
+
   procedure thlcgobj.a_load_const_ref(list: TAsmList; tosize: tdef; a: aint; const ref: treference);
     var
       tmpreg: tregister;