* bugfix of missing popecx for shift operations

This commit is contained in:
carl 2002-06-16 08:16:59 +00:00
parent cdd558c3b7
commit b2ab15a9a3

View File

@ -783,6 +783,7 @@ unit cgcpu;
OP_SHR,OP_SHL,OP_SAR:
begin
tmpreg := R_NO;
popecx := false;
{ we need cl to hold the shift count, so if the destination }
{ is ecx, save it to a temp for now }
if dst in [R_ECX,R_CX,R_CL] then
@ -808,7 +809,7 @@ unit cgcpu;
list.concat(taicpu.op_reg(A_PUSH,S_L,R_ECX));
popecx := true;
end;
a_load_reg_reg(list,OS_8,rg.makeregsize(src,OS_8),R_CL);
a_load_reg_reg(list,OS_32,rg.makeregsize(src,OS_32),R_ECX);
end
else
src := R_CL;
@ -1781,7 +1782,10 @@ begin
end.
{
$Log$
Revision 1.22 2002-05-22 19:02:16 carl
Revision 1.23 2002-06-16 08:16:59 carl
* bugfix of missing popecx for shift operations
Revision 1.22 2002/05/22 19:02:16 carl
+ generic FPC_HELP_FAIL
+ generic FPC_HELP_DESTRUCTOR instated (original from Pierre)
+ generic FPC_DISPOSE_CLASS