mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-19 00:09:26 +02:00
* (modified) patch by Christo Crause: ESP8266 doesn't support min/max instructions, resolves #38175
git-svn-id: trunk@47699 -
This commit is contained in:
parent
92520c423e
commit
4f3271500a
@ -302,6 +302,9 @@ implementation
|
|||||||
{$ifdef i8086}
|
{$ifdef i8086}
|
||||||
cpuinfo,
|
cpuinfo,
|
||||||
{$endif i8086}
|
{$endif i8086}
|
||||||
|
{$ifdef xtensa}
|
||||||
|
cpuinfo,
|
||||||
|
{$endif xtensa}
|
||||||
cgbase,procinfo
|
cgbase,procinfo
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -1591,7 +1594,7 @@ implementation
|
|||||||
(thenstmnt.nodetype=assignn) and (elsestmnt.nodetype=assignn) and
|
(thenstmnt.nodetype=assignn) and (elsestmnt.nodetype=assignn) and
|
||||||
not(might_have_sideeffects(left)) and
|
not(might_have_sideeffects(left)) and
|
||||||
tassignmentnode(thenstmnt).left.isequal(tassignmentnode(elsestmnt).left) and
|
tassignmentnode(thenstmnt).left.isequal(tassignmentnode(elsestmnt).left) and
|
||||||
is_32bitint(tassignmentnode(thenstmnt).right.resultdef) and
|
(CPUXTENSA_HAS_MINMAX in cpu_capabilities[current_settings.cputype]) and is_32bitint(tassignmentnode(thenstmnt).right.resultdef) and
|
||||||
((tassignmentnode(thenstmnt).right.isequal(taddnode(left).left) and (tassignmentnode(elsestmnt).right.isequal(taddnode(left).right))) or
|
((tassignmentnode(thenstmnt).right.isequal(taddnode(left).left) and (tassignmentnode(elsestmnt).right.isequal(taddnode(left).right))) or
|
||||||
(tassignmentnode(thenstmnt).right.isequal(taddnode(left).right) and (tassignmentnode(elsestmnt).right.isequal(taddnode(left).left)))) then
|
(tassignmentnode(thenstmnt).right.isequal(taddnode(left).right) and (tassignmentnode(elsestmnt).right.isequal(taddnode(left).left)))) then
|
||||||
begin
|
begin
|
||||||
|
@ -141,7 +141,8 @@ Const
|
|||||||
CPUXTENSA_HAS_BOOLEAN_OPTION,
|
CPUXTENSA_HAS_BOOLEAN_OPTION,
|
||||||
CPUXTENSA_HAS_MUL32HIGH,
|
CPUXTENSA_HAS_MUL32HIGH,
|
||||||
CPUXTENSA_HAS_DIV,
|
CPUXTENSA_HAS_DIV,
|
||||||
CPUXTENSA_HAS_LOOPS
|
CPUXTENSA_HAS_LOOPS,
|
||||||
|
CPUXTENSA_HAS_MINMAX
|
||||||
);
|
);
|
||||||
|
|
||||||
tfpuflags =
|
tfpuflags =
|
||||||
@ -155,7 +156,7 @@ Const
|
|||||||
(
|
(
|
||||||
{ cpu_none } [],
|
{ cpu_none } [],
|
||||||
{ cpu_lx106 } [],
|
{ cpu_lx106 } [],
|
||||||
{ cpu_lx6 } [CPUXTENSA_REGWINDOW, CPUXTENSA_HAS_SEXT, CPUXTENSA_HAS_NSAx, CPUXTENSA_HAS_BOOLEAN_OPTION, CPUXTENSA_HAS_MUL32HIGH, CPUXTENSA_HAS_DIV, CPUXTENSA_HAS_LOOPS]
|
{ cpu_lx6 } [CPUXTENSA_REGWINDOW, CPUXTENSA_HAS_SEXT, CPUXTENSA_HAS_NSAx, CPUXTENSA_HAS_BOOLEAN_OPTION, CPUXTENSA_HAS_MUL32HIGH, CPUXTENSA_HAS_DIV, CPUXTENSA_HAS_LOOPS, CPUXTENSA_HAS_MINMAX]
|
||||||
);
|
);
|
||||||
|
|
||||||
fpu_capabilities : array[tfputype] of set of tfpuflags =
|
fpu_capabilities : array[tfputype] of set of tfpuflags =
|
||||||
|
Loading…
Reference in New Issue
Block a user