* 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; function get_darwin_call_stub(const s: string; weak: boolean): tasmsymbol;
end; end;
{ tarmcgarm is shared between normal arm and thumb-2 } { tcgarm is shared between normal arm and thumb-2 }
tarmcgarm = class(tbasecgarm) tcgarm = class(tbasecgarm)
procedure init_register_allocators;override;
procedure done_register_allocators;override;
procedure a_op_const_reg(list : TAsmList; Op: TOpCG; size: TCGSize; a: tcgint; reg: TRegister); override; 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; 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; procedure a_load_ref_reg(list : TAsmList; fromsize, tosize : tcgsize;const Ref : treference;reg : tregister);override;
end; 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) tbasecg64farm = class(tcg64f32)
end; end;
@ -149,6 +153,9 @@ unit cgcpu;
procedure a_loadmm_reg_intreg64(list: TAsmList; mmsize: tcgsize; mmreg: tregister; intreg: tregister64);override; procedure a_loadmm_reg_intreg64(list: TAsmList; mmsize: tcgsize; mmreg: tregister; intreg: tregister64);override;
end; end;
tarmcg64farm = class(tcg64farm)
end;
tthumbcgarm = class(tbasecgarm) tthumbcgarm = class(tbasecgarm)
procedure init_register_allocators;override; procedure init_register_allocators;override;
procedure done_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; procedure a_op64_const_reg(list : TAsmList;op:TOpCG;size : tcgsize;value : int64;reg : tregister64);override;
end; end;
tthumb2cgarm = class(tarmcgarm) tthumb2cgarm = class(tcgarm)
procedure init_register_allocators;override; procedure init_register_allocators;override;
procedure done_register_allocators;override; procedure done_register_allocators;override;
@ -291,7 +298,7 @@ unit cgcpu;
end; 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 var
imm_shift : byte; imm_shift : byte;
l : tasmlabel; l : tasmlabel;
@ -332,7 +339,7 @@ unit cgcpu;
end; 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 var
oppostfix:toppostfix; oppostfix:toppostfix;
usedtmpref: treference; usedtmpref: treference;
@ -616,13 +623,13 @@ unit cgcpu;
end; 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 begin
a_op_const_reg_reg(list,op,size,a,reg,reg); a_op_const_reg_reg(list,op,size,a,reg,reg);
end; 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 var
so : tshifterop; so : tshifterop;
begin 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,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); size: tcgsize; a: tcgint; src, dst: tregister);
var var
ovloc : tlocation; ovloc : tlocation;
@ -676,7 +683,7 @@ unit cgcpu;
end; 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); size: tcgsize; src1, src2, dst: tregister);
var var
ovloc : tlocation; ovloc : tlocation;
@ -814,7 +821,7 @@ unit cgcpu;
end; 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 var
shift : byte; shift : byte;
tmpreg : tregister; tmpreg : tregister;
@ -962,7 +969,7 @@ unit cgcpu;
end; 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 var
so : tshifterop; so : tshifterop;
tmpreg,overflowreg : tregister; tmpreg,overflowreg : tregister;
@ -4923,7 +4930,7 @@ unit cgcpu;
else else
begin begin
cg:=tarmcgarm.create; cg:=tarmcgarm.create;
cg64:=tcg64farm.create; cg64:=tarmcg64farm.create;
casmoptimizer:=TCpuAsmOptimizer; casmoptimizer:=TCpuAsmOptimizer;
end; end;