mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-11-23 21:29:48 +01:00
* fixed invokeinterface usage: must also specify the number of stack
slots used by the call git-svn-id: branches/jvmbackend@18528 -
This commit is contained in:
parent
c9537e3347
commit
e8ec2c45af
@ -1846,7 +1846,8 @@ implementation
|
|||||||
begin
|
begin
|
||||||
{
|
{
|
||||||
invoke types:
|
invoke types:
|
||||||
* invokeinterface: call method from an interface
|
* invokeinterface: call method from an interface (must also specify
|
||||||
|
number of parameters in terms of stack slot count!)
|
||||||
* invokespecial: invoke a constructor, method in a superclass,
|
* invokespecial: invoke a constructor, method in a superclass,
|
||||||
or private instance method
|
or private instance method
|
||||||
* invokestatic: invoke a class method (private or not)
|
* invokestatic: invoke a class method (private or not)
|
||||||
@ -1893,7 +1894,13 @@ implementation
|
|||||||
else
|
else
|
||||||
internalerror(2010122602);
|
internalerror(2010122602);
|
||||||
end;
|
end;
|
||||||
list.concat(taicpu.op_sym(opc,current_asmdata.RefAsmSymbol(s)));
|
if (opc<>a_invokeinterface) then
|
||||||
|
list.concat(taicpu.op_sym(opc,current_asmdata.RefAsmSymbol(s)))
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
pd.init_paraloc_info(calleeside);
|
||||||
|
list.concat(taicpu.op_sym_const(opc,current_asmdata.RefAsmSymbol(s),pd.calleeargareasize));
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure thlcgjvm.g_call_system_proc(list: TAsmList; const procname: string);
|
procedure thlcgjvm.g_call_system_proc(list: TAsmList; const procname: string);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user