mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-12 13:49:39 +02:00
x86: It is more optimal to push some register (NR_FRAME_POINTER_REG) instead of a constant value in a_load_undefined_cgpara().
git-svn-id: trunk@46521 -
This commit is contained in:
parent
e28fca9729
commit
0a34a090e0
@ -43,6 +43,8 @@ interface
|
|||||||
protected
|
protected
|
||||||
procedure gen_load_uninitialized_function_result(list: TAsmList; pd: tprocdef; resdef: tdef; const resloc: tcgpara); override;
|
procedure gen_load_uninitialized_function_result(list: TAsmList; pd: tprocdef; resdef: tdef; const resloc: tcgpara); override;
|
||||||
procedure a_jmp_external_name(list: TAsmList; const externalname: TSymStr); override;
|
procedure a_jmp_external_name(list: TAsmList; const externalname: TSymStr); override;
|
||||||
|
public
|
||||||
|
procedure a_load_undefined_cgpara(list: TAsmList; size: tdef; const cgpara: TCGPara); override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@ -89,4 +91,14 @@ implementation
|
|||||||
list.concat(taicpu.op_ref(A_JMP,S_NO,ref));
|
list.concat(taicpu.op_ref(A_JMP,S_NO,ref));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure thlcgx86.a_load_undefined_cgpara(list: TAsmList; size: tdef; const cgpara: TCGPara);
|
||||||
|
begin
|
||||||
|
if not (cgpara.Location^.Loc in [LOC_REGISTER,LOC_CREGISTER]) and
|
||||||
|
(cgpara.size=OS_ADDR) then
|
||||||
|
a_load_reg_cgpara(list,size,NR_FRAME_POINTER_REG,cgpara)
|
||||||
|
else
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
Loading…
Reference in New Issue
Block a user