From b2ab15a9a3013303be93a8446769dc3446d67fca Mon Sep 17 00:00:00 2001 From: carl Date: Sun, 16 Jun 2002 08:16:59 +0000 Subject: [PATCH] * bugfix of missing popecx for shift operations --- compiler/i386/cgcpu.pas | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/compiler/i386/cgcpu.pas b/compiler/i386/cgcpu.pas index 7ee3e95c1d..f295a54b7a 100644 --- a/compiler/i386/cgcpu.pas +++ b/compiler/i386/cgcpu.pas @@ -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