* generic a_call_ref

This commit is contained in:
peter 2003-06-01 01:02:39 +00:00
parent 4d70aebb1b
commit 948ef20ecc

View File

@ -184,7 +184,7 @@ unit cgobj;
This routine must be overriden for each new target cpu.
}
procedure a_call_name(list : taasmoutput;const s : string);virtual; abstract;
procedure a_call_ref(list : taasmoutput;const ref : treference);virtual;abstract;
procedure a_call_ref(list : taasmoutput;const ref : treference);virtual;
procedure a_call_reg(list : taasmoutput;reg : tregister);virtual;abstract;
procedure a_call_loc(list : taasmoutput;const loc:tlocation);
@ -864,6 +864,25 @@ unit cgobj;
end;
procedure tcg.a_call_ref(list : taasmoutput;const ref:treference);
var
tmpreg: tregister;
begin
{$ifdef newra}
tmpreg:=rg.getaddressregister(list);
{$else}
tmpreg := get_scratch_reg_address(list);
{$endif}
a_load_ref_reg(list,OS_ADDR,ref,tmpreg);
a_call_reg(list,tmpreg);
{$ifdef newra}
rg.ungetaddressregister(list,tmpreg);
{$else}
free_scratch_reg(list,tmpreg);
{$endif}
end;
procedure tcg.a_call_loc(list : taasmoutput;const loc:tlocation);
begin
case loc.loc of
@ -1140,8 +1159,10 @@ unit cgobj;
procedure tcg.a_op_reg_reg_reg(list: taasmoutput; op: TOpCg;
size: tcgsize; src1, src2, dst: tregister);
{$ifdef newra}
var
tmpreg: tregister;
{$endif newra}
begin
if (dst.number <> src1.number) then
begin
@ -1691,7 +1712,10 @@ finalization
end.
{
$Log$
Revision 1.103 2003-05-30 23:57:08 peter
Revision 1.104 2003-06-01 01:02:39 peter
* generic a_call_ref
Revision 1.103 2003/05/30 23:57:08 peter
* more sparc cleanup
* accumulator removed, splitted in function_return_reg (called) and
function_result_reg (caller)