* Change first parameter type of function is_continuous_maks to aword type.

Add typecasts where needed to allow for successful compilation of arm-linux target
    with -CriotR options when building the compiler.

git-svn-id: trunk@40314 -
This commit is contained in:
pierre 2018-11-14 13:13:19 +00:00
parent cacd8f28eb
commit 4657f45e74
2 changed files with 5 additions and 5 deletions

View File

@ -1037,7 +1037,7 @@ unit cgcpu;
{ Doing two shifts instead of two bics might allow the peephole optimizer to fold the second shift
into the following instruction}
else if (op = OP_AND) and
is_continuous_mask(a, lsb, width) and
is_continuous_mask(aword(a), lsb, width) and
((lsb = 0) or ((lsb + width) = 32)) then
begin
shifterop_reset(so);
@ -4633,7 +4633,7 @@ unit cgcpu;
list.concat(taicpu.op_reg_reg(A_UXTH,dst,src))
else if (op = OP_AND) and is_thumb32_imm(not(dword(a))) then
list.concat(taicpu.op_reg_reg_const(A_BIC,dst,src,not(dword(a))))
else if (op = OP_AND) and is_continuous_mask(not(a), shift, width) then
else if (op = OP_AND) and is_continuous_mask(aword(not(a)), shift, width) then
begin
a_load_reg_reg(list,size,size,src,dst);
list.concat(taicpu.op_reg_const_const(A_BFC,dst,shift,width))

View File

@ -377,7 +377,7 @@ unit cpubase;
doesn't handle ROR_C detection }
function is_thumb32_imm(d : aint) : boolean;
function split_into_shifter_const(value : aint;var imm1: dword; var imm2: dword):boolean;
function is_continuous_mask(d : aint;var lsb, width: byte) : boolean;
function is_continuous_mask(d : aword;var lsb, width: byte) : boolean;
function dwarf_reg(r:tregister):shortint;
function dwarf_reg_no_error(r:tregister):shortint;
@ -610,7 +610,7 @@ unit cpubase;
end;
end;
function is_continuous_mask(d : aint;var lsb, width: byte) : boolean;
function is_continuous_mask(d : aword;var lsb, width: byte) : boolean;
var
msb : byte;
begin
@ -619,7 +619,7 @@ unit cpubase;
width:=msb-lsb+1;
result:=(lsb<>255) and (msb<>255) and ((((1 shl (msb-lsb+1))-1) shl lsb) = d);
result:=(lsb<>255) and (msb<>255) and (aword(((1 shl (msb-lsb+1))-1) shl lsb) = d);
end;