|
@@ -827,7 +827,7 @@ interface
|
|
else
|
|
else
|
|
{$endif cpufloatintregmov}
|
|
{$endif cpufloatintregmov}
|
|
{$ifdef cpumm}
|
|
{$ifdef cpumm}
|
|
- if (resultdef.typ<>floatdef) and (location.loc in [LOC_CMMREGISTER,LOC_MMREGISTER]) then
|
|
|
|
|
|
+ if (resultdef.typ<>floatdef) and (location.loc in [LOC_CMMREGISTER,LOC_MMREGISTER]) and (resultdef.size<=sizeof(AInt)) then
|
|
begin
|
|
begin
|
|
location_reset(location,LOC_REGISTER,def_cgsize(resultdef));
|
|
location_reset(location,LOC_REGISTER,def_cgsize(resultdef));
|
|
location.register:=cg.getintregister(current_asmdata.CurrAsmList,location.size);
|
|
location.register:=cg.getintregister(current_asmdata.CurrAsmList,location.size);
|