mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-12 22:14:25 +02:00
m68k: do not use OS_NO for FPU locations, but properly promote location sizes into the CG
git-svn-id: trunk@48522 -
This commit is contained in:
parent
3e453f92fc
commit
77fee8b4eb
@ -201,7 +201,7 @@ implementation
|
|||||||
hlcg.location_force_fpureg(current_asmdata.CurrAsmList,left.location,left.resultdef,true);
|
hlcg.location_force_fpureg(current_asmdata.CurrAsmList,left.location,left.resultdef,true);
|
||||||
|
|
||||||
location.register := cg.getfpuregister(current_asmdata.CurrAsmList,location.size);
|
location.register := cg.getfpuregister(current_asmdata.CurrAsmList,location.size);
|
||||||
cg.a_loadfpu_reg_reg(current_asmdata.CurrAsmlist,OS_NO,OS_NO,left.location.register,location.register);
|
cg.a_loadfpu_reg_reg(current_asmdata.CurrAsmlist,left.location.size,location.size,left.location.register,location.register);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ emit the actual operation }
|
{ emit the actual operation }
|
||||||
|
@ -253,7 +253,7 @@ implementation
|
|||||||
//current_asmdata.CurrAsmList.concat(tai_comment.create(strpnew('second_sqr_real called!: left was cfpuregister!')));
|
//current_asmdata.CurrAsmList.concat(tai_comment.create(strpnew('second_sqr_real called!: left was cfpuregister!')));
|
||||||
location.register:=cg.getfpuregister(current_asmdata.CurrAsmList,location.size);
|
location.register:=cg.getfpuregister(current_asmdata.CurrAsmList,location.size);
|
||||||
location.loc := LOC_FPUREGISTER;
|
location.loc := LOC_FPUREGISTER;
|
||||||
cg.a_loadfpu_reg_reg(current_asmdata.CurrAsmlist,OS_NO,OS_NO,left.location.register,location.register);
|
cg.a_loadfpu_reg_reg(current_asmdata.CurrAsmlist,left.location.size,location.size,left.location.register,location.register);
|
||||||
end;
|
end;
|
||||||
current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_FMUL,fpuregopsize,left.location.register,location.register));
|
current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_FMUL,fpuregopsize,left.location.register,location.register));
|
||||||
end;
|
end;
|
||||||
@ -333,7 +333,7 @@ implementation
|
|||||||
begin
|
begin
|
||||||
hreg:=cg.getfpuregister(current_asmdata.CurrAsmList,location.size);
|
hreg:=cg.getfpuregister(current_asmdata.CurrAsmList,location.size);
|
||||||
location.register:=cg.getfpuregister(current_asmdata.CurrAsmList,location.size);
|
location.register:=cg.getfpuregister(current_asmdata.CurrAsmList,location.size);
|
||||||
cg.a_loadfpu_reg_reg(current_asmdata.CurrAsmlist,OS_NO,OS_NO,left.location.register,location.register);
|
cg.a_loadfpu_reg_reg(current_asmdata.CurrAsmlist,left.location.size,location.size,left.location.register,location.register);
|
||||||
current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_FINTRZ,fpuregopsize,left.location.register,hreg));
|
current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_FINTRZ,fpuregopsize,left.location.register,hreg));
|
||||||
current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_FSUB,fpuregopsize,hreg,location.register));
|
current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_FSUB,fpuregopsize,hreg,location.register));
|
||||||
end;
|
end;
|
||||||
@ -343,7 +343,7 @@ implementation
|
|||||||
location.register:=cg.getfpuregister(current_asmdata.CurrAsmList,location.size);
|
location.register:=cg.getfpuregister(current_asmdata.CurrAsmList,location.size);
|
||||||
href:=left.location.reference;
|
href:=left.location.reference;
|
||||||
tcg68k(cg).fixref(current_asmdata.CurrAsmList,href,current_settings.fputype = fpu_coldfire);
|
tcg68k(cg).fixref(current_asmdata.CurrAsmList,href,current_settings.fputype = fpu_coldfire);
|
||||||
cg.a_loadfpu_ref_reg(current_asmdata.CurrAsmlist,left.location.size,OS_NO,href,location.register);
|
cg.a_loadfpu_ref_reg(current_asmdata.CurrAsmlist,left.location.size,location.size,href,location.register);
|
||||||
current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_FINTRZ,fpuregopsize,location.register,hreg));
|
current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_FINTRZ,fpuregopsize,location.register,hreg));
|
||||||
current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_FSUB,fpuregopsize,hreg,location.register));
|
current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_FSUB,fpuregopsize,hreg,location.register));
|
||||||
end;
|
end;
|
||||||
|
Loading…
Reference in New Issue
Block a user