* use only one temporary 16-bit register, instead of two in tcg8086.g_flags2ref

when the target ref is 32-bit.

git-svn-id: trunk@26342 -
This commit is contained in:
nickysn 2013-12-31 16:27:11 +00:00
parent 72e526b9b1
commit 974fea30b2

View File

@ -1382,10 +1382,15 @@ unit cgcpu;
procedure tcg8086.g_flags2ref(list: TAsmList; size: TCgSize; const f: tresflags; const ref: TReference);
var
tmpreg : tregister;
tmpregsize: TCgSize;
begin
tmpreg:=getintregister(list,size);
g_flags2reg(list,size,f,tmpreg);
a_load_reg_ref(list,size,size,tmpreg,ref);
if size in [OS_8,OS_S8,OS_16,OS_S16] then
tmpregsize:=size
else
tmpregsize:=OS_16;
tmpreg:=getintregister(list,tmpregsize);
g_flags2reg(list,tmpregsize,f,tmpreg);
a_load_reg_ref(list,tmpregsize,size,tmpreg,ref);
end;