* sparc64 needs a helper for overflow checked 64 bit division operations

git-svn-id: trunk@36658 -
This commit is contained in:
florian 2017-07-07 09:08:02 +00:00
parent ca51bd56c4
commit a9a0ca6649

View File

@ -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 }