mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-14 10:09:20 +02:00
* Dummy implementations of a_bit_scan_reg_reg and g_stackpointer_alloc in tcg, removes the need to override these methods in every descendant code generator solely to avoid "constructing a class with abstract method" warning.
git-svn-id: trunk@28175 -
This commit is contained in:
parent
e5656a6f7e
commit
e4fea2ebc8
@ -93,7 +93,6 @@ unit cgcpu;
|
|||||||
function handle_load_store(list:TAsmList;op: tasmop;oppostfix : toppostfix;reg:tregister;ref: treference):treference; virtual;
|
function handle_load_store(list:TAsmList;op: tasmop;oppostfix : toppostfix;reg:tregister;ref: treference):treference; virtual;
|
||||||
|
|
||||||
procedure g_intf_wrapper(list: TAsmList; procdef: tprocdef; const labelname: string; ioffset: longint);override;
|
procedure g_intf_wrapper(list: TAsmList; procdef: tprocdef; const labelname: string; ioffset: longint);override;
|
||||||
procedure g_stackpointer_alloc(list : TAsmList;size : longint);override;
|
|
||||||
|
|
||||||
procedure a_loadmm_reg_reg(list: TAsmList; fromsize, tosize : tcgsize;reg1, reg2: tregister;shuffle : pmmshuffle); override;
|
procedure a_loadmm_reg_reg(list: TAsmList; fromsize, tosize : tcgsize;reg1, reg2: tregister;shuffle : pmmshuffle); override;
|
||||||
procedure a_loadmm_ref_reg(list: TAsmList; fromsize, tosize : tcgsize;const ref: treference; reg: tregister;shuffle : pmmshuffle); override;
|
procedure a_loadmm_ref_reg(list: TAsmList; fromsize, tosize : tcgsize;const ref: treference; reg: tregister;shuffle : pmmshuffle); override;
|
||||||
@ -2896,12 +2895,6 @@ unit cgcpu;
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure tbasecgarm.g_stackpointer_alloc(list: TAsmList; size: longint);
|
|
||||||
begin
|
|
||||||
internalerror(200807237);
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
function get_scalar_mm_op(fromsize,tosize : tcgsize) : tasmop;
|
function get_scalar_mm_op(fromsize,tosize : tcgsize) : tasmop;
|
||||||
const
|
const
|
||||||
convertop : array[OS_F32..OS_F128,OS_F32..OS_F128] of tasmop = (
|
convertop : array[OS_F32..OS_F128,OS_F32..OS_F128] of tasmop = (
|
||||||
|
@ -99,14 +99,12 @@ unit cgcpu;
|
|||||||
tmpreg : tregister) : treference;
|
tmpreg : tregister) : treference;
|
||||||
|
|
||||||
procedure g_intf_wrapper(list: TAsmList; procdef: tprocdef; const labelname: string; ioffset: longint);override;
|
procedure g_intf_wrapper(list: TAsmList; procdef: tprocdef; const labelname: string; ioffset: longint);override;
|
||||||
procedure g_stackpointer_alloc(list : TAsmList;size : longint);override;
|
|
||||||
procedure emit_mov(list: TAsmList;reg2: tregister; reg1: tregister);
|
procedure emit_mov(list: TAsmList;reg2: tregister; reg1: tregister);
|
||||||
|
|
||||||
procedure a_adjust_sp(list: TAsmList; value: longint);
|
procedure a_adjust_sp(list: TAsmList; value: longint);
|
||||||
function GetLoad(const ref : treference) : tasmop;
|
function GetLoad(const ref : treference) : tasmop;
|
||||||
function GetStore(const ref: treference): tasmop;
|
function GetStore(const ref: treference): tasmop;
|
||||||
|
|
||||||
procedure a_bit_scan_reg_reg(list: TAsmList; reverse: boolean; size: TCGSize; src, dst: TRegister); override;
|
|
||||||
protected
|
protected
|
||||||
procedure a_op_reg_reg_internal(list: TAsmList; Op: TOpCG; size: TCGSize; src, srchi, dst, dsthi: TRegister);
|
procedure a_op_reg_reg_internal(list: TAsmList; Op: TOpCG; size: TCGSize; src, srchi, dst, dsthi: TRegister);
|
||||||
procedure a_op_const_reg_internal(list : TAsmList; Op: TOpCG; size: TCGSize; a: tcgint; reg, reghi: TRegister);
|
procedure a_op_const_reg_internal(list : TAsmList; Op: TOpCG; size: TCGSize; a: tcgint; reg, reghi: TRegister);
|
||||||
@ -1378,12 +1376,6 @@ unit cgcpu;
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure tcgavr.a_bit_scan_reg_reg(list: TAsmList; reverse: boolean; size: TCGSize; src, dst: TRegister);
|
|
||||||
begin
|
|
||||||
Comment(V_Error,'tcgarm.a_bit_scan_reg_reg method not implemented');
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
procedure tcgavr.a_jmp_name(list : TAsmList;const s : string);
|
procedure tcgavr.a_jmp_name(list : TAsmList;const s : string);
|
||||||
var
|
var
|
||||||
ai : taicpu;
|
ai : taicpu;
|
||||||
@ -1883,12 +1875,6 @@ unit cgcpu;
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure tcgavr.g_stackpointer_alloc(list: TAsmList; size: longint);
|
|
||||||
begin
|
|
||||||
internalerror(201201071);
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
procedure tcgavr.g_intf_wrapper(list: TAsmList; procdef: tprocdef; const labelname: string; ioffset: longint);
|
procedure tcgavr.g_intf_wrapper(list: TAsmList; procdef: tprocdef; const labelname: string; ioffset: longint);
|
||||||
begin
|
begin
|
||||||
//internalerror(2011021324);
|
//internalerror(2011021324);
|
||||||
|
@ -247,7 +247,7 @@ unit cgobj;
|
|||||||
procedure a_loadaddr_ref_reg(list : TAsmList;const ref : treference;r : tregister);virtual; abstract;
|
procedure a_loadaddr_ref_reg(list : TAsmList;const ref : treference;r : tregister);virtual; abstract;
|
||||||
|
|
||||||
{ bit scan instructions }
|
{ bit scan instructions }
|
||||||
procedure a_bit_scan_reg_reg(list: TAsmList; reverse: boolean; size: tcgsize; src, dst: TRegister); virtual; abstract;
|
procedure a_bit_scan_reg_reg(list: TAsmList; reverse: boolean; size: tcgsize; src, dst: TRegister); virtual;
|
||||||
|
|
||||||
{ Multiplication with doubling result size.
|
{ Multiplication with doubling result size.
|
||||||
dstlo or dsthi may be NR_NO, in which case corresponding half of result is discarded. }
|
dstlo or dsthi may be NR_NO, in which case corresponding half of result is discarded. }
|
||||||
@ -412,7 +412,7 @@ unit cgobj;
|
|||||||
|
|
||||||
@param(size Number of bytes to allocate)
|
@param(size Number of bytes to allocate)
|
||||||
}
|
}
|
||||||
procedure g_stackpointer_alloc(list : TAsmList;size : longint);virtual; abstract;
|
procedure g_stackpointer_alloc(list : TAsmList;size : longint);virtual;
|
||||||
{# Emits instruction for allocating the locals in entry
|
{# Emits instruction for allocating the locals in entry
|
||||||
code of a routine. This is one of the first
|
code of a routine. This is one of the first
|
||||||
routine called in @var(genentrycode).
|
routine called in @var(genentrycode).
|
||||||
@ -2509,6 +2509,18 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure tcg.a_bit_scan_reg_reg(list: TAsmList; reverse: boolean; size: tcgsize; src, dst: TRegister);
|
||||||
|
begin
|
||||||
|
internalerror(2014070601);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure tcg.g_stackpointer_alloc(list: TAsmList; size: longint);
|
||||||
|
begin
|
||||||
|
internalerror(2014070602);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure tcg.a_mul_reg_reg_pair(list: TAsmList; size: TCgSize; src1,src2,dstlo,dsthi: TRegister);
|
procedure tcg.a_mul_reg_reg_pair(list: TAsmList; size: TCgSize; src1,src2,dstlo,dsthi: TRegister);
|
||||||
begin
|
begin
|
||||||
internalerror(2014060801);
|
internalerror(2014060801);
|
||||||
|
@ -88,9 +88,6 @@ type
|
|||||||
procedure g_intf_wrapper(list: tasmlist; procdef: tprocdef; const labelname: string; ioffset: longint); override;
|
procedure g_intf_wrapper(list: tasmlist; procdef: tprocdef; const labelname: string; ioffset: longint); override;
|
||||||
procedure g_external_wrapper(list : TAsmList; procdef: tprocdef; const externalname: string);override;
|
procedure g_external_wrapper(list : TAsmList; procdef: tprocdef; const externalname: string);override;
|
||||||
procedure g_profilecode(list: TAsmList);override;
|
procedure g_profilecode(list: TAsmList);override;
|
||||||
{ Transform unsupported methods into Internal errors }
|
|
||||||
procedure a_bit_scan_reg_reg(list: TAsmList; reverse: boolean; size: TCGSize; src, dst: TRegister); override;
|
|
||||||
procedure g_stackpointer_alloc(list : TAsmList;localsize : longint);override;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
TCg64MPSel = class(tcg64f32)
|
TCg64MPSel = class(tcg64f32)
|
||||||
@ -1763,15 +1760,6 @@ procedure TCGMIPS.g_adjust_self_value(list:TAsmList;procdef: tprocdef;ioffset: t
|
|||||||
InternalError(2013020102);
|
InternalError(2013020102);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCGMIPS.g_stackpointer_alloc(list : TAsmList;localsize : longint);
|
|
||||||
begin
|
|
||||||
Comment(V_Error,'TCgMPSel.g_stackpointer_alloc method not implemented');
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TCGMIPS.a_bit_scan_reg_reg(list: TAsmList; reverse: boolean; size: TCGSize; src, dst: TRegister);
|
|
||||||
begin
|
|
||||||
Comment(V_Error,'TCgMPSel.a_bit_scan_reg_reg method not implemented');
|
|
||||||
end;
|
|
||||||
|
|
||||||
{****************************************************************************
|
{****************************************************************************
|
||||||
TCG64_MIPSel
|
TCG64_MIPSel
|
||||||
|
@ -63,10 +63,6 @@ unit cgppc;
|
|||||||
|
|
||||||
procedure g_maybe_got_init(list: TAsmList); override;
|
procedure g_maybe_got_init(list: TAsmList); override;
|
||||||
|
|
||||||
{ Transform unsupported methods into Internal errors }
|
|
||||||
procedure a_bit_scan_reg_reg(list: TAsmList; reverse: boolean; size: TCGSize; src, dst: TRegister); override;
|
|
||||||
procedure g_stackpointer_alloc(list : TAsmList;localsize : longint);override;
|
|
||||||
|
|
||||||
procedure get_aix_toc_sym(list: TAsmList; const symname: string; const flags: tindsymflags; out ref: treference; force_direct_toc: boolean);
|
procedure get_aix_toc_sym(list: TAsmList; const symname: string; const flags: tindsymflags; out ref: treference; force_direct_toc: boolean);
|
||||||
procedure g_load_check_simple(list: TAsmList; const ref: treference; size: aint);
|
procedure g_load_check_simple(list: TAsmList; const ref: treference; size: aint);
|
||||||
procedure g_external_wrapper(list: TAsmList; pd: TProcDef; const externalname: string); override;
|
procedure g_external_wrapper(list: TAsmList; pd: TProcDef; const externalname: string); override;
|
||||||
@ -603,17 +599,6 @@ unit cgppc;
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure tcgppcgen.g_stackpointer_alloc(list : TAsmList;localsize : longint);
|
|
||||||
begin
|
|
||||||
Comment(V_Error,'tcgppcgen.g_stackpointer_alloc method not implemented');
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure tcgppcgen.a_bit_scan_reg_reg(list: TAsmList; reverse: boolean; size: TCGSize; src, dst: TRegister);
|
|
||||||
begin
|
|
||||||
Comment(V_Error,'tcgppcgen.a_bit_scan_reg_reg method not implemented');
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
procedure tcgppcgen.g_overflowcheck(list: TAsmList; const l: tlocation; def: tdef);
|
procedure tcgppcgen.g_overflowcheck(list: TAsmList; const l: tlocation; def: tdef);
|
||||||
var
|
var
|
||||||
hl : tasmlabel;
|
hl : tasmlabel;
|
||||||
|
@ -90,9 +90,6 @@ interface
|
|||||||
procedure g_adjust_self_value(list:TAsmList;procdef: tprocdef;ioffset: tcgint);override;
|
procedure g_adjust_self_value(list:TAsmList;procdef: tprocdef;ioffset: tcgint);override;
|
||||||
procedure g_intf_wrapper(list: TAsmList; procdef: tprocdef; const labelname: string; ioffset: longint);override;
|
procedure g_intf_wrapper(list: TAsmList; procdef: tprocdef; const labelname: string; ioffset: longint);override;
|
||||||
procedure g_external_wrapper(list : TAsmList; procdef: tprocdef; const externalname: string);override;
|
procedure g_external_wrapper(list : TAsmList; procdef: tprocdef; const externalname: string);override;
|
||||||
{ Transform unsupported methods into Internal errors }
|
|
||||||
procedure a_bit_scan_reg_reg(list: TAsmList; reverse: boolean; size: TCGSize; src, dst: TRegister); override;
|
|
||||||
procedure g_stackpointer_alloc(list : TAsmList;localsize : longint);override;
|
|
||||||
private
|
private
|
||||||
use_unlimited_pic_mode : boolean;
|
use_unlimited_pic_mode : boolean;
|
||||||
end;
|
end;
|
||||||
@ -1362,16 +1359,6 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure tcgsparc.g_stackpointer_alloc(list : TAsmList;localsize : longint);
|
|
||||||
begin
|
|
||||||
Comment(V_Error,'tcgsparc.g_stackpointer_alloc method not implemented');
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure tcgsparc.a_bit_scan_reg_reg(list: TAsmList; reverse: boolean; size: TCGSize; src, dst: TRegister);
|
|
||||||
begin
|
|
||||||
Comment(V_Error,'tcgsparc.a_bit_scan_reg_reg method not implemented');
|
|
||||||
end;
|
|
||||||
|
|
||||||
{****************************************************************************
|
{****************************************************************************
|
||||||
TCG64Sparc
|
TCG64Sparc
|
||||||
****************************************************************************}
|
****************************************************************************}
|
||||||
|
Loading…
Reference in New Issue
Block a user