diff --git a/compiler/x86/cgx86.pas b/compiler/x86/cgx86.pas index c3b023f80c..c6a7696884 100644 --- a/compiler/x86/cgx86.pas +++ b/compiler/x86/cgx86.pas @@ -1273,9 +1273,9 @@ unit cgx86; { load destination } a_load_reg_reg(list,OS_INT,OS_INT,NR_ESP,r); - { don't destroy the registers! } - list.concat(Taicpu.op_reg(A_PUSH,S_L,NR_ECX)); - list.concat(Taicpu.op_reg(A_PUSH,S_L,NR_ESI)); + { Allocate other registers } + rg.getexplicitregisterint(list,NR_ECX); + rg.getexplicitregisterint(list,NR_ESI); { load count } a_load_ref_reg(list,OS_INT,OS_INT,lenref,NR_ECX); @@ -1312,8 +1312,8 @@ unit cgx86; S_L : list.concat(Taicpu.Op_none(A_MOVSD,S_NO)); end; rg.ungetregisterint(list,r); - list.concat(Taicpu.op_reg(A_POP,S_L,NR_ESI)); - list.concat(Taicpu.op_reg(A_POP,S_L,NR_ECX)); + rg.ungetregisterint(list,NR_ESI); + rg.ungetregisterint(list,NR_ECX); { patch the new address } a_load_reg_ref(list,OS_INT,OS_INT,NR_ESP,ref); @@ -1607,7 +1607,10 @@ unit cgx86; end. { $Log$ - Revision 1.65 2003-09-25 13:13:32 florian + Revision 1.66 2003-09-25 21:29:16 peter + * change push/pop in getreg/ungetreg + + Revision 1.65 2003/09/25 13:13:32 florian * more x86-64 fixes Revision 1.64 2003/09/11 11:55:00 florian