Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
b092b471
Commit
b092b471
authored
Jun 22, 1992
by
Jim Wilson
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
*** empty log message ***
From-SVN: r1237
parent
23a900dc
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
721 additions
and
118 deletions
+721
-118
gcc/expr.c
+92
-5
gcc/expr.h
+64
-2
gcc/optabs.c
+565
-111
No files found.
gcc/expr.c
View file @
b092b471
...
@@ -355,6 +355,13 @@ convert_move (to, from, unsignedp)
...
@@ -355,6 +355,13 @@ convert_move (to, from, unsignedp)
return
;
return
;
}
}
#endif
#endif
#ifdef HAVE_extendsfxf2
if
(
HAVE_extendsfxf2
&&
from_mode
==
SFmode
&&
to_mode
==
XFmode
)
{
emit_unop_insn
(
CODE_FOR_extendsfxf2
,
to
,
from
,
UNKNOWN
);
return
;
}
#endif
#ifdef HAVE_extendsftf2
#ifdef HAVE_extendsftf2
if
(
HAVE_extendsftf2
&&
from_mode
==
SFmode
&&
to_mode
==
TFmode
)
if
(
HAVE_extendsftf2
&&
from_mode
==
SFmode
&&
to_mode
==
TFmode
)
{
{
...
@@ -362,6 +369,13 @@ convert_move (to, from, unsignedp)
...
@@ -362,6 +369,13 @@ convert_move (to, from, unsignedp)
return
;
return
;
}
}
#endif
#endif
#ifdef HAVE_extenddfxf2
if
(
HAVE_extenddfxf2
&&
from_mode
==
DFmode
&&
to_mode
==
XFmode
)
{
emit_unop_insn
(
CODE_FOR_extenddfxf2
,
to
,
from
,
UNKNOWN
);
return
;
}
#endif
#ifdef HAVE_extenddftf2
#ifdef HAVE_extenddftf2
if
(
HAVE_extenddftf2
&&
from_mode
==
DFmode
&&
to_mode
==
TFmode
)
if
(
HAVE_extenddftf2
&&
from_mode
==
DFmode
&&
to_mode
==
TFmode
)
{
{
...
@@ -376,6 +390,13 @@ convert_move (to, from, unsignedp)
...
@@ -376,6 +390,13 @@ convert_move (to, from, unsignedp)
return
;
return
;
}
}
#endif
#endif
#ifdef HAVE_truncxfsf2
if
(
HAVE_truncxfsf2
&&
from_mode
==
XFmode
&&
to_mode
==
SFmode
)
{
emit_unop_insn
(
CODE_FOR_truncxfsf2
,
to
,
from
,
UNKNOWN
);
return
;
}
#endif
#ifdef HAVE_trunctfsf2
#ifdef HAVE_trunctfsf2
if
(
HAVE_trunctfsf2
&&
from_mode
==
TFmode
&&
to_mode
==
SFmode
)
if
(
HAVE_trunctfsf2
&&
from_mode
==
TFmode
&&
to_mode
==
SFmode
)
{
{
...
@@ -383,6 +404,13 @@ convert_move (to, from, unsignedp)
...
@@ -383,6 +404,13 @@ convert_move (to, from, unsignedp)
return
;
return
;
}
}
#endif
#endif
#ifdef HAVE_truncxfdf2
if
(
HAVE_truncxfdf2
&&
from_mode
==
XFmode
&&
to_mode
==
DFmode
)
{
emit_unop_insn
(
CODE_FOR_truncxfdf2
,
to
,
from
,
UNKNOWN
);
return
;
}
#endif
#ifdef HAVE_trunctfdf2
#ifdef HAVE_trunctfdf2
if
(
HAVE_trunctfdf2
&&
from_mode
==
TFmode
&&
to_mode
==
DFmode
)
if
(
HAVE_trunctfdf2
&&
from_mode
==
TFmode
&&
to_mode
==
DFmode
)
{
{
...
@@ -391,13 +419,72 @@ convert_move (to, from, unsignedp)
...
@@ -391,13 +419,72 @@ convert_move (to, from, unsignedp)
}
}
#endif
#endif
if
(
from_mode
==
SFmode
&&
to_mode
==
DFmode
)
libcall
=
(
rtx
)
0
;
switch
(
from_mode
)
{
case
SFmode
:
switch
(
to_mode
)
{
case
DFmode
:
libcall
=
extendsfdf2_libfunc
;
libcall
=
extendsfdf2_libfunc
;
else
if
(
from_mode
==
DFmode
&&
to_mode
==
SFmode
)
break
;
case
XFmode
:
libcall
=
extendsfxf2_libfunc
;
break
;
case
TFmode
:
libcall
=
extendsftf2_libfunc
;
break
;
}
break
;
case
DFmode
:
switch
(
to_mode
)
{
case
SFmode
:
libcall
=
truncdfsf2_libfunc
;
libcall
=
truncdfsf2_libfunc
;
else
break
;
/* This conversion is not implemented yet. There aren't any TFmode
library calls. */
case
XFmode
:
libcall
=
extenddfxf2_libfunc
;
break
;
case
TFmode
:
libcall
=
extenddftf2_libfunc
;
break
;
}
break
;
case
XFmode
:
switch
(
to_mode
)
{
case
SFmode
:
libcall
=
truncxfsf2_libfunc
;
break
;
case
DFmode
:
libcall
=
truncxfdf2_libfunc
;
break
;
}
break
;
case
TFmode
:
switch
(
to_mode
)
{
case
SFmode
:
libcall
=
trunctfsf2_libfunc
;
break
;
case
DFmode
:
libcall
=
trunctfdf2_libfunc
;
break
;
}
break
;
}
if
(
libcall
==
(
rtx
)
0
)
/* This conversion is not implemented yet. */
abort
();
abort
();
emit_library_call
(
libcall
,
1
,
to_mode
,
1
,
from
,
from_mode
);
emit_library_call
(
libcall
,
1
,
to_mode
,
1
,
from
,
from_mode
);
...
...
gcc/expr.h
View file @
b092b471
...
@@ -341,37 +341,99 @@ enum optab_methods
...
@@ -341,37 +341,99 @@ enum optab_methods
implicitly and not via optabs. */
implicitly and not via optabs. */
extern
rtx
extendsfdf2_libfunc
;
extern
rtx
extendsfdf2_libfunc
;
extern
rtx
extendsfxf2_libfunc
;
extern
rtx
extendsftf2_libfunc
;
extern
rtx
extenddfxf2_libfunc
;
extern
rtx
extenddftf2_libfunc
;
extern
rtx
truncdfsf2_libfunc
;
extern
rtx
truncdfsf2_libfunc
;
extern
rtx
truncxfsf2_libfunc
;
extern
rtx
trunctfsf2_libfunc
;
extern
rtx
truncxfdf2_libfunc
;
extern
rtx
trunctfdf2_libfunc
;
extern
rtx
memcpy_libfunc
;
extern
rtx
memcpy_libfunc
;
extern
rtx
bcopy_libfunc
;
extern
rtx
bcopy_libfunc
;
extern
rtx
memcmp_libfunc
;
extern
rtx
memcmp_libfunc
;
extern
rtx
bcmp_libfunc
;
extern
rtx
bcmp_libfunc
;
extern
rtx
memset_libfunc
;
extern
rtx
memset_libfunc
;
extern
rtx
bzero_libfunc
;
extern
rtx
bzero_libfunc
;
extern
rtx
eqsf2_libfunc
;
extern
rtx
eqsf2_libfunc
;
extern
rtx
nesf2_libfunc
;
extern
rtx
nesf2_libfunc
;
extern
rtx
gtsf2_libfunc
;
extern
rtx
gtsf2_libfunc
;
extern
rtx
gesf2_libfunc
;
extern
rtx
gesf2_libfunc
;
extern
rtx
ltsf2_libfunc
;
extern
rtx
ltsf2_libfunc
;
extern
rtx
lesf2_libfunc
;
extern
rtx
lesf2_libfunc
;
extern
rtx
eqdf2_libfunc
;
extern
rtx
eqdf2_libfunc
;
extern
rtx
nedf2_libfunc
;
extern
rtx
nedf2_libfunc
;
extern
rtx
gtdf2_libfunc
;
extern
rtx
gtdf2_libfunc
;
extern
rtx
gedf2_libfunc
;
extern
rtx
gedf2_libfunc
;
extern
rtx
ltdf2_libfunc
;
extern
rtx
ltdf2_libfunc
;
extern
rtx
ledf2_libfunc
;
extern
rtx
ledf2_libfunc
;
extern
rtx
floatdisf_libfunc
;
extern
rtx
eqxf2_libfunc
;
extern
rtx
nexf2_libfunc
;
extern
rtx
gtxf2_libfunc
;
extern
rtx
gexf2_libfunc
;
extern
rtx
ltxf2_libfunc
;
extern
rtx
lexf2_libfunc
;
extern
rtx
eqtf2_libfunc
;
extern
rtx
netf2_libfunc
;
extern
rtx
gttf2_libfunc
;
extern
rtx
getf2_libfunc
;
extern
rtx
lttf2_libfunc
;
extern
rtx
letf2_libfunc
;
extern
rtx
floatsisf_libfunc
;
extern
rtx
floatsisf_libfunc
;
extern
rtx
floatdidf_libfunc
;
extern
rtx
floatdisf_libfunc
;
extern
rtx
floattisf_libfunc
;
extern
rtx
floatsidf_libfunc
;
extern
rtx
floatsidf_libfunc
;
extern
rtx
floatdidf_libfunc
;
extern
rtx
floattidf_libfunc
;
extern
rtx
floatsixf_libfunc
;
extern
rtx
floatdixf_libfunc
;
extern
rtx
floattixf_libfunc
;
extern
rtx
floatsitf_libfunc
;
extern
rtx
floatditf_libfunc
;
extern
rtx
floattitf_libfunc
;
extern
rtx
fixsfsi_libfunc
;
extern
rtx
fixsfsi_libfunc
;
extern
rtx
fixsfdi_libfunc
;
extern
rtx
fixsfdi_libfunc
;
extern
rtx
fixsfti_libfunc
;
extern
rtx
fixdfsi_libfunc
;
extern
rtx
fixdfsi_libfunc
;
extern
rtx
fixdfdi_libfunc
;
extern
rtx
fixdfdi_libfunc
;
extern
rtx
fixdfti_libfunc
;
extern
rtx
fixxfsi_libfunc
;
extern
rtx
fixxfdi_libfunc
;
extern
rtx
fixxfti_libfunc
;
extern
rtx
fixtfsi_libfunc
;
extern
rtx
fixtfdi_libfunc
;
extern
rtx
fixtfti_libfunc
;
extern
rtx
fixunssfsi_libfunc
;
extern
rtx
fixunssfsi_libfunc
;
extern
rtx
fixunssfdi_libfunc
;
extern
rtx
fixunssfdi_libfunc
;
extern
rtx
fixunssfti_libfunc
;
extern
rtx
fixunsdfsi_libfunc
;
extern
rtx
fixunsdfsi_libfunc
;
extern
rtx
fixunsdfdi_libfunc
;
extern
rtx
fixunsdfdi_libfunc
;
extern
rtx
fixunsdfti_libfunc
;
extern
rtx
fixunsxfsi_libfunc
;
extern
rtx
fixunsxfdi_libfunc
;
extern
rtx
fixunsxfti_libfunc
;
extern
rtx
fixunstfsi_libfunc
;
extern
rtx
fixunstfdi_libfunc
;
extern
rtx
fixunstfti_libfunc
;
typedef
rtx
(
*
rtxfun
)
();
typedef
rtx
(
*
rtxfun
)
();
...
...
gcc/optabs.c
View file @
b092b471
...
@@ -83,37 +83,99 @@ optab strlen_optab;
...
@@ -83,37 +83,99 @@ optab strlen_optab;
implicitly and not via optabs. */
implicitly and not via optabs. */
rtx
extendsfdf2_libfunc
;
rtx
extendsfdf2_libfunc
;
rtx
extendsfxf2_libfunc
;
rtx
extendsftf2_libfunc
;
rtx
extenddfxf2_libfunc
;
rtx
extenddftf2_libfunc
;
rtx
truncdfsf2_libfunc
;
rtx
truncdfsf2_libfunc
;
rtx
truncxfsf2_libfunc
;
rtx
trunctfsf2_libfunc
;
rtx
truncxfdf2_libfunc
;
rtx
trunctfdf2_libfunc
;
rtx
memcpy_libfunc
;
rtx
memcpy_libfunc
;
rtx
bcopy_libfunc
;
rtx
bcopy_libfunc
;
rtx
memcmp_libfunc
;
rtx
memcmp_libfunc
;
rtx
bcmp_libfunc
;
rtx
bcmp_libfunc
;
rtx
memset_libfunc
;
rtx
memset_libfunc
;
rtx
bzero_libfunc
;
rtx
bzero_libfunc
;
rtx
eqsf2_libfunc
;
rtx
eqsf2_libfunc
;
rtx
nesf2_libfunc
;
rtx
nesf2_libfunc
;
rtx
gtsf2_libfunc
;
rtx
gtsf2_libfunc
;
rtx
gesf2_libfunc
;
rtx
gesf2_libfunc
;
rtx
ltsf2_libfunc
;
rtx
ltsf2_libfunc
;
rtx
lesf2_libfunc
;
rtx
lesf2_libfunc
;
rtx
eqdf2_libfunc
;
rtx
eqdf2_libfunc
;
rtx
nedf2_libfunc
;
rtx
nedf2_libfunc
;
rtx
gtdf2_libfunc
;
rtx
gtdf2_libfunc
;
rtx
gedf2_libfunc
;
rtx
gedf2_libfunc
;
rtx
ltdf2_libfunc
;
rtx
ltdf2_libfunc
;
rtx
ledf2_libfunc
;
rtx
ledf2_libfunc
;
rtx
floatdisf_libfunc
;
rtx
eqxf2_libfunc
;
rtx
nexf2_libfunc
;
rtx
gtxf2_libfunc
;
rtx
gexf2_libfunc
;
rtx
ltxf2_libfunc
;
rtx
lexf2_libfunc
;
rtx
eqtf2_libfunc
;
rtx
netf2_libfunc
;
rtx
gttf2_libfunc
;
rtx
getf2_libfunc
;
rtx
lttf2_libfunc
;
rtx
letf2_libfunc
;
rtx
floatsisf_libfunc
;
rtx
floatsisf_libfunc
;
rtx
floatdidf_libfunc
;
rtx
floatdisf_libfunc
;
rtx
floattisf_libfunc
;
rtx
floatsidf_libfunc
;
rtx
floatsidf_libfunc
;
rtx
floatdidf_libfunc
;
rtx
floattidf_libfunc
;
rtx
floatsixf_libfunc
;
rtx
floatdixf_libfunc
;
rtx
floattixf_libfunc
;
rtx
floatsitf_libfunc
;
rtx
floatditf_libfunc
;
rtx
floattitf_libfunc
;
rtx
fixsfsi_libfunc
;
rtx
fixsfsi_libfunc
;
rtx
fixsfdi_libfunc
;
rtx
fixsfdi_libfunc
;
rtx
fixsfti_libfunc
;
rtx
fixdfsi_libfunc
;
rtx
fixdfsi_libfunc
;
rtx
fixdfdi_libfunc
;
rtx
fixdfdi_libfunc
;
rtx
fixdfti_libfunc
;
rtx
fixxfsi_libfunc
;
rtx
fixxfdi_libfunc
;
rtx
fixxfti_libfunc
;
rtx
fixtfsi_libfunc
;
rtx
fixtfdi_libfunc
;
rtx
fixtfti_libfunc
;
rtx
fixunssfsi_libfunc
;
rtx
fixunssfsi_libfunc
;
rtx
fixunssfdi_libfunc
;
rtx
fixunssfdi_libfunc
;
rtx
fixunssfti_libfunc
;
rtx
fixunsdfsi_libfunc
;
rtx
fixunsdfsi_libfunc
;
rtx
fixunsdfdi_libfunc
;
rtx
fixunsdfdi_libfunc
;
rtx
fixunsdfti_libfunc
;
rtx
fixunsxfsi_libfunc
;
rtx
fixunsxfdi_libfunc
;
rtx
fixunsxfti_libfunc
;
rtx
fixunstfsi_libfunc
;
rtx
fixunstfdi_libfunc
;
rtx
fixunstfti_libfunc
;
/* Indexed by the rtx-code for a conditional (eg. EQ, LT,...)
/* Indexed by the rtx-code for a conditional (eg. EQ, LT,...)
gives the gen_function to make a branch to test that condition. */
gives the gen_function to make a branch to test that condition. */
...
@@ -1709,6 +1771,60 @@ emit_float_lib_cmp (x, y, comparison)
...
@@ -1709,6 +1771,60 @@ emit_float_lib_cmp (x, y, comparison)
libfunc
=
ledf2_libfunc
;
libfunc
=
ledf2_libfunc
;
break
;
break
;
}
}
else
if
(
mode
==
XFmode
)
switch
(
comparison
)
{
case
EQ
:
libfunc
=
eqxf2_libfunc
;
break
;
case
NE
:
libfunc
=
nexf2_libfunc
;
break
;
case
GT
:
libfunc
=
gtxf2_libfunc
;
break
;
case
GE
:
libfunc
=
gexf2_libfunc
;
break
;
case
LT
:
libfunc
=
ltxf2_libfunc
;
break
;
case
LE
:
libfunc
=
lexf2_libfunc
;
break
;
}
else
if
(
mode
==
TFmode
)
switch
(
comparison
)
{
case
EQ
:
libfunc
=
eqtf2_libfunc
;
break
;
case
NE
:
libfunc
=
netf2_libfunc
;
break
;
case
GT
:
libfunc
=
gttf2_libfunc
;
break
;
case
GE
:
libfunc
=
getf2_libfunc
;
break
;
case
LT
:
libfunc
=
lttf2_libfunc
;
break
;
case
LE
:
libfunc
=
letf2_libfunc
;
break
;
}
else
else
{
{
enum
machine_mode
wider_mode
;
enum
machine_mode
wider_mode
;
...
@@ -2090,6 +2206,27 @@ init_fixtab ()
...
@@ -2090,6 +2206,27 @@ init_fixtab ()
fixtab
[(
int
)
DFmode
][(
int
)
TImode
][
0
]
=
CODE_FOR_fixdfti2
;
fixtab
[(
int
)
DFmode
][(
int
)
TImode
][
0
]
=
CODE_FOR_fixdfti2
;
#endif
#endif
#ifdef HAVE_fixxfqi2
if
(
HAVE_fixxfqi2
)
fixtab
[(
int
)
XFmode
][(
int
)
QImode
][
0
]
=
CODE_FOR_fixxfqi2
;
#endif
#ifdef HAVE_fixxfhi2
if
(
HAVE_fixxfhi2
)
fixtab
[(
int
)
XFmode
][(
int
)
HImode
][
0
]
=
CODE_FOR_fixxfhi2
;
#endif
#ifdef HAVE_fixxfsi2
if
(
HAVE_fixxfsi2
)
fixtab
[(
int
)
XFmode
][(
int
)
SImode
][
0
]
=
CODE_FOR_fixxfsi2
;
#endif
#ifdef HAVE_fixxfdi2
if
(
HAVE_fixxfdi2
)
fixtab
[(
int
)
XFmode
][(
int
)
DImode
][
0
]
=
CODE_FOR_fixxfdi2
;
#endif
#ifdef HAVE_fixxfti2
if
(
HAVE_fixxfti2
)
fixtab
[(
int
)
XFmode
][(
int
)
TImode
][
0
]
=
CODE_FOR_fixxfti2
;
#endif
#ifdef HAVE_fixtfqi2
#ifdef HAVE_fixtfqi2
if
(
HAVE_fixtfqi2
)
if
(
HAVE_fixtfqi2
)
fixtab
[(
int
)
TFmode
][(
int
)
QImode
][
0
]
=
CODE_FOR_fixtfqi2
;
fixtab
[(
int
)
TFmode
][(
int
)
QImode
][
0
]
=
CODE_FOR_fixtfqi2
;
...
@@ -2149,6 +2286,27 @@ init_fixtab ()
...
@@ -2149,6 +2286,27 @@ init_fixtab ()
fixtab
[(
int
)
DFmode
][(
int
)
TImode
][
1
]
=
CODE_FOR_fixunsdfti2
;
fixtab
[(
int
)
DFmode
][(
int
)
TImode
][
1
]
=
CODE_FOR_fixunsdfti2
;
#endif
#endif
#ifdef HAVE_fixunsxfqi2
if
(
HAVE_fixunsxfqi2
)
fixtab
[(
int
)
XFmode
][(
int
)
QImode
][
1
]
=
CODE_FOR_fixunsxfqi2
;
#endif
#ifdef HAVE_fixunsxfhi2
if
(
HAVE_fixunsxfhi2
)
fixtab
[(
int
)
XFmode
][(
int
)
HImode
][
1
]
=
CODE_FOR_fixunsxfhi2
;
#endif
#ifdef HAVE_fixunsxfsi2
if
(
HAVE_fixunsxfsi2
)
fixtab
[(
int
)
XFmode
][(
int
)
SImode
][
1
]
=
CODE_FOR_fixunsxfsi2
;
#endif
#ifdef HAVE_fixunsxfdi2
if
(
HAVE_fixunsxfdi2
)
fixtab
[(
int
)
XFmode
][(
int
)
DImode
][
1
]
=
CODE_FOR_fixunsxfdi2
;
#endif
#ifdef HAVE_fixunsxfti2
if
(
HAVE_fixunsxfti2
)
fixtab
[(
int
)
XFmode
][(
int
)
TImode
][
1
]
=
CODE_FOR_fixunsxfti2
;
#endif
#ifdef HAVE_fixunstfqi2
#ifdef HAVE_fixunstfqi2
if
(
HAVE_fixunstfqi2
)
if
(
HAVE_fixunstfqi2
)
fixtab
[(
int
)
TFmode
][(
int
)
QImode
][
1
]
=
CODE_FOR_fixunstfqi2
;
fixtab
[(
int
)
TFmode
][(
int
)
QImode
][
1
]
=
CODE_FOR_fixunstfqi2
;
...
@@ -2208,6 +2366,27 @@ init_fixtab ()
...
@@ -2208,6 +2366,27 @@ init_fixtab ()
fixtrunctab
[(
int
)
DFmode
][(
int
)
TImode
][
0
]
=
CODE_FOR_fix_truncdfti2
;
fixtrunctab
[(
int
)
DFmode
][(
int
)
TImode
][
0
]
=
CODE_FOR_fix_truncdfti2
;
#endif
#endif
#ifdef HAVE_fix_truncxfqi2
if
(
HAVE_fix_truncxfqi2
)
fixtrunctab
[(
int
)
XFmode
][(
int
)
QImode
][
0
]
=
CODE_FOR_fix_truncxfqi2
;
#endif
#ifdef HAVE_fix_truncxfhi2
if
(
HAVE_fix_truncxfhi2
)
fixtrunctab
[(
int
)
XFmode
][(
int
)
HImode
][
0
]
=
CODE_FOR_fix_truncxfhi2
;
#endif
#ifdef HAVE_fix_truncxfsi2
if
(
HAVE_fix_truncxfsi2
)
fixtrunctab
[(
int
)
XFmode
][(
int
)
SImode
][
0
]
=
CODE_FOR_fix_truncxfsi2
;
#endif
#ifdef HAVE_fix_truncxfdi2
if
(
HAVE_fix_truncxfdi2
)
fixtrunctab
[(
int
)
XFmode
][(
int
)
DImode
][
0
]
=
CODE_FOR_fix_truncxfdi2
;
#endif
#ifdef HAVE_fix_truncxfti2
if
(
HAVE_fix_truncxfti2
)
fixtrunctab
[(
int
)
XFmode
][(
int
)
TImode
][
0
]
=
CODE_FOR_fix_truncxfti2
;
#endif
#ifdef HAVE_fix_trunctfqi2
#ifdef HAVE_fix_trunctfqi2
if
(
HAVE_fix_trunctfqi2
)
if
(
HAVE_fix_trunctfqi2
)
fixtrunctab
[(
int
)
TFmode
][(
int
)
QImode
][
0
]
=
CODE_FOR_fix_trunctfqi2
;
fixtrunctab
[(
int
)
TFmode
][(
int
)
QImode
][
0
]
=
CODE_FOR_fix_trunctfqi2
;
...
@@ -2267,6 +2446,27 @@ init_fixtab ()
...
@@ -2267,6 +2446,27 @@ init_fixtab ()
fixtrunctab
[(
int
)
DFmode
][(
int
)
TImode
][
1
]
=
CODE_FOR_fixuns_truncdfti2
;
fixtrunctab
[(
int
)
DFmode
][(
int
)
TImode
][
1
]
=
CODE_FOR_fixuns_truncdfti2
;
#endif
#endif
#ifdef HAVE_fixuns_truncxfqi2
if
(
HAVE_fixuns_truncxfqi2
)
fixtrunctab
[(
int
)
XFmode
][(
int
)
QImode
][
1
]
=
CODE_FOR_fixuns_truncxfqi2
;
#endif
#ifdef HAVE_fixuns_truncxfhi2
if
(
HAVE_fixuns_truncxfhi2
)
fixtrunctab
[(
int
)
XFmode
][(
int
)
HImode
][
1
]
=
CODE_FOR_fixuns_truncxfhi2
;
#endif
#ifdef HAVE_fixuns_truncxfsi2
if
(
HAVE_fixuns_truncxfsi2
)
fixtrunctab
[(
int
)
XFmode
][(
int
)
SImode
][
1
]
=
CODE_FOR_fixuns_truncxfsi2
;
#endif
#ifdef HAVE_fixuns_truncxfdi2
if
(
HAVE_fixuns_truncxfdi2
)
fixtrunctab
[(
int
)
XFmode
][(
int
)
DImode
][
1
]
=
CODE_FOR_fixuns_truncxfdi2
;
#endif
#ifdef HAVE_fixuns_truncxfti2
if
(
HAVE_fixuns_truncxfti2
)
fixtrunctab
[(
int
)
XFmode
][(
int
)
TImode
][
1
]
=
CODE_FOR_fixuns_truncxfti2
;
#endif
#ifdef HAVE_fixuns_trunctfqi2
#ifdef HAVE_fixuns_trunctfqi2
if
(
HAVE_fixuns_trunctfqi2
)
if
(
HAVE_fixuns_trunctfqi2
)
fixtrunctab
[(
int
)
TFmode
][(
int
)
QImode
][
1
]
=
CODE_FOR_fixuns_trunctfqi2
;
fixtrunctab
[(
int
)
TFmode
][(
int
)
QImode
][
1
]
=
CODE_FOR_fixuns_trunctfqi2
;
...
@@ -2352,6 +2552,27 @@ init_floattab ()
...
@@ -2352,6 +2552,27 @@ init_floattab ()
floattab
[(
int
)
DFmode
][(
int
)
TImode
][
0
]
=
CODE_FOR_floattidf2
;
floattab
[(
int
)
DFmode
][(
int
)
TImode
][
0
]
=
CODE_FOR_floattidf2
;
#endif
#endif
#ifdef HAVE_floatqixf2
if
(
HAVE_floatqixf2
)
floattab
[(
int
)
XFmode
][(
int
)
QImode
][
0
]
=
CODE_FOR_floatqixf2
;
#endif
#ifdef HAVE_floathixf2
if
(
HAVE_floathixf2
)
floattab
[(
int
)
XFmode
][(
int
)
HImode
][
0
]
=
CODE_FOR_floathixf2
;
#endif
#ifdef HAVE_floatsixf2
if
(
HAVE_floatsixf2
)
floattab
[(
int
)
XFmode
][(
int
)
SImode
][
0
]
=
CODE_FOR_floatsixf2
;
#endif
#ifdef HAVE_floatdixf2
if
(
HAVE_floatdixf2
)
floattab
[(
int
)
XFmode
][(
int
)
DImode
][
0
]
=
CODE_FOR_floatdixf2
;
#endif
#ifdef HAVE_floattixf2
if
(
HAVE_floattixf2
)
floattab
[(
int
)
XFmode
][(
int
)
TImode
][
0
]
=
CODE_FOR_floattixf2
;
#endif
#ifdef HAVE_floatqitf2
#ifdef HAVE_floatqitf2
if
(
HAVE_floatqitf2
)
if
(
HAVE_floatqitf2
)
floattab
[(
int
)
TFmode
][(
int
)
QImode
][
0
]
=
CODE_FOR_floatqitf2
;
floattab
[(
int
)
TFmode
][(
int
)
QImode
][
0
]
=
CODE_FOR_floatqitf2
;
...
@@ -2415,6 +2636,27 @@ init_floattab ()
...
@@ -2415,6 +2636,27 @@ init_floattab ()
floattab
[(
int
)
DFmode
][(
int
)
TImode
][
1
]
=
CODE_FOR_floatunstidf2
;
floattab
[(
int
)
DFmode
][(
int
)
TImode
][
1
]
=
CODE_FOR_floatunstidf2
;
#endif
#endif
#ifdef HAVE_floatunsqixf2
if
(
HAVE_floatunsqixf2
)
floattab
[(
int
)
XFmode
][(
int
)
QImode
][
1
]
=
CODE_FOR_floatunsqixf2
;
#endif
#ifdef HAVE_floatunshixf2
if
(
HAVE_floatunshixf2
)
floattab
[(
int
)
XFmode
][(
int
)
HImode
][
1
]
=
CODE_FOR_floatunshixf2
;
#endif
#ifdef HAVE_floatunssixf2
if
(
HAVE_floatunssixf2
)
floattab
[(
int
)
XFmode
][(
int
)
SImode
][
1
]
=
CODE_FOR_floatunssixf2
;
#endif
#ifdef HAVE_floatunsdixf2
if
(
HAVE_floatunsdixf2
)
floattab
[(
int
)
XFmode
][(
int
)
DImode
][
1
]
=
CODE_FOR_floatunsdixf2
;
#endif
#ifdef HAVE_floatunstixf2
if
(
HAVE_floatunstixf2
)
floattab
[(
int
)
XFmode
][(
int
)
TImode
][
1
]
=
CODE_FOR_floatunstixf2
;
#endif
#ifdef HAVE_floatunsqitf2
#ifdef HAVE_floatunsqitf2
if
(
HAVE_floatunsqitf2
)
if
(
HAVE_floatunsqitf2
)
floattab
[(
int
)
TFmode
][(
int
)
QImode
][
1
]
=
CODE_FOR_floatunsqitf2
;
floattab
[(
int
)
TFmode
][(
int
)
QImode
][
1
]
=
CODE_FOR_floatunsqitf2
;
...
@@ -2541,8 +2783,8 @@ expand_float (to, from, unsignedp)
...
@@ -2541,8 +2783,8 @@ expand_float (to, from, unsignedp)
else
else
#endif
#endif
/* No hardware instruction available; call a library
/* No hardware instruction available; call a library
rotine to convert from
to convert from SImode or DImode into SFmode or D
Fmode. */
SImode, DImode, or TImode into SFmode, DFmode, XFmode, or T
Fmode. */
{
{
rtx
libfcn
;
rtx
libfcn
;
rtx
insns
;
rtx
insns
;
...
@@ -2563,6 +2805,8 @@ expand_float (to, from, unsignedp)
...
@@ -2563,6 +2805,8 @@ expand_float (to, from, unsignedp)
libfcn
=
floatsisf_libfunc
;
libfcn
=
floatsisf_libfunc
;
else
if
(
GET_MODE
(
from
)
==
DImode
)
else
if
(
GET_MODE
(
from
)
==
DImode
)
libfcn
=
floatdisf_libfunc
;
libfcn
=
floatdisf_libfunc
;
else
if
(
GET_MODE
(
from
)
==
TImode
)
libfcn
=
floattisf_libfunc
;
else
else
abort
();
abort
();
}
}
...
@@ -2572,6 +2816,30 @@ expand_float (to, from, unsignedp)
...
@@ -2572,6 +2816,30 @@ expand_float (to, from, unsignedp)
libfcn
=
floatsidf_libfunc
;
libfcn
=
floatsidf_libfunc
;
else
if
(
GET_MODE
(
from
)
==
DImode
)
else
if
(
GET_MODE
(
from
)
==
DImode
)
libfcn
=
floatdidf_libfunc
;
libfcn
=
floatdidf_libfunc
;
else
if
(
GET_MODE
(
from
)
==
TImode
)
libfcn
=
floattidf_libfunc
;
else
abort
();
}
else
if
(
GET_MODE
(
to
)
==
XFmode
)
{
if
(
GET_MODE
(
from
)
==
SImode
)
libfcn
=
floatsixf_libfunc
;
else
if
(
GET_MODE
(
from
)
==
DImode
)
libfcn
=
floatdixf_libfunc
;
else
if
(
GET_MODE
(
from
)
==
TImode
)
libfcn
=
floattixf_libfunc
;
else
abort
();
}
else
if
(
GET_MODE
(
to
)
==
TFmode
)
{
if
(
GET_MODE
(
from
)
==
SImode
)
libfcn
=
floatsitf_libfunc
;
else
if
(
GET_MODE
(
from
)
==
DImode
)
libfcn
=
floatditf_libfunc
;
else
if
(
GET_MODE
(
from
)
==
TImode
)
libfcn
=
floattitf_libfunc
;
else
else
abort
();
abort
();
}
}
...
@@ -2749,6 +3017,8 @@ expand_fix (to, from, unsignedp)
...
@@ -2749,6 +3017,8 @@ expand_fix (to, from, unsignedp)
libfcn
=
unsignedp
?
fixunssfsi_libfunc
:
fixsfsi_libfunc
;
libfcn
=
unsignedp
?
fixunssfsi_libfunc
:
fixsfsi_libfunc
;
else
if
(
GET_MODE
(
to
)
==
DImode
)
else
if
(
GET_MODE
(
to
)
==
DImode
)
libfcn
=
unsignedp
?
fixunssfdi_libfunc
:
fixsfdi_libfunc
;
libfcn
=
unsignedp
?
fixunssfdi_libfunc
:
fixsfdi_libfunc
;
else
if
(
GET_MODE
(
to
)
==
TImode
)
libfcn
=
unsignedp
?
fixunssfti_libfunc
:
fixsfti_libfunc
;
else
else
abort
();
abort
();
}
}
...
@@ -2758,6 +3028,30 @@ expand_fix (to, from, unsignedp)
...
@@ -2758,6 +3028,30 @@ expand_fix (to, from, unsignedp)
libfcn
=
unsignedp
?
fixunsdfsi_libfunc
:
fixdfsi_libfunc
;
libfcn
=
unsignedp
?
fixunsdfsi_libfunc
:
fixdfsi_libfunc
;
else
if
(
GET_MODE
(
to
)
==
DImode
)
else
if
(
GET_MODE
(
to
)
==
DImode
)
libfcn
=
unsignedp
?
fixunsdfdi_libfunc
:
fixdfdi_libfunc
;
libfcn
=
unsignedp
?
fixunsdfdi_libfunc
:
fixdfdi_libfunc
;
else
if
(
GET_MODE
(
to
)
==
TImode
)
libfcn
=
unsignedp
?
fixunsdfti_libfunc
:
fixdfti_libfunc
;
else
abort
();
}
else
if
(
GET_MODE
(
from
)
==
XFmode
)
{
if
(
GET_MODE
(
to
)
==
SImode
)
libfcn
=
unsignedp
?
fixunsxfsi_libfunc
:
fixxfsi_libfunc
;
else
if
(
GET_MODE
(
to
)
==
DImode
)
libfcn
=
unsignedp
?
fixunsxfdi_libfunc
:
fixxfdi_libfunc
;
else
if
(
GET_MODE
(
to
)
==
TImode
)
libfcn
=
unsignedp
?
fixunsxfti_libfunc
:
fixxfti_libfunc
;
else
abort
();
}
else
if
(
GET_MODE
(
from
)
==
TFmode
)
{
if
(
GET_MODE
(
to
)
==
SImode
)
libfcn
=
unsignedp
?
fixunstfsi_libfunc
:
fixtfsi_libfunc
;
else
if
(
GET_MODE
(
to
)
==
DImode
)
libfcn
=
unsignedp
?
fixunstfdi_libfunc
:
fixtfdi_libfunc
;
else
if
(
GET_MODE
(
to
)
==
TImode
)
libfcn
=
unsignedp
?
fixunstfti_libfunc
:
fixtfti_libfunc
;
else
else
abort
();
abort
();
}
}
...
@@ -2806,6 +3100,85 @@ init_optab (code)
...
@@ -2806,6 +3100,85 @@ init_optab (code)
return
op
;
return
op
;
}
}
/* Initialize the libfunc fields of an entire group of entries in some
optab. Each entry is set equal to a string consisting of a leading
pair of underscores followed by a generic operation name followed by
a mode name (downshifted to lower case) followed by a single character
representing the number of operands for the given operation (which is
usually one of the characters '2', '3', or '4').
OPTABLE is the table in which libfunc fields are to be initialized.
FIRST_MODE is the first machine mode index in the given optab to
initialize.
LAST_MODE is the last machine mode index in the given optab to
initialize.
OPNAME is the generic (string) name of the operation.
SUFFIX is the character which specifies the number of operands for
the given generic operation.
*/
static
void
init_libfuncs
(
optable
,
first_mode
,
last_mode
,
opname
,
suffix
)
register
optab
optable
;
register
char
*
opname
;
register
enum
machine_mode
first_mode
;
register
enum
machine_mode
last_mode
;
register
char
suffix
;
{
register
enum
machine_mode
mode
;
register
unsigned
opname_len
=
strlen
(
opname
);
for
(
mode
=
first_mode
;
mode
<=
last_mode
;
mode
++
)
{
register
char
*
mname
=
mode_name
[(
int
)
mode
];
register
unsigned
mname_len
=
strlen
(
mname
);
register
char
*
libfunc_name
=
(
char
*
)
xmalloc
(
2
+
opname_len
+
mname_len
+
1
+
1
);
register
char
*
p
;
register
char
*
q
;
p
=
libfunc_name
;
*
p
++
=
'_'
;
*
p
++
=
'_'
;
for
(
q
=
opname
;
*
q
;
)
*
p
++
=
*
q
++
;
for
(
q
=
mname
;
*
q
;
q
++
)
*
p
++
=
tolower
(
*
q
);
*
p
++
=
suffix
;
*
p
++
=
'\0'
;
optable
->
handlers
[(
int
)
mode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
libfunc_name
);
}
}
/* Initialize the libfunc fields of an entire group of entries in some
optab which correspond to all integer mode operations. The parameters
have the same meaning as similarly named ones for the `init_libfuncs'
routine. (See above). */
static
void
init_integral_libfuncs
(
optable
,
opname
,
suffix
)
register
optab
optable
;
register
char
*
opname
;
register
char
suffix
;
{
init_libfuncs
(
optable
,
SImode
,
TImode
,
opname
,
suffix
);
}
/* Initialize the libfunc fields of an entire group of entries in some
optab which correspond to all real mode operations. The parameters
have the same meaning as similarly named ones for the `init_libfuncs'
routine. (See above). */
static
void
init_floating_libfuncs
(
optable
,
opname
,
suffix
)
register
optab
optable
;
register
char
*
opname
;
register
char
suffix
;
{
init_libfuncs
(
optable
,
SFmode
,
TFmode
,
opname
,
suffix
);
}
/* Call this once to initialize the contents of the optabs
/* Call this once to initialize the contents of the optabs
appropriately for the current target machine. */
appropriately for the current target machine. */
...
@@ -2888,14 +3261,16 @@ init_optabs ()
...
@@ -2888,14 +3261,16 @@ init_optabs ()
if
(
HAVE_adddf3
)
if
(
HAVE_adddf3
)
add_optab
->
handlers
[(
int
)
DFmode
].
insn_code
=
CODE_FOR_adddf3
;
add_optab
->
handlers
[(
int
)
DFmode
].
insn_code
=
CODE_FOR_adddf3
;
#endif
#endif
#ifdef HAVE_addxf3
if
(
HAVE_addxf3
)
add_optab
->
handlers
[(
int
)
XFmode
].
insn_code
=
CODE_FOR_addxf3
;
#endif
#ifdef HAVE_addtf3
#ifdef HAVE_addtf3
if
(
HAVE_addtf3
)
if
(
HAVE_addtf3
)
add_optab
->
handlers
[(
int
)
TFmode
].
insn_code
=
CODE_FOR_addtf3
;
add_optab
->
handlers
[(
int
)
TFmode
].
insn_code
=
CODE_FOR_addtf3
;
#endif
#endif
add_optab
->
handlers
[(
int
)
SFmode
].
libfunc
init_integral_libfuncs
(
add_optab
,
"add"
,
'3'
);
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__addsf3"
);
init_floating_libfuncs
(
add_optab
,
"add"
,
'3'
);
add_optab
->
handlers
[(
int
)
DFmode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__adddf3"
);
#ifdef HAVE_subqi3
#ifdef HAVE_subqi3
if
(
HAVE_subqi3
)
if
(
HAVE_subqi3
)
...
@@ -2929,14 +3304,16 @@ init_optabs ()
...
@@ -2929,14 +3304,16 @@ init_optabs ()
if
(
HAVE_subdf3
)
if
(
HAVE_subdf3
)
sub_optab
->
handlers
[(
int
)
DFmode
].
insn_code
=
CODE_FOR_subdf3
;
sub_optab
->
handlers
[(
int
)
DFmode
].
insn_code
=
CODE_FOR_subdf3
;
#endif
#endif
#ifdef HAVE_subxf3
if
(
HAVE_subxf3
)
sub_optab
->
handlers
[(
int
)
XFmode
].
insn_code
=
CODE_FOR_subxf3
;
#endif
#ifdef HAVE_subtf3
#ifdef HAVE_subtf3
if
(
HAVE_subtf3
)
if
(
HAVE_subtf3
)
sub_optab
->
handlers
[(
int
)
TFmode
].
insn_code
=
CODE_FOR_subtf3
;
sub_optab
->
handlers
[(
int
)
TFmode
].
insn_code
=
CODE_FOR_subtf3
;
#endif
#endif
sub_optab
->
handlers
[(
int
)
SFmode
].
libfunc
init_integral_libfuncs
(
sub_optab
,
"sub"
,
'3'
);
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__subsf3"
);
init_floating_libfuncs
(
sub_optab
,
"sub"
,
'3'
);
sub_optab
->
handlers
[(
int
)
DFmode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__subdf3"
);
#ifdef HAVE_mulqi3
#ifdef HAVE_mulqi3
if
(
HAVE_mulqi3
)
if
(
HAVE_mulqi3
)
...
@@ -2970,29 +3347,29 @@ init_optabs ()
...
@@ -2970,29 +3347,29 @@ init_optabs ()
if
(
HAVE_muldf3
)
if
(
HAVE_muldf3
)
smul_optab
->
handlers
[(
int
)
DFmode
].
insn_code
=
CODE_FOR_muldf3
;
smul_optab
->
handlers
[(
int
)
DFmode
].
insn_code
=
CODE_FOR_muldf3
;
#endif
#endif
#ifdef HAVE_mulxf3
if
(
HAVE_mulxf3
)
smul_optab
->
handlers
[(
int
)
XFmode
].
insn_code
=
CODE_FOR_mulxf3
;
#endif
#ifdef HAVE_multf3
#ifdef HAVE_multf3
if
(
HAVE_multf3
)
if
(
HAVE_multf3
)
smul_optab
->
handlers
[(
int
)
TFmode
].
insn_code
=
CODE_FOR_multf3
;
smul_optab
->
handlers
[(
int
)
TFmode
].
insn_code
=
CODE_FOR_multf3
;
#endif
#endif
init_integral_libfuncs
(
smul_optab
,
"mul"
,
'3'
);
init_floating_libfuncs
(
smul_optab
,
"mul"
,
'3'
);
#ifdef MULSI3_LIBCALL
#ifdef MULSI3_LIBCALL
smul_optab
->
handlers
[(
int
)
SImode
].
libfunc
smul_optab
->
handlers
[(
int
)
SImode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
MULSI3_LIBCALL
);
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
MULSI3_LIBCALL
);
#else
smul_optab
->
handlers
[(
int
)
SImode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__mulsi3"
);
#endif
#endif
#ifdef MULDI3_LIBCALL
#ifdef MULDI3_LIBCALL
smul_optab
->
handlers
[(
int
)
DImode
].
libfunc
smul_optab
->
handlers
[(
int
)
DImode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
MULDI3_LIBCALL
);
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
MULDI3_LIBCALL
);
#else
smul_optab
->
handlers
[(
int
)
DImode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__muldi3"
);
#endif
#endif
smul_optab
->
handlers
[(
int
)
SFmode
].
libfunc
#ifdef MULTI3_LIBCALL
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__mulsf3"
);
smul_optab
->
handlers
[(
int
)
TImode
].
libfunc
smul_optab
->
handlers
[(
int
)
DFmode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
MULTI3_LIBCALL
);
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__muldf3"
);
#endif
#ifdef HAVE_mulqihi3
#ifdef HAVE_mulqihi3
if
(
HAVE_mulqihi3
)
if
(
HAVE_mulqihi3
)
...
@@ -3052,20 +3429,19 @@ init_optabs ()
...
@@ -3052,20 +3429,19 @@ init_optabs ()
if
(
HAVE_divti3
)
if
(
HAVE_divti3
)
sdiv_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_divti3
;
sdiv_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_divti3
;
#endif
#endif
init_integral_libfuncs
(
sdiv_optab
,
"div"
,
'3'
);
#ifdef DIVSI3_LIBCALL
#ifdef DIVSI3_LIBCALL
sdiv_optab
->
handlers
[(
int
)
SImode
].
libfunc
sdiv_optab
->
handlers
[(
int
)
SImode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
DIVSI3_LIBCALL
);
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
DIVSI3_LIBCALL
);
#else
sdiv_optab
->
handlers
[(
int
)
SImode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__divsi3"
);
#endif
#endif
#ifdef DIVDI3_LIBCALL
#ifdef DIVDI3_LIBCALL
sdiv_optab
->
handlers
[(
int
)
DImode
].
libfunc
sdiv_optab
->
handlers
[(
int
)
DImode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
DIVDI3_LIBCALL
);
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
DIVDI3_LIBCALL
);
#else
#endif
sdiv_optab
->
handlers
[(
int
)
DImode
].
libfunc
#ifdef DIVTI3_LIBCALL
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__divdi3"
);
sdiv_optab
->
handlers
[(
int
)
TImode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
DIVTI3_LIBCALL
);
#endif
#endif
#ifdef HAVE_udivqi3
#ifdef HAVE_udivqi3
...
@@ -3092,20 +3468,19 @@ init_optabs ()
...
@@ -3092,20 +3468,19 @@ init_optabs ()
if
(
HAVE_udivti3
)
if
(
HAVE_udivti3
)
udiv_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_udivti3
;
udiv_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_udivti3
;
#endif
#endif
init_integral_libfuncs
(
udiv_optab
,
"udiv"
,
'3'
);
#ifdef UDIVSI3_LIBCALL
#ifdef UDIVSI3_LIBCALL
udiv_optab
->
handlers
[(
int
)
SImode
].
libfunc
udiv_optab
->
handlers
[(
int
)
SImode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
UDIVSI3_LIBCALL
);
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
UDIVSI3_LIBCALL
);
#else
udiv_optab
->
handlers
[(
int
)
SImode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__udivsi3"
);
#endif
#endif
#ifdef UDIVDI3_LIBCALL
#ifdef UDIVDI3_LIBCALL
udiv_optab
->
handlers
[(
int
)
DImode
].
libfunc
udiv_optab
->
handlers
[(
int
)
DImode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
UDIVDI3_LIBCALL
);
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
UDIVDI3_LIBCALL
);
#else
#endif
udiv_optab
->
handlers
[(
int
)
DImode
].
libfunc
#ifdef UDIVTI3_LIBCALL
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__udivdi3"
);
udiv_optab
->
handlers
[(
int
)
TImode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
UDIVTI3_LIBCALL
);
#endif
#endif
#ifdef HAVE_divmodqi4
#ifdef HAVE_divmodqi4
...
@@ -3128,6 +3503,7 @@ init_optabs ()
...
@@ -3128,6 +3503,7 @@ init_optabs ()
if
(
HAVE_divmodti4
)
if
(
HAVE_divmodti4
)
sdivmod_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_divmodti4
;
sdivmod_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_divmodti4
;
#endif
#endif
init_integral_libfuncs
(
sdivmod_optab
,
"divmod"
,
'4'
);
#ifdef HAVE_udivmodqi4
#ifdef HAVE_udivmodqi4
if
(
HAVE_udivmodqi4
)
if
(
HAVE_udivmodqi4
)
...
@@ -3149,6 +3525,7 @@ init_optabs ()
...
@@ -3149,6 +3525,7 @@ init_optabs ()
if
(
HAVE_udivmodti4
)
if
(
HAVE_udivmodti4
)
udivmod_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_udivmodti4
;
udivmod_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_udivmodti4
;
#endif
#endif
init_integral_libfuncs
(
udivmod_optab
,
"udivmod"
,
'4'
);
#ifdef HAVE_modqi3
#ifdef HAVE_modqi3
if
(
HAVE_modqi3
)
if
(
HAVE_modqi3
)
...
@@ -3174,20 +3551,19 @@ init_optabs ()
...
@@ -3174,20 +3551,19 @@ init_optabs ()
if
(
HAVE_modti3
)
if
(
HAVE_modti3
)
smod_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_modti3
;
smod_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_modti3
;
#endif
#endif
init_integral_libfuncs
(
smod_optab
,
"mod"
,
'3'
);
#ifdef MODSI3_LIBCALL
#ifdef MODSI3_LIBCALL
smod_optab
->
handlers
[(
int
)
SImode
].
libfunc
smod_optab
->
handlers
[(
int
)
SImode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
MODSI3_LIBCALL
);
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
MODSI3_LIBCALL
);
#else
smod_optab
->
handlers
[(
int
)
SImode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__modsi3"
);
#endif
#endif
#ifdef MODDI3_LIBCALL
#ifdef MODDI3_LIBCALL
smod_optab
->
handlers
[(
int
)
DImode
].
libfunc
smod_optab
->
handlers
[(
int
)
DImode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
MODDI3_LIBCALL
);
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
MODDI3_LIBCALL
);
#else
#endif
smod_optab
->
handlers
[(
int
)
DImode
].
libfunc
#ifdef MODTI3_LIBCALL
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__moddi3"
);
smod_optab
->
handlers
[(
int
)
TImode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
MODTI3_LIBCALL
);
#endif
#endif
#ifdef HAVE_umodqi3
#ifdef HAVE_umodqi3
...
@@ -3214,20 +3590,19 @@ init_optabs ()
...
@@ -3214,20 +3590,19 @@ init_optabs ()
if
(
HAVE_umodti3
)
if
(
HAVE_umodti3
)
umod_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_umodti3
;
umod_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_umodti3
;
#endif
#endif
init_integral_libfuncs
(
umod_optab
,
"umod"
,
'3'
);
#ifdef UMODSI3_LIBCALL
#ifdef UMODSI3_LIBCALL
umod_optab
->
handlers
[(
int
)
SImode
].
libfunc
umod_optab
->
handlers
[(
int
)
SImode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
UMODSI3_LIBCALL
);
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
UMODSI3_LIBCALL
);
#else
umod_optab
->
handlers
[(
int
)
SImode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__umodsi3"
);
#endif
#endif
#ifdef UMODDI3_LIBCALL
#ifdef UMODDI3_LIBCALL
umod_optab
->
handlers
[(
int
)
DImode
].
libfunc
umod_optab
->
handlers
[(
int
)
DImode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
UMODDI3_LIBCALL
);
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
UMODDI3_LIBCALL
);
#else
#endif
umod_optab
->
handlers
[(
int
)
DImode
].
libfunc
#ifdef UMODTI3_LIBCALL
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__umoddi3"
);
umod_optab
->
handlers
[(
int
)
TImode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
UMODTI3_LIBCALL
);
#endif
#endif
#ifdef HAVE_divsf3
#ifdef HAVE_divsf3
...
@@ -3238,14 +3613,15 @@ init_optabs ()
...
@@ -3238,14 +3613,15 @@ init_optabs ()
if
(
HAVE_divdf3
)
if
(
HAVE_divdf3
)
flodiv_optab
->
handlers
[(
int
)
DFmode
].
insn_code
=
CODE_FOR_divdf3
;
flodiv_optab
->
handlers
[(
int
)
DFmode
].
insn_code
=
CODE_FOR_divdf3
;
#endif
#endif
#ifdef HAVE_divxf3
if
(
HAVE_divxf3
)
flodiv_optab
->
handlers
[(
int
)
XFmode
].
insn_code
=
CODE_FOR_divxf3
;
#endif
#ifdef HAVE_divtf3
#ifdef HAVE_divtf3
if
(
HAVE_divtf3
)
if
(
HAVE_divtf3
)
flodiv_optab
->
handlers
[(
int
)
TFmode
].
insn_code
=
CODE_FOR_divtf3
;
flodiv_optab
->
handlers
[(
int
)
TFmode
].
insn_code
=
CODE_FOR_divtf3
;
#endif
#endif
flodiv_optab
->
handlers
[(
int
)
SFmode
].
libfunc
init_floating_libfuncs
(
flodiv_optab
,
"div"
,
'3'
);
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__divsf3"
);
flodiv_optab
->
handlers
[(
int
)
DFmode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__divdf3"
);
#ifdef HAVE_ftruncsf2
#ifdef HAVE_ftruncsf2
if
(
HAVE_ftruncsf2
)
if
(
HAVE_ftruncsf2
)
...
@@ -3255,10 +3631,15 @@ init_optabs ()
...
@@ -3255,10 +3631,15 @@ init_optabs ()
if
(
HAVE_ftruncdf2
)
if
(
HAVE_ftruncdf2
)
ftrunc_optab
->
handlers
[(
int
)
DFmode
].
insn_code
=
CODE_FOR_ftruncdf2
;
ftrunc_optab
->
handlers
[(
int
)
DFmode
].
insn_code
=
CODE_FOR_ftruncdf2
;
#endif
#endif
#ifdef HAVE_ftruncxf2
if
(
HAVE_ftruncxf2
)
ftrunc_optab
->
handlers
[(
int
)
XFmode
].
insn_code
=
CODE_FOR_ftruncxf2
;
#endif
#ifdef HAVE_ftrunctf2
#ifdef HAVE_ftrunctf2
if
(
HAVE_ftrunctf2
)
if
(
HAVE_ftrunctf2
)
ftrunc_optab
->
handlers
[(
int
)
TFmode
].
insn_code
=
CODE_FOR_ftrunctf2
;
ftrunc_optab
->
handlers
[(
int
)
TFmode
].
insn_code
=
CODE_FOR_ftrunctf2
;
#endif
#endif
init_floating_libfuncs
(
ftrunc_optab
,
"ftrunc"
,
'2'
);
#ifdef HAVE_andqi3
#ifdef HAVE_andqi3
if
(
HAVE_andqi3
)
if
(
HAVE_andqi3
)
...
@@ -3284,6 +3665,7 @@ init_optabs ()
...
@@ -3284,6 +3665,7 @@ init_optabs ()
if
(
HAVE_andti3
)
if
(
HAVE_andti3
)
and_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_andti3
;
and_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_andti3
;
#endif
#endif
init_integral_libfuncs
(
and_optab
,
"and"
,
'3'
);
#ifdef HAVE_iorqi3
#ifdef HAVE_iorqi3
if
(
HAVE_iorqi3
)
if
(
HAVE_iorqi3
)
...
@@ -3309,6 +3691,7 @@ init_optabs ()
...
@@ -3309,6 +3691,7 @@ init_optabs ()
if
(
HAVE_iorti3
)
if
(
HAVE_iorti3
)
ior_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_iorti3
;
ior_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_iorti3
;
#endif
#endif
init_integral_libfuncs
(
ior_optab
,
"ior"
,
'3'
);
#ifdef HAVE_xorqi3
#ifdef HAVE_xorqi3
if
(
HAVE_xorqi3
)
if
(
HAVE_xorqi3
)
...
@@ -3334,6 +3717,7 @@ init_optabs ()
...
@@ -3334,6 +3717,7 @@ init_optabs ()
if
(
HAVE_xorti3
)
if
(
HAVE_xorti3
)
xor_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_xorti3
;
xor_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_xorti3
;
#endif
#endif
init_integral_libfuncs
(
xor_optab
,
"xor"
,
'3'
);
#ifdef HAVE_ashlqi3
#ifdef HAVE_ashlqi3
if
(
HAVE_ashlqi3
)
if
(
HAVE_ashlqi3
)
...
@@ -3359,10 +3743,7 @@ init_optabs ()
...
@@ -3359,10 +3743,7 @@ init_optabs ()
if
(
HAVE_ashlti3
)
if
(
HAVE_ashlti3
)
ashl_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_ashlti3
;
ashl_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_ashlti3
;
#endif
#endif
ashl_optab
->
handlers
[(
int
)
SImode
].
libfunc
init_integral_libfuncs
(
ashl_optab
,
"ashl"
,
'3'
);
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__ashlsi3"
);
ashl_optab
->
handlers
[(
int
)
DImode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__ashldi3"
);
#ifdef HAVE_ashrqi3
#ifdef HAVE_ashrqi3
if
(
HAVE_ashrqi3
)
if
(
HAVE_ashrqi3
)
...
@@ -3388,10 +3769,7 @@ init_optabs ()
...
@@ -3388,10 +3769,7 @@ init_optabs ()
if
(
HAVE_ashrti3
)
if
(
HAVE_ashrti3
)
ashr_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_ashrti3
;
ashr_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_ashrti3
;
#endif
#endif
ashr_optab
->
handlers
[(
int
)
SImode
].
libfunc
init_integral_libfuncs
(
ashr_optab
,
"ashr"
,
'3'
);
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__ashrsi3"
);
ashr_optab
->
handlers
[(
int
)
DImode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__ashrdi3"
);
#ifdef HAVE_lshlqi3
#ifdef HAVE_lshlqi3
if
(
HAVE_lshlqi3
)
if
(
HAVE_lshlqi3
)
...
@@ -3417,10 +3795,7 @@ init_optabs ()
...
@@ -3417,10 +3795,7 @@ init_optabs ()
if
(
HAVE_lshlti3
)
if
(
HAVE_lshlti3
)
lshl_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_lshlti3
;
lshl_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_lshlti3
;
#endif
#endif
lshl_optab
->
handlers
[(
int
)
SImode
].
libfunc
init_integral_libfuncs
(
lshl_optab
,
"lshl"
,
'3'
);
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__lshlsi3"
);
lshl_optab
->
handlers
[(
int
)
DImode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__lshldi3"
);
#ifdef HAVE_lshrqi3
#ifdef HAVE_lshrqi3
if
(
HAVE_lshrqi3
)
if
(
HAVE_lshrqi3
)
...
@@ -3446,10 +3821,7 @@ init_optabs ()
...
@@ -3446,10 +3821,7 @@ init_optabs ()
if
(
HAVE_lshrti3
)
if
(
HAVE_lshrti3
)
lshr_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_lshrti3
;
lshr_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_lshrti3
;
#endif
#endif
lshr_optab
->
handlers
[(
int
)
SImode
].
libfunc
init_integral_libfuncs
(
lshr_optab
,
"lshr"
,
'3'
);
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__lshrsi3"
);
lshr_optab
->
handlers
[(
int
)
DImode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__lshrdi3"
);
#ifdef HAVE_rotlqi3
#ifdef HAVE_rotlqi3
if
(
HAVE_rotlqi3
)
if
(
HAVE_rotlqi3
)
...
@@ -3475,10 +3847,7 @@ init_optabs ()
...
@@ -3475,10 +3847,7 @@ init_optabs ()
if
(
HAVE_rotlti3
)
if
(
HAVE_rotlti3
)
rotl_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_rotlti3
;
rotl_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_rotlti3
;
#endif
#endif
rotl_optab
->
handlers
[(
int
)
SImode
].
libfunc
init_integral_libfuncs
(
rotl_optab
,
"rotl"
,
'3'
);
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__rotlsi3"
);
rotl_optab
->
handlers
[(
int
)
DImode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__rotldi3"
);
#ifdef HAVE_rotrqi3
#ifdef HAVE_rotrqi3
if
(
HAVE_rotrqi3
)
if
(
HAVE_rotrqi3
)
...
@@ -3504,10 +3873,7 @@ init_optabs ()
...
@@ -3504,10 +3873,7 @@ init_optabs ()
if
(
HAVE_rotrti3
)
if
(
HAVE_rotrti3
)
rotr_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_rotrti3
;
rotr_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_rotrti3
;
#endif
#endif
rotr_optab
->
handlers
[(
int
)
SImode
].
libfunc
init_integral_libfuncs
(
rotr_optab
,
"rotr"
,
'3'
);
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__rotrsi3"
);
rotr_optab
->
handlers
[(
int
)
DImode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__rotrdi3"
);
#ifdef HAVE_sminqi3
#ifdef HAVE_sminqi3
if
(
HAVE_sminqi3
)
if
(
HAVE_sminqi3
)
...
@@ -3529,18 +3895,24 @@ init_optabs ()
...
@@ -3529,18 +3895,24 @@ init_optabs ()
if
(
HAVE_sminti3
)
if
(
HAVE_sminti3
)
smin_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_sminti3
;
smin_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_sminti3
;
#endif
#endif
#ifdef HAVE_sminsf3
#ifdef HAVE_minsf3
if
(
HAVE_sminsf3
)
if
(
HAVE_minsf3
)
smin_optab
->
handlers
[(
int
)
SFmode
].
insn_code
=
CODE_FOR_sminsf3
;
smin_optab
->
handlers
[(
int
)
SFmode
].
insn_code
=
CODE_FOR_minsf3
;
#endif
#ifdef HAVE_mindf3
if
(
HAVE_mindf3
)
smin_optab
->
handlers
[(
int
)
DFmode
].
insn_code
=
CODE_FOR_mindf3
;
#endif
#endif
#ifdef HAVE_
smind
f3
#ifdef HAVE_
minx
f3
if
(
HAVE_
smind
f3
)
if
(
HAVE_
minx
f3
)
smin_optab
->
handlers
[(
int
)
DFmode
].
insn_code
=
CODE_FOR_smind
f3
;
smin_optab
->
handlers
[(
int
)
XFmode
].
insn_code
=
CODE_FOR_minx
f3
;
#endif
#endif
#ifdef HAVE_
s
mintf3
#ifdef HAVE_mintf3
if
(
HAVE_
s
mintf3
)
if
(
HAVE_mintf3
)
smin_optab
->
handlers
[(
int
)
TFmode
].
insn_code
=
CODE_FOR_
s
mintf3
;
smin_optab
->
handlers
[(
int
)
TFmode
].
insn_code
=
CODE_FOR_mintf3
;
#endif
#endif
init_integral_libfuncs
(
smin_optab
,
"min"
,
'3'
);
init_floating_libfuncs
(
smin_optab
,
"min"
,
'3'
);
#ifdef HAVE_smaxqi3
#ifdef HAVE_smaxqi3
if
(
HAVE_smaxqi3
)
if
(
HAVE_smaxqi3
)
...
@@ -3562,18 +3934,24 @@ init_optabs ()
...
@@ -3562,18 +3934,24 @@ init_optabs ()
if
(
HAVE_smaxti3
)
if
(
HAVE_smaxti3
)
smax_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_smaxti3
;
smax_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_smaxti3
;
#endif
#endif
#ifdef HAVE_
s
maxsf3
#ifdef HAVE_maxsf3
if
(
HAVE_
s
maxsf3
)
if
(
HAVE_maxsf3
)
smax_optab
->
handlers
[(
int
)
SFmode
].
insn_code
=
CODE_FOR_
s
maxsf3
;
smax_optab
->
handlers
[(
int
)
SFmode
].
insn_code
=
CODE_FOR_maxsf3
;
#endif
#endif
#ifdef HAVE_
s
maxdf3
#ifdef HAVE_maxdf3
if
(
HAVE_
s
maxdf3
)
if
(
HAVE_maxdf3
)
smax_optab
->
handlers
[(
int
)
DFmode
].
insn_code
=
CODE_FOR_
s
maxdf3
;
smax_optab
->
handlers
[(
int
)
DFmode
].
insn_code
=
CODE_FOR_maxdf3
;
#endif
#endif
#ifdef HAVE_
smaxt
f3
#ifdef HAVE_
maxx
f3
if
(
HAVE_
smaxt
f3
)
if
(
HAVE_
maxx
f3
)
smax_optab
->
handlers
[(
int
)
TFmode
].
insn_code
=
CODE_FOR_smaxt
f3
;
smax_optab
->
handlers
[(
int
)
XFmode
].
insn_code
=
CODE_FOR_maxx
f3
;
#endif
#endif
#ifdef HAVE_maxtf3
if
(
HAVE_maxtf3
)
smax_optab
->
handlers
[(
int
)
TFmode
].
insn_code
=
CODE_FOR_maxtf3
;
#endif
init_integral_libfuncs
(
smax_optab
,
"max"
,
'3'
);
init_floating_libfuncs
(
smax_optab
,
"max"
,
'3'
);
#ifdef HAVE_uminqi3
#ifdef HAVE_uminqi3
if
(
HAVE_uminqi3
)
if
(
HAVE_uminqi3
)
...
@@ -3595,6 +3973,7 @@ init_optabs ()
...
@@ -3595,6 +3973,7 @@ init_optabs ()
if
(
HAVE_uminti3
)
if
(
HAVE_uminti3
)
umin_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_uminti3
;
umin_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_uminti3
;
#endif
#endif
init_integral_libfuncs
(
umin_optab
,
"umin"
,
'3'
);
#ifdef HAVE_umaxqi3
#ifdef HAVE_umaxqi3
if
(
HAVE_umaxqi3
)
if
(
HAVE_umaxqi3
)
...
@@ -3616,6 +3995,7 @@ init_optabs ()
...
@@ -3616,6 +3995,7 @@ init_optabs ()
if
(
HAVE_umaxti3
)
if
(
HAVE_umaxti3
)
umax_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_umaxti3
;
umax_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_umaxti3
;
#endif
#endif
init_integral_libfuncs
(
umax_optab
,
"umax"
,
'3'
);
#ifdef HAVE_negqi2
#ifdef HAVE_negqi2
if
(
HAVE_negqi2
)
if
(
HAVE_negqi2
)
...
@@ -3649,18 +4029,16 @@ init_optabs ()
...
@@ -3649,18 +4029,16 @@ init_optabs ()
if
(
HAVE_negdf2
)
if
(
HAVE_negdf2
)
neg_optab
->
handlers
[(
int
)
DFmode
].
insn_code
=
CODE_FOR_negdf2
;
neg_optab
->
handlers
[(
int
)
DFmode
].
insn_code
=
CODE_FOR_negdf2
;
#endif
#endif
#ifdef HAVE_negxf2
if
(
HAVE_negxf2
)
neg_optab
->
handlers
[(
int
)
XFmode
].
insn_code
=
CODE_FOR_negxf2
;
#endif
#ifdef HAVE_negtf2
#ifdef HAVE_negtf2
if
(
HAVE_negtf2
)
if
(
HAVE_negtf2
)
neg_optab
->
handlers
[(
int
)
TFmode
].
insn_code
=
CODE_FOR_negtf2
;
neg_optab
->
handlers
[(
int
)
TFmode
].
insn_code
=
CODE_FOR_negtf2
;
#endif
#endif
neg_optab
->
handlers
[(
int
)
SImode
].
libfunc
init_integral_libfuncs
(
neg_optab
,
"neg"
,
'2'
);
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__negsi2"
);
init_floating_libfuncs
(
neg_optab
,
"neg"
,
'2'
);
neg_optab
->
handlers
[(
int
)
DImode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__negdi2"
);
neg_optab
->
handlers
[(
int
)
SFmode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__negsf2"
);
neg_optab
->
handlers
[(
int
)
DFmode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__negdf2"
);
#ifdef HAVE_absqi2
#ifdef HAVE_absqi2
if
(
HAVE_absqi2
)
if
(
HAVE_absqi2
)
...
@@ -3694,6 +4072,10 @@ init_optabs ()
...
@@ -3694,6 +4072,10 @@ init_optabs ()
if
(
HAVE_absdf2
)
if
(
HAVE_absdf2
)
abs_optab
->
handlers
[(
int
)
DFmode
].
insn_code
=
CODE_FOR_absdf2
;
abs_optab
->
handlers
[(
int
)
DFmode
].
insn_code
=
CODE_FOR_absdf2
;
#endif
#endif
#ifdef HAVE_absxf2
if
(
HAVE_absxf2
)
abs_optab
->
handlers
[(
int
)
XFmode
].
insn_code
=
CODE_FOR_absxf2
;
#endif
#ifdef HAVE_abstf2
#ifdef HAVE_abstf2
if
(
HAVE_abstf2
)
if
(
HAVE_abstf2
)
abs_optab
->
handlers
[(
int
)
TFmode
].
insn_code
=
CODE_FOR_abstf2
;
abs_optab
->
handlers
[(
int
)
TFmode
].
insn_code
=
CODE_FOR_abstf2
;
...
@@ -3791,8 +4173,7 @@ init_optabs ()
...
@@ -3791,8 +4173,7 @@ init_optabs ()
if
(
HAVE_one_cmplti2
)
if
(
HAVE_one_cmplti2
)
one_cmpl_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_one_cmplti2
;
one_cmpl_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_one_cmplti2
;
#endif
#endif
one_cmpl_optab
->
handlers
[(
int
)
SImode
].
libfunc
init_integral_libfuncs
(
one_cmpl_optab
,
"one_cmpl"
,
'2'
);
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__one_cmplsi2"
);
#ifdef HAVE_ffsqi2
#ifdef HAVE_ffsqi2
if
(
HAVE_ffsqi2
)
if
(
HAVE_ffsqi2
)
...
@@ -3818,8 +4199,7 @@ init_optabs ()
...
@@ -3818,8 +4199,7 @@ init_optabs ()
if
(
HAVE_ffsti2
)
if
(
HAVE_ffsti2
)
ffs_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_ffsti2
;
ffs_optab
->
handlers
[(
int
)
TImode
].
insn_code
=
CODE_FOR_ffsti2
;
#endif
#endif
ffs_optab
->
handlers
[(
int
)
SImode
].
libfunc
init_integral_libfuncs
(
ffs_optab
,
"ffs"
,
'2'
);
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"ffs"
);
#ifdef HAVE_movqi
#ifdef HAVE_movqi
if
(
HAVE_movqi
)
if
(
HAVE_movqi
)
...
@@ -3853,6 +4233,10 @@ init_optabs ()
...
@@ -3853,6 +4233,10 @@ init_optabs ()
if
(
HAVE_movdf
)
if
(
HAVE_movdf
)
mov_optab
->
handlers
[(
int
)
DFmode
].
insn_code
=
CODE_FOR_movdf
;
mov_optab
->
handlers
[(
int
)
DFmode
].
insn_code
=
CODE_FOR_movdf
;
#endif
#endif
#ifdef HAVE_movxf
if
(
HAVE_movxf
)
mov_optab
->
handlers
[(
int
)
XFmode
].
insn_code
=
CODE_FOR_movxf
;
#endif
#ifdef HAVE_movtf
#ifdef HAVE_movtf
if
(
HAVE_movtf
)
if
(
HAVE_movtf
)
mov_optab
->
handlers
[(
int
)
TFmode
].
insn_code
=
CODE_FOR_movtf
;
mov_optab
->
handlers
[(
int
)
TFmode
].
insn_code
=
CODE_FOR_movtf
;
...
@@ -3923,10 +4307,19 @@ init_optabs ()
...
@@ -3923,10 +4307,19 @@ init_optabs ()
if
(
HAVE_cmpdf
)
if
(
HAVE_cmpdf
)
cmp_optab
->
handlers
[(
int
)
DFmode
].
insn_code
=
CODE_FOR_cmpdf
;
cmp_optab
->
handlers
[(
int
)
DFmode
].
insn_code
=
CODE_FOR_cmpdf
;
#endif
#endif
#ifdef HAVE_cmpxf
if
(
HAVE_cmpxf
)
cmp_optab
->
handlers
[(
int
)
XFmode
].
insn_code
=
CODE_FOR_cmpxf
;
#endif
#ifdef HAVE_cmptf
#ifdef HAVE_cmptf
if
(
HAVE_cmptf
)
if
(
HAVE_cmptf
)
cmp_optab
->
handlers
[(
int
)
TFmode
].
insn_code
=
CODE_FOR_cmptf
;
cmp_optab
->
handlers
[(
int
)
TFmode
].
insn_code
=
CODE_FOR_cmptf
;
#endif
#endif
/* Comparison libcalls for integers MUST come in pairs, signed/unsigned. */
init_integral_libfuncs
(
cmp_optab
,
"cmp"
,
'2'
);
init_integral_libfuncs
(
ucmp_optab
,
"ucmp"
,
'2'
);
init_floating_libfuncs
(
cmp_optab
,
"cmp"
,
'2'
);
#ifdef HAVE_tstqi
#ifdef HAVE_tstqi
if
(
HAVE_tstqi
)
if
(
HAVE_tstqi
)
tst_optab
->
handlers
[(
int
)
QImode
].
insn_code
=
CODE_FOR_tstqi
;
tst_optab
->
handlers
[(
int
)
QImode
].
insn_code
=
CODE_FOR_tstqi
;
...
@@ -3959,15 +4352,14 @@ init_optabs ()
...
@@ -3959,15 +4352,14 @@ init_optabs ()
if
(
HAVE_tstdf
)
if
(
HAVE_tstdf
)
tst_optab
->
handlers
[(
int
)
DFmode
].
insn_code
=
CODE_FOR_tstdf
;
tst_optab
->
handlers
[(
int
)
DFmode
].
insn_code
=
CODE_FOR_tstdf
;
#endif
#endif
#ifdef HAVE_tstxf
if
(
HAVE_tstxf
)
tst_optab
->
handlers
[(
int
)
XFmode
].
insn_code
=
CODE_FOR_tstxf
;
#endif
#ifdef HAVE_tsttf
#ifdef HAVE_tsttf
if
(
HAVE_tsttf
)
if
(
HAVE_tsttf
)
tst_optab
->
handlers
[(
int
)
TFmode
].
insn_code
=
CODE_FOR_tsttf
;
tst_optab
->
handlers
[(
int
)
TFmode
].
insn_code
=
CODE_FOR_tsttf
;
#endif
#endif
/* Comparison libcalls for integers MUST come in pairs, signed/unsigned. */
cmp_optab
->
handlers
[(
int
)
DImode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__cmpdi2"
);
ucmp_optab
->
handlers
[(
int
)
DImode
].
libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__ucmpdi2"
);
#ifdef HAVE_beq
#ifdef HAVE_beq
if
(
HAVE_beq
)
if
(
HAVE_beq
)
...
@@ -4055,37 +4447,99 @@ init_optabs ()
...
@@ -4055,37 +4447,99 @@ init_optabs ()
#endif
#endif
extendsfdf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__extendsfdf2"
);
extendsfdf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__extendsfdf2"
);
extendsfxf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__extendsfxf2"
);
extendsftf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__extendsftf2"
);
extenddfxf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__extenddfxf2"
);
extenddftf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__extenddftf2"
);
truncdfsf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__truncdfsf2"
);
truncdfsf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__truncdfsf2"
);
truncxfsf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__truncxfsf2"
);
trunctfsf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__trunctfsf2"
);
truncxfdf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__truncxfdf2"
);
trunctfdf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__trunctfdf2"
);
memcpy_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"memcpy"
);
memcpy_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"memcpy"
);
bcopy_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"bcopy"
);
bcopy_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"bcopy"
);
memcmp_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"memcmp"
);
memcmp_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"memcmp"
);
bcmp_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"bcmp"
);
bcmp_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"bcmp"
);
memset_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"memset"
);
memset_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"memset"
);
bzero_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"bzero"
);
bzero_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"bzero"
);
eqsf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__eqsf2"
);
eqsf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__eqsf2"
);
nesf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__nesf2"
);
nesf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__nesf2"
);
gtsf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__gtsf2"
);
gtsf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__gtsf2"
);
gesf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__gesf2"
);
gesf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__gesf2"
);
ltsf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__ltsf2"
);
ltsf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__ltsf2"
);
lesf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__lesf2"
);
lesf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__lesf2"
);
eqdf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__eqdf2"
);
eqdf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__eqdf2"
);
nedf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__nedf2"
);
nedf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__nedf2"
);
gtdf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__gtdf2"
);
gtdf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__gtdf2"
);
gedf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__gedf2"
);
gedf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__gedf2"
);
ltdf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__ltdf2"
);
ltdf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__ltdf2"
);
ledf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__ledf2"
);
ledf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__ledf2"
);
floatdisf_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__floatdisf"
);
eqxf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__eqxf2"
);
nexf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__nexf2"
);
gtxf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__gtxf2"
);
gexf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__gexf2"
);
ltxf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__ltxf2"
);
lexf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__lexf2"
);
eqtf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__eqtf2"
);
netf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__netf2"
);
gttf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__gttf2"
);
getf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__getf2"
);
lttf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__lttf2"
);
letf2_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__letf2"
);
floatsisf_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__floatsisf"
);
floatsisf_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__floatsisf"
);
floatdidf_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__floatdidf"
);
floatdisf_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__floatdisf"
);
floattisf_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__floattisf"
);
floatsidf_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__floatsidf"
);
floatsidf_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__floatsidf"
);
floatdidf_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__floatdidf"
);
floattidf_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__floattidf"
);
floatsixf_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__floatsixf"
);
floatdixf_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__floatdixf"
);
floattixf_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__floattixf"
);
floatsitf_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__floatsitf"
);
floatditf_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__floatditf"
);
floattitf_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__floattitf"
);
fixsfsi_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__fixsfsi"
);
fixsfsi_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__fixsfsi"
);
fixsfdi_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__fixsfdi"
);
fixsfdi_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__fixsfdi"
);
fixsfti_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__fixsfti"
);
fixdfsi_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__fixdfsi"
);
fixdfsi_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__fixdfsi"
);
fixdfdi_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__fixdfdi"
);
fixdfdi_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__fixdfdi"
);
fixdfti_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__fixdfti"
);
fixxfsi_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__fixxfsi"
);
fixxfdi_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__fixxfdi"
);
fixxfti_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__fixxfti"
);
fixtfsi_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__fixtfsi"
);
fixtfdi_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__fixtfdi"
);
fixtfti_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__fixtfti"
);
fixunssfsi_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__fixunssfsi"
);
fixunssfsi_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__fixunssfsi"
);
fixunssfdi_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__fixunssfdi"
);
fixunssfdi_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__fixunssfdi"
);
fixunssfti_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__fixunssfti"
);
fixunsdfsi_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__fixunsdfsi"
);
fixunsdfsi_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__fixunsdfsi"
);
fixunsdfdi_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__fixunsdfdi"
);
fixunsdfdi_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__fixunsdfdi"
);
fixunsdfti_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__fixunsdfti"
);
fixunsxfsi_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__fixunsxfsi"
);
fixunsxfdi_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__fixunsxfdi"
);
fixunsxfti_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__fixunsxfti"
);
fixunstfsi_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__fixunstfsi"
);
fixunstfdi_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__fixunstfdi"
);
fixunstfti_libfunc
=
gen_rtx
(
SYMBOL_REF
,
Pmode
,
"__fixunstfti"
);
}
}
#ifdef BROKEN_LDEXP
#ifdef BROKEN_LDEXP
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment