diff options
author | sergei <sergei@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2014-02-03 13:28:56 +0000 |
---|---|---|
committer | sergei <sergei@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2014-02-03 13:28:56 +0000 |
commit | 5249bb79d546e1d6acf21aec658a9323ee1a15e7 (patch) | |
tree | 284f01bfceb0b8d207f7bb24ae215953ec0215a0 /compiler/hlcg2ll.pas | |
parent | b446a770ba9f9cd9e0ff7afcb0508d4b5d5bd135 (diff) | |
download | fpc-5249bb79d546e1d6acf21aec658a9323ee1a15e7.tar.gz |
* a_call_ref functionality cannot be implemented efficiently at code generator level, because references need specific preparations at earlier points. Moved this support to tcgcallnode and its x86 descendants, and got rid of all ifdef's around.
+ x86 targets now directly call procedure variables located in references.
- a_call_ref method removed from tcg and thlcgobj.
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@26666 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/hlcg2ll.pas')
-rw-r--r-- | compiler/hlcg2ll.pas | 6 |
1 files changed, 0 insertions, 6 deletions
diff --git a/compiler/hlcg2ll.pas b/compiler/hlcg2ll.pas index 25e4a13d50..22c07ec202 100644 --- a/compiler/hlcg2ll.pas +++ b/compiler/hlcg2ll.pas @@ -151,7 +151,6 @@ unit hlcg2ll; function a_call_name(list : TAsmList;pd : tprocdef;const s : TSymStr; forceresdef: tdef; weak: boolean): tcgpara;override; procedure a_call_reg(list : TAsmList;pd : tabstractprocdef;reg : tregister);override; - procedure a_call_ref(list : TAsmList;pd : tabstractprocdef;const ref : treference);override; { same as a_call_name, might be overridden on certain architectures to emit static calls without usage of a got trampoline } function a_call_name_static(list : TAsmList;pd : tprocdef;const s : TSymStr; forceresdef: tdef): tcgpara;override; @@ -462,11 +461,6 @@ implementation cg.a_call_reg(list,reg); end; - procedure thlcg2ll.a_call_ref(list: TAsmList; pd: tabstractprocdef; const ref: treference); - begin - cg.a_call_ref(list,ref); - end; - function thlcg2ll.a_call_name_static(list: TAsmList; pd: tprocdef; const s: TSymStr; forceresdef: tdef): tcgpara; begin cg.a_call_name_static(list,s); |