mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-15 08:49:25 +02:00
* source can also be a LOC_CREGISTER for bsr/bsf
git-svn-id: trunk@29980 -
This commit is contained in:
parent
a8d05b66e2
commit
5e339e89e4
@ -749,15 +749,15 @@ implementation
|
|||||||
secondpass(left);
|
secondpass(left);
|
||||||
|
|
||||||
opsize:=tcgsize2unsigned[left.location.size];
|
opsize:=tcgsize2unsigned[left.location.size];
|
||||||
if opsize < OS_32 then
|
if opsize<OS_32 then
|
||||||
opsize:=OS_32;
|
opsize:=OS_32;
|
||||||
|
|
||||||
if (left.location.loc <> LOC_REGISTER) or
|
if not(left.location.loc in [LOC_REGISTER,LOC_CREGISTER]) or
|
||||||
(left.location.size <> opsize) then
|
(left.location.size<>opsize) then
|
||||||
hlcg.location_force_reg(current_asmdata.CurrAsmList,left.location,left.resultdef,cgsize_orddef(opsize),true);
|
hlcg.location_force_reg(current_asmdata.CurrAsmList,left.location,left.resultdef,cgsize_orddef(opsize),true);
|
||||||
|
|
||||||
location_reset(location,LOC_REGISTER,opsize);
|
location_reset(location,LOC_REGISTER,opsize);
|
||||||
location.register := cg.getintregister(current_asmdata.CurrAsmList,opsize);
|
location.register:=cg.getintregister(current_asmdata.CurrAsmList,opsize);
|
||||||
cg.a_bit_scan_reg_reg(current_asmdata.CurrAsmList,reverse,opsize,left.location.register,location.register);
|
cg.a_bit_scan_reg_reg(current_asmdata.CurrAsmList,reverse,opsize,left.location.register,location.register);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user