mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-08 06:39:39 +02:00
* don't destroy source register when performing division of signed
number by constant power of two git-svn-id: trunk@7431 -
This commit is contained in:
parent
b29e4ad12f
commit
683de5ada2
@ -107,8 +107,8 @@ implementation
|
||||
{ if signed, tmpreg=right value-1, otherwise 0 }
|
||||
cg.a_op_const_reg(current_asmdata.CurrAsmList,OP_AND,OS_INT,tordconstnode(right).value-1,tmpreg);
|
||||
{ add to the left value }
|
||||
cg.a_op_reg_reg(current_asmdata.CurrAsmList,OP_ADD,OS_INT,tmpreg,numerator);
|
||||
cg.a_op_const_reg_reg(current_asmdata.CurrAsmList,OP_SAR,OS_INT,aword(power),numerator,resultreg);
|
||||
cg.a_op_reg_reg(current_asmdata.CurrAsmList,OP_ADD,OS_INT,numerator,tmpreg);
|
||||
cg.a_op_const_reg_reg(current_asmdata.CurrAsmList,OP_SAR,OS_INT,aword(power),tmpreg,resultreg);
|
||||
end
|
||||
else
|
||||
cg.a_op_const_reg_reg(current_asmdata.CurrAsmList,OP_SHR,OS_INT,aword(power),numerator,resultreg);
|
||||
|
Loading…
Reference in New Issue
Block a user