mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-12-03 07:27:22 +01:00
* sparc64 needs a helper for overflow checked 64 bit division operations
git-svn-id: trunk@36658 -
This commit is contained in:
parent
ca51bd56c4
commit
a9a0ca6649
@ -30,7 +30,8 @@ interface
|
|||||||
|
|
||||||
type
|
type
|
||||||
tSparcmoddivnode = class(tmoddivnode)
|
tSparcmoddivnode = class(tmoddivnode)
|
||||||
procedure pass_generate_code;override;
|
procedure pass_generate_code;override;
|
||||||
|
function use_moddiv64bitint_helper : boolean; override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
tSparcshlshrnode = class(tcgshlshrnode)
|
tSparcshlshrnode = class(tcgshlshrnode)
|
||||||
@ -67,6 +68,14 @@ implementation
|
|||||||
*****************************************************************************}
|
*****************************************************************************}
|
||||||
|
|
||||||
{$ifdef sparc64}
|
{$ifdef sparc64}
|
||||||
|
function tSparcmoddivnode.use_moddiv64bitint_helper: boolean;
|
||||||
|
begin
|
||||||
|
{ sparc64 has no overflow checked 64 bit div }
|
||||||
|
result:=(is_64bitint(left.resultdef) or is_64bitint(right.resultdef)) and
|
||||||
|
(cs_check_overflow in current_settings.localswitches);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure tSparcmoddivnode.pass_generate_code;
|
procedure tSparcmoddivnode.pass_generate_code;
|
||||||
const
|
const
|
||||||
{ 64 bit signed overflow }
|
{ 64 bit signed overflow }
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user