* cpu16bitalu fixes in tcgshlshrnode.second_integer

git-svn-id: branches/i8086@23791 -
This commit is contained in:
nickysn 2013-03-11 16:13:25 +00:00
parent 78cf362a90
commit 48bba896a5

View File

@ -435,14 +435,34 @@ implementation
{ load left operators in a register } { load left operators in a register }
if is_signed(left.resultdef) then if is_signed(left.resultdef) then
begin begin
opsize:=OS_SINT; {$ifdef cpu16bitalu}
opdef:=ossinttype if left.resultdef.size > 2 then
begin
opsize:=OS_S32;
opdef:=s32inttype;
end
else
{$endif cpu16bitalu}
begin
opsize:=OS_SINT;
opdef:=ossinttype
end;
end end
else else
begin begin
opsize:=OS_INT; {$ifdef cpu16bitalu}
opdef:=osuinttype; if left.resultdef.size > 2 then
end; begin
opsize:=OS_32;
opdef:=u32inttype;
end
else
{$endif cpu16bitalu}
begin
opsize:=OS_INT;
opdef:=osuinttype;
end;
end;
{$endif cpunodefaultint} {$endif cpunodefaultint}
hlcg.location_force_reg(current_asmdata.CurrAsmList,left.location,left.resultdef,opdef,true); hlcg.location_force_reg(current_asmdata.CurrAsmList,left.location,left.resultdef,opdef,true);