From fdc1419832344e3840030133c9449b47ef641aa7 Mon Sep 17 00:00:00 2001 From: florian Date: Sun, 13 Nov 2005 14:53:04 +0000 Subject: [PATCH] * fixed interface wrappers in pic git-svn-id: trunk@1728 - --- compiler/x86_64/cgcpu.pas | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/compiler/x86_64/cgcpu.pas b/compiler/x86_64/cgcpu.pas index bf3116b9cc..4a9afbfebd 100644 --- a/compiler/x86_64/cgcpu.pas +++ b/compiler/x86_64/cgcpu.pas @@ -89,6 +89,8 @@ unit cgcpu; var make_global : boolean; href : treference; + sym : tasmsymbol; + r : treference; begin if not(procdef.proctypeoption in [potype_function,potype_procedure]) then Internalerror(200006137); @@ -125,7 +127,16 @@ unit cgcpu; list.concat(taicpu.op_reg(A_JMP,S_Q,NR_RAX)); end else - list.concat(taicpu.op_sym(A_JMP,S_NO,objectlibrary.newasmsymbol(procdef.mangledname,AB_EXTERNAL,AT_FUNCTION))); + begin + sym:=objectlibrary.newasmsymbol(procdef.mangledname,AB_EXTERNAL,AT_FUNCTION); + reference_reset_symbol(r,sym,0); + if cs_create_pic in aktmoduleswitches then + r.refaddr:=addr_pic + else + r.refaddr:=addr_full; + + list.concat(taicpu.op_ref(A_JMP,S_NO,r)); + end; List.concat(Tai_symbol_end.Createname(labelname)); end;