mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-22 13:49:17 +02:00
+ set pi_do_call on RiscV as well if we check for fpu exceptions
This commit is contained in:
parent
ae121a2d5e
commit
a736a4bba7
@ -303,6 +303,14 @@ implementation
|
|||||||
else
|
else
|
||||||
Result:=inherited pass_1;
|
Result:=inherited pass_1;
|
||||||
|
|
||||||
|
{ if the result is not nil, a new node has been generated and the current node will be discarted }
|
||||||
|
if Result=nil then
|
||||||
|
begin
|
||||||
|
if left.resultdef.typ=floatdef then
|
||||||
|
if needs_check_for_fpu_exceptions then
|
||||||
|
Include(current_procinfo.flags,pi_do_call);
|
||||||
|
end;
|
||||||
|
|
||||||
if expectloc=LOC_FLAGS then
|
if expectloc=LOC_FLAGS then
|
||||||
expectloc:=LOC_REGISTER;
|
expectloc:=LOC_REGISTER;
|
||||||
if (expectloc=LOC_JUMP)
|
if (expectloc=LOC_JUMP)
|
||||||
|
@ -65,6 +65,7 @@ implementation
|
|||||||
aasmtai,aasmdata,aasmcpu,
|
aasmtai,aasmdata,aasmcpu,
|
||||||
symconst,symdef,
|
symconst,symdef,
|
||||||
defutil,
|
defutil,
|
||||||
|
procinfo,
|
||||||
cgbase,pass_2,
|
cgbase,pass_2,
|
||||||
cpuinfo,ncgutil,
|
cpuinfo,ncgutil,
|
||||||
hlcgobj,cgutils,cgobj,rgobj,tgobj;
|
hlcgobj,cgutils,cgobj,rgobj,tgobj;
|
||||||
@ -80,6 +81,8 @@ implementation
|
|||||||
begin
|
begin
|
||||||
expectloc:=LOC_FPUREGISTER;
|
expectloc:=LOC_FPUREGISTER;
|
||||||
first_sqrt_real := nil;
|
first_sqrt_real := nil;
|
||||||
|
if needs_check_for_fpu_exceptions then
|
||||||
|
Include(current_procinfo.flags,pi_do_call);
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
result:=inherited first_sqrt_real;
|
result:=inherited first_sqrt_real;
|
||||||
@ -104,6 +107,8 @@ implementation
|
|||||||
begin
|
begin
|
||||||
expectloc:=LOC_FPUREGISTER;
|
expectloc:=LOC_FPUREGISTER;
|
||||||
first_sqr_real := nil;
|
first_sqr_real := nil;
|
||||||
|
if needs_check_for_fpu_exceptions then
|
||||||
|
Include(current_procinfo.flags,pi_do_call);
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
result:=inherited first_sqr_real;
|
result:=inherited first_sqr_real;
|
||||||
@ -116,6 +121,8 @@ implementation
|
|||||||
begin
|
begin
|
||||||
expectloc:=LOC_FPUREGISTER;
|
expectloc:=LOC_FPUREGISTER;
|
||||||
first_round_real := nil;
|
first_round_real := nil;
|
||||||
|
if needs_check_for_fpu_exceptions then
|
||||||
|
Include(current_procinfo.flags,pi_do_call);
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
result:=inherited first_round_real;
|
result:=inherited first_round_real;
|
||||||
@ -128,6 +135,8 @@ implementation
|
|||||||
begin
|
begin
|
||||||
expectloc:=LOC_FPUREGISTER;
|
expectloc:=LOC_FPUREGISTER;
|
||||||
first_trunc_real := nil;
|
first_trunc_real := nil;
|
||||||
|
if needs_check_for_fpu_exceptions then
|
||||||
|
Include(current_procinfo.flags,pi_do_call);
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
result:=inherited first_trunc_real;
|
result:=inherited first_trunc_real;
|
||||||
@ -136,6 +145,8 @@ implementation
|
|||||||
|
|
||||||
function trvinlinenode.first_fma: tnode;
|
function trvinlinenode.first_fma: tnode;
|
||||||
begin
|
begin
|
||||||
|
if needs_check_for_fpu_exceptions then
|
||||||
|
Include(current_procinfo.flags,pi_do_call);
|
||||||
Result:=nil;
|
Result:=nil;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user