|
@@ -2642,6 +2642,16 @@ implementation
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
+ { can full 64-bit multiplication be handled inline? }
|
|
|
+ if not use_generic_mul64bit then
|
|
|
+ begin
|
|
|
+ { generic handling replaces this node with call to fpc_mul_int64,
|
|
|
+ whose result is int64 }
|
|
|
+ if is_currency(resultdef) then
|
|
|
+ resultdef:=s64inttype;
|
|
|
+ exit;
|
|
|
+ end;
|
|
|
+
|
|
|
{ when currency is used set the result of the
|
|
|
parameters to s64bit, so they are not converted }
|
|
|
if is_currency(resultdef) then
|
|
@@ -2650,14 +2660,6 @@ implementation
|
|
|
right.resultdef:=s64inttype;
|
|
|
end;
|
|
|
|
|
|
- { can full 64-bit multiplication be handled inline? }
|
|
|
- if not use_generic_mul64bit then
|
|
|
- begin
|
|
|
- firstpass(left);
|
|
|
- firstpass(right);
|
|
|
- exit;
|
|
|
- end;
|
|
|
-
|
|
|
{ otherwise, create the parameters for the helper }
|
|
|
right := ccallparanode.create(
|
|
|
cordconstnode.create(ord(cs_check_overflow in current_settings.localswitches),pasbool8type,true),
|