mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-11 09:06:14 +02:00
* fix full cycle after adding new boolean types
git-svn-id: branches/pasboolxx@17847 -
This commit is contained in:
parent
990add9272
commit
26850e3425
@ -2084,7 +2084,8 @@ unit cgcpu;
|
|||||||
|
|
||||||
if not((def.typ=pointerdef) or
|
if not((def.typ=pointerdef) or
|
||||||
((def.typ=orddef) and
|
((def.typ=orddef) and
|
||||||
(torddef(def).ordtype in [u64bit,u16bit,u32bit,u8bit,uchar,pasbool]))) then
|
(torddef(def).ordtype in [u64bit,u16bit,u32bit,u8bit,uchar,
|
||||||
|
pasbool8,pasbool16,pasbool32,pasbool64]))) then
|
||||||
ai.SetCondition(C_VC)
|
ai.SetCondition(C_VC)
|
||||||
else
|
else
|
||||||
if TAiCpu(List.Last).opcode in [A_RSB,A_RSC,A_SBC,A_SUB] then
|
if TAiCpu(List.Last).opcode in [A_RSB,A_RSC,A_SBC,A_SUB] then
|
||||||
|
@ -1567,7 +1567,8 @@ unit cgcpu;
|
|||||||
current_asmdata.getjumplabel(hl);
|
current_asmdata.getjumplabel(hl);
|
||||||
if not ((def.typ=pointerdef) or
|
if not ((def.typ=pointerdef) or
|
||||||
((def.typ=orddef) and
|
((def.typ=orddef) and
|
||||||
(torddef(def).ordtype in [u64bit,u16bit,u32bit,u8bit,uchar,pasbool]))) then
|
(torddef(def).ordtype in [u64bit,u16bit,u32bit,u8bit,uchar,
|
||||||
|
pasbool8,pasbool16,pasbool32,pasbool64]))) then
|
||||||
cond:=C_VC
|
cond:=C_VC
|
||||||
else
|
else
|
||||||
cond:=C_CC;
|
cond:=C_CC;
|
||||||
|
@ -358,12 +358,12 @@ implementation
|
|||||||
otl,ofl : tasmlabel;
|
otl,ofl : tasmlabel;
|
||||||
begin
|
begin
|
||||||
// writeln('second_cmpboolean');
|
// writeln('second_cmpboolean');
|
||||||
if (torddef(left.resultdef).ordtype in [pasbool,bool8bit]) or
|
if (torddef(left.resultdef).ordtype in [pasbool8,bool8bit]) or
|
||||||
(torddef(right.resultdef).ordtype in [pasbool,bool8bit]) then
|
(torddef(right.resultdef).ordtype in [pasbool8,bool8bit]) then
|
||||||
cgsize:=OS_8
|
cgsize:=OS_8
|
||||||
else
|
else
|
||||||
if (torddef(left.resultdef).ordtype=bool16bit) or
|
if (torddef(left.resultdef).ordtype in [pasbool16,bool16bit]) or
|
||||||
(torddef(right.resultdef).ordtype=bool16bit) then
|
(torddef(right.resultdef).ordtype in [pasbool16,bool16bit]) then
|
||||||
cgsize:=OS_16
|
cgsize:=OS_16
|
||||||
else
|
else
|
||||||
cgsize:=OS_32;
|
cgsize:=OS_32;
|
||||||
|
@ -580,7 +580,8 @@ unit cgppc;
|
|||||||
current_asmdata.getjumplabel(hl);
|
current_asmdata.getjumplabel(hl);
|
||||||
if not ((def.typ=pointerdef) or
|
if not ((def.typ=pointerdef) or
|
||||||
((def.typ=orddef) and
|
((def.typ=orddef) and
|
||||||
(torddef(def).ordtype in [u64bit,u16bit,u32bit,u8bit,uchar,pasbool]))) then
|
(torddef(def).ordtype in [u64bit,u16bit,u32bit,u8bit,uchar,
|
||||||
|
pasbool8,pasbool16,pasbool32,pasbool64]))) then
|
||||||
begin
|
begin
|
||||||
if (current_settings.optimizecputype >= cpu_ppc970) or
|
if (current_settings.optimizecputype >= cpu_ppc970) or
|
||||||
(current_settings.cputype >= cpu_ppc970) then
|
(current_settings.cputype >= cpu_ppc970) then
|
||||||
|
@ -177,12 +177,12 @@ implementation
|
|||||||
firstcomplex(self);
|
firstcomplex(self);
|
||||||
|
|
||||||
cmpop:=false;
|
cmpop:=false;
|
||||||
if (torddef(left.resultdef).ordtype in [pasbool,bool8bit]) or
|
if (torddef(left.resultdef).ordtype in [pasbool8,bool8bit]) or
|
||||||
(torddef(right.resultdef).ordtype in [pasbool,bool8bit]) then
|
(torddef(right.resultdef).ordtype in [pasbool8,bool8bit]) then
|
||||||
cgsize:=OS_8
|
cgsize:=OS_8
|
||||||
else
|
else
|
||||||
if (torddef(left.resultdef).ordtype=bool16bit) or
|
if (torddef(left.resultdef).ordtype in [pasbool16,bool16bit]) or
|
||||||
(torddef(right.resultdef).ordtype=bool16bit) then
|
(torddef(right.resultdef).ordtype in [pasbool16,bool16bit]) then
|
||||||
cgsize:=OS_16
|
cgsize:=OS_16
|
||||||
else
|
else
|
||||||
cgsize:=OS_32;
|
cgsize:=OS_32;
|
||||||
|
@ -1052,7 +1052,8 @@ implementation
|
|||||||
begin
|
begin
|
||||||
if not((def.typ=pointerdef) or
|
if not((def.typ=pointerdef) or
|
||||||
((def.typ=orddef) and
|
((def.typ=orddef) and
|
||||||
(torddef(def).ordtype in [u64bit,u16bit,u32bit,u8bit,uchar,pasbool]))) then
|
(torddef(def).ordtype in [u64bit,u16bit,u32bit,u8bit,uchar,
|
||||||
|
pasbool8,pasbool16,pasbool32,pasbool64]))) then
|
||||||
begin
|
begin
|
||||||
ai:=TAiCpu.Op_sym(A_Bxx,hl);
|
ai:=TAiCpu.Op_sym(A_Bxx,hl);
|
||||||
ai.SetCondition(C_NO);
|
ai.SetCondition(C_NO);
|
||||||
|
@ -2208,7 +2208,8 @@ unit cgx86;
|
|||||||
current_asmdata.getjumplabel(hl);
|
current_asmdata.getjumplabel(hl);
|
||||||
if not ((def.typ=pointerdef) or
|
if not ((def.typ=pointerdef) or
|
||||||
((def.typ=orddef) and
|
((def.typ=orddef) and
|
||||||
(torddef(def).ordtype in [u64bit,u16bit,u32bit,u8bit,uchar,pasbool8,pasbool16,pasbool32,pasbool64]))) then
|
(torddef(def).ordtype in [u64bit,u16bit,u32bit,u8bit,uchar,
|
||||||
|
pasbool8,pasbool16,pasbool32,pasbool64]))) then
|
||||||
cond:=C_NO
|
cond:=C_NO
|
||||||
else
|
else
|
||||||
cond:=C_NB;
|
cond:=C_NB;
|
||||||
|
Loading…
Reference in New Issue
Block a user