|
@@ -213,7 +213,7 @@ implementation
|
|
|
|
|
|
function trvaddnode.use_mul_helper: boolean;
|
|
|
begin
|
|
|
- if (nodetype=muln) and not(CPURV_HAS_MUL in cpu_capabilities[current_settings.cputype]) then
|
|
|
+ if (nodetype=muln) and ([CPURV_HAS_MUL,CPURV_HAS_ZMMUL]*cpu_capabilities[current_settings.cputype]=[]) then
|
|
|
result:=true
|
|
|
else
|
|
|
Result:=inherited use_mul_helper;
|
|
@@ -279,7 +279,7 @@ implementation
|
|
|
begin
|
|
|
if (nodetype=muln) and
|
|
|
(left.resultdef.typ=orddef) and (left.resultdef.typ=orddef) and
|
|
|
- (CPURV_HAS_MUL in cpu_capabilities[current_settings.cputype])
|
|
|
+ ([CPURV_HAS_MUL,CPURV_HAS_ZMMUL]*cpu_capabilities[current_settings.cputype]<>[])
|
|
|
{$ifdef cpu32bitalu}
|
|
|
and (not (is_64bit(left.resultdef) or
|
|
|
is_64bit(right.resultdef)))
|
|
@@ -294,7 +294,7 @@ implementation
|
|
|
expectloc:=LOC_REGISTER;
|
|
|
end
|
|
|
else if (nodetype=muln) and
|
|
|
- (not (CPURV_HAS_MUL in cpu_capabilities[current_settings.cputype])) and
|
|
|
+ ([CPURV_HAS_MUL,CPURV_HAS_ZMMUL]*cpu_capabilities[current_settings.cputype]=[]) and
|
|
|
(is_64bit(left.resultdef) or
|
|
|
is_64bit(right.resultdef)) then
|
|
|
begin
|