* fix armv7m compiler

git-svn-id: trunk@23686 -
This commit is contained in:
florian 2013-03-03 21:59:34 +00:00
parent 90f4d8ddcd
commit 9198630ce3

View File

@ -115,11 +115,8 @@ unit cgcpu;
function get_darwin_call_stub(const s: string; weak: boolean): tasmsymbol;
end;
{ tarmcgarm is shared between normal arm and thumb-2 }
tarmcgarm = class(tbasecgarm)
procedure init_register_allocators;override;
procedure done_register_allocators;override;
{ tcgarm is shared between normal arm and thumb-2 }
tcgarm = class(tbasecgarm)
procedure a_op_const_reg(list : TAsmList; Op: TOpCG; size: TCGSize; a: tcgint; reg: TRegister); override;
procedure a_op_reg_reg(list : TAsmList; Op: TOpCG; size: TCGSize; src, dst: TRegister); override;
@ -134,6 +131,13 @@ unit cgcpu;
procedure a_load_ref_reg(list : TAsmList; fromsize, tosize : tcgsize;const Ref : treference;reg : tregister);override;
end;
{ normal arm cg }
tarmcgarm = class(tcgarm)
procedure init_register_allocators;override;
procedure done_register_allocators;override;
end;
{ 64 bit cg for all arm flavours }
tbasecg64farm = class(tcg64f32)
end;
@ -149,6 +153,9 @@ unit cgcpu;
procedure a_loadmm_reg_intreg64(list: TAsmList; mmsize: tcgsize; mmreg: tregister; intreg: tregister64);override;
end;
tarmcg64farm = class(tcg64farm)
end;
tthumbcgarm = class(tbasecgarm)
procedure init_register_allocators;override;
procedure done_register_allocators;override;
@ -170,7 +177,7 @@ unit cgcpu;
procedure a_op64_const_reg(list : TAsmList;op:TOpCG;size : tcgsize;value : int64;reg : tregister64);override;
end;
tthumb2cgarm = class(tarmcgarm)
tthumb2cgarm = class(tcgarm)
procedure init_register_allocators;override;
procedure done_register_allocators;override;
@ -291,7 +298,7 @@ unit cgcpu;
end;
procedure tarmcgarm.a_load_const_reg(list : TAsmList; size: tcgsize; a : tcgint;reg : tregister);
procedure tcgarm.a_load_const_reg(list : TAsmList; size: tcgsize; a : tcgint;reg : tregister);
var
imm_shift : byte;
l : tasmlabel;
@ -332,7 +339,7 @@ unit cgcpu;
end;
procedure tarmcgarm.a_load_ref_reg(list : TAsmList; fromsize, tosize : tcgsize;const Ref : treference;reg : tregister);
procedure tcgarm.a_load_ref_reg(list : TAsmList; fromsize, tosize : tcgsize;const Ref : treference;reg : tregister);
var
oppostfix:toppostfix;
usedtmpref: treference;
@ -616,13 +623,13 @@ unit cgcpu;
end;
procedure tarmcgarm.a_op_const_reg(list : TAsmList; Op: TOpCG; size: TCGSize; a: tcgint; reg: TRegister);
procedure tcgarm.a_op_const_reg(list : TAsmList; Op: TOpCG; size: TCGSize; a: tcgint; reg: TRegister);
begin
a_op_const_reg_reg(list,op,size,a,reg,reg);
end;
procedure tarmcgarm.a_op_reg_reg(list : TAsmList; Op: TOpCG; size: TCGSize; src, dst: TRegister);
procedure tcgarm.a_op_reg_reg(list : TAsmList; Op: TOpCG; size: TCGSize; src, dst: TRegister);
var
so : tshifterop;
begin
@ -667,7 +674,7 @@ unit cgcpu;
(PF_None,PF_None,PF_None,PF_None,PF_None,PF_None,PF_None,PF_None,PF_None,PF_None,PF_None,
PF_None,PF_None,PF_None,PF_None,PF_None,PF_None,PF_None);
procedure tarmcgarm.a_op_const_reg_reg(list: TAsmList; op: TOpCg;
procedure tcgarm.a_op_const_reg_reg(list: TAsmList; op: TOpCg;
size: tcgsize; a: tcgint; src, dst: tregister);
var
ovloc : tlocation;
@ -676,7 +683,7 @@ unit cgcpu;
end;
procedure tarmcgarm.a_op_reg_reg_reg(list: TAsmList; op: TOpCg;
procedure tcgarm.a_op_reg_reg_reg(list: TAsmList; op: TOpCg;
size: tcgsize; src1, src2, dst: tregister);
var
ovloc : tlocation;
@ -814,7 +821,7 @@ unit cgcpu;
end;
procedure tarmcgarm.a_op_const_reg_reg_checkoverflow(list: TAsmList; op: TOpCg; size: tcgsize; a: tcgint; src, dst: tregister;setflags : boolean;var ovloc : tlocation);
procedure tcgarm.a_op_const_reg_reg_checkoverflow(list: TAsmList; op: TOpCg; size: tcgsize; a: tcgint; src, dst: tregister;setflags : boolean;var ovloc : tlocation);
var
shift : byte;
tmpreg : tregister;
@ -962,7 +969,7 @@ unit cgcpu;
end;
procedure tarmcgarm.a_op_reg_reg_reg_checkoverflow(list: TAsmList; op: TOpCg; size: tcgsize; src1, src2, dst: tregister;setflags : boolean;var ovloc : tlocation);
procedure tcgarm.a_op_reg_reg_reg_checkoverflow(list: TAsmList; op: TOpCg; size: tcgsize; src1, src2, dst: tregister;setflags : boolean;var ovloc : tlocation);
var
so : tshifterop;
tmpreg,overflowreg : tregister;
@ -4923,7 +4930,7 @@ unit cgcpu;
else
begin
cg:=tarmcgarm.create;
cg64:=tcg64farm.create;
cg64:=tarmcg64farm.create;
casmoptimizer:=TCpuAsmOptimizer;
end;