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
34220a12
Commit
34220a12
authored
Sep 04, 1999
by
Bernd Schmidt
Committed by
Bernd Schmidt
Sep 04, 1999
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Convert many single variables to arrays
From-SVN: r29110
parent
6c7c62c6
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
396 additions
and
333 deletions
+396
-333
gcc/ChangeLog
+10
-0
gcc/expr.h
+383
-166
gcc/optabs.c
+3
-167
No files found.
gcc/ChangeLog
View file @
34220a12
Sat
Sep
4
22
:
53
:
13
1999
Bernd
Schmidt
<
bernds
@cygnus
.
co
.
uk
>
*
expr
.
h
:
Collapse
individual
optab
and
libfunc
vars
to
arrays
.
(
optab_index
,
libfunc_index
)
:
New
enumerations
.
(
optab_table
,
libfunc_table
)
:
New
arrays
.
Add
accessor
macros
for
both
.
*
optabs
.
c
(
optab_table
,
libfunc_table
)
:
New
.
Delete
declarations
for
individual
optab
and
libfunc
vars
.
Sat
Sep
4
12
:
57
:
17
1999
Richard
Henderson
<
rth
@cygnus
.
com
>
Sat
Sep
4
12
:
57
:
17
1999
Richard
Henderson
<
rth
@cygnus
.
com
>
*
i386
/
sco5
.
h
(
RETURN_POPS_ARGS
)
:
Name
change
ix86_return_pops_args
.
*
i386
/
sco5
.
h
(
RETURN_POPS_ARGS
)
:
Name
change
ix86_return_pops_args
.
...
...
gcc/expr.h
View file @
34220a12
...
@@ -293,50 +293,141 @@ typedef struct optab
...
@@ -293,50 +293,141 @@ typedef struct optab
extern
rtx
(
*
const
insn_gen_function
[])
PROTO
((
rtx
,
...));
extern
rtx
(
*
const
insn_gen_function
[])
PROTO
((
rtx
,
...));
extern
optab
add_optab
;
/* Enumeration of valid indexes into optab_table. */
extern
optab
sub_optab
;
enum
optab_index
extern
optab
smul_optab
;
/* Signed and floating-point multiply */
{
extern
optab
smul_highpart_optab
;
/* Signed multiply, return high word */
OTI_add
,
extern
optab
umul_highpart_optab
;
OTI_sub
,
extern
optab
smul_widen_optab
;
/* Signed multiply with result
one machine mode wider than args */
/* Signed and fp multiply */
extern
optab
umul_widen_optab
;
OTI_smul
,
extern
optab
sdiv_optab
;
/* Signed divide */
/* Signed multiply, return high word */
extern
optab
sdivmod_optab
;
/* Signed divide-and-remainder in one */
OTI_smul_highpart
,
extern
optab
udiv_optab
;
OTI_umul_highpart
,
extern
optab
udivmod_optab
;
/* Signed multiply with result one machine mode wider than args */
extern
optab
smod_optab
;
/* Signed remainder */
OTI_smul_widen
,
extern
optab
umod_optab
;
OTI_umul_widen
,
extern
optab
flodiv_optab
;
/* Optab for floating divide. */
extern
optab
ftrunc_optab
;
/* Convert float to integer in float fmt */
/* Signed divide */
extern
optab
and_optab
;
/* Logical and */
OTI_sdiv
,
extern
optab
ior_optab
;
/* Logical or */
/* Signed divide-and-remainder in one */
extern
optab
xor_optab
;
/* Logical xor */
OTI_sdivmod
,
extern
optab
ashl_optab
;
/* Arithmetic shift left */
OTI_udiv
,
extern
optab
ashr_optab
;
/* Arithmetic shift right */
OTI_udivmod
,
extern
optab
lshr_optab
;
/* Logical shift right */
/* Signed remainder */
extern
optab
rotl_optab
;
/* Rotate left */
OTI_smod
,
extern
optab
rotr_optab
;
/* Rotate right */
OTI_umod
,
extern
optab
smin_optab
;
/* Signed and floating-point minimum value */
/* Optab for floating divide. */
extern
optab
smax_optab
;
/* Signed and floating-point maximum value */
OTI_flodiv
,
extern
optab
umin_optab
;
/* Unsigned minimum value */
/* Convert float to integer in float fmt */
extern
optab
umax_optab
;
/* Unsigned maximum value */
OTI_ftrunc
,
extern
optab
mov_optab
;
/* Move instruction. */
/* Logical and */
extern
optab
movstrict_optab
;
/* Move, preserving high part of register. */
OTI_and
,
/* Logical or */
extern
optab
cmp_optab
;
/* Compare insn; two operands. */
OTI_ior
,
extern
optab
tst_optab
;
/* tst insn; compare one operand against 0 */
/* Logical xor */
OTI_xor
,
/* Unary operations */
extern
optab
neg_optab
;
/* Negation */
/* Arithmetic shift left */
extern
optab
abs_optab
;
/* Abs value */
OTI_ashl
,
extern
optab
one_cmpl_optab
;
/* Bitwise not */
/* Logical shift right */
extern
optab
ffs_optab
;
/* Find first bit set */
OTI_lshr
,
extern
optab
sqrt_optab
;
/* Square root */
/* Arithmetic shift right */
extern
optab
sin_optab
;
/* Sine */
OTI_ashr
,
extern
optab
cos_optab
;
/* Cosine */
/* Rotate left */
extern
optab
strlen_optab
;
/* String length */
OTI_rotl
,
/* Rotate right */
OTI_rotr
,
/* Signed and floating-point minimum value */
OTI_smin
,
/* Signed and floating-point maximum value */
OTI_smax
,
/* Unsigned minimum value */
OTI_umin
,
/* Unsigned maximum value */
OTI_umax
,
/* Move instruction. */
OTI_mov
,
/* Move, preserving high part of register. */
OTI_movstrict
,
/* Unary operations */
/* Negation */
OTI_neg
,
/* Abs value */
OTI_abs
,
/* Bitwise not */
OTI_one_cmpl
,
/* Find first bit set */
OTI_ffs
,
/* Square root */
OTI_sqrt
,
/* Sine */
OTI_sin
,
/* Cosine */
OTI_cos
,
/* Compare insn; two operands. */
OTI_cmp
,
/* Used only for libcalls for unsigned comparisons. */
OTI_ucmp
,
/* tst insn; compare one operand against 0 */
OTI_tst
,
/* String length */
OTI_strlen
,
OTI_MAX
};
extern
optab
optab_table
[
OTI_MAX
];
#define add_optab (optab_table[OTI_add])
#define sub_optab (optab_table[OTI_sub])
#define smul_optab (optab_table[OTI_smul])
#define smul_highpart_optab (optab_table[OTI_smul_highpart])
#define umul_highpart_optab (optab_table[OTI_umul_highpart])
#define smul_widen_optab (optab_table[OTI_smul_widen])
#define umul_widen_optab (optab_table[OTI_umul_widen])
#define sdiv_optab (optab_table[OTI_sdiv])
#define sdivmod_optab (optab_table[OTI_sdivmod])
#define udiv_optab (optab_table[OTI_udiv])
#define udivmod_optab (optab_table[OTI_udivmod])
#define smod_optab (optab_table[OTI_smod])
#define umod_optab (optab_table[OTI_umod])
#define flodiv_optab (optab_table[OTI_flodiv])
#define ftrunc_optab (optab_table[OTI_ftrunc])
#define and_optab (optab_table[OTI_and])
#define ior_optab (optab_table[OTI_ior])
#define xor_optab (optab_table[OTI_xor])
#define ashl_optab (optab_table[OTI_ashl])
#define lshr_optab (optab_table[OTI_lshr])
#define ashr_optab (optab_table[OTI_ashr])
#define rotl_optab (optab_table[OTI_rotl])
#define rotr_optab (optab_table[OTI_rotr])
#define smin_optab (optab_table[OTI_smin])
#define smax_optab (optab_table[OTI_smax])
#define umin_optab (optab_table[OTI_umin])
#define umax_optab (optab_table[OTI_umax])
#define mov_optab (optab_table[OTI_mov])
#define movstrict_optab (optab_table[OTI_movstrict])
#define neg_optab (optab_table[OTI_neg])
#define abs_optab (optab_table[OTI_abs])
#define one_cmpl_optab (optab_table[OTI_one_cmpl])
#define ffs_optab (optab_table[OTI_ffs])
#define sqrt_optab (optab_table[OTI_sqrt])
#define sin_optab (optab_table[OTI_sin])
#define cos_optab (optab_table[OTI_cos])
#define cmp_optab (optab_table[OTI_cmp])
#define ucmp_optab (optab_table[OTI_ucmp])
#define tst_optab (optab_table[OTI_tst])
#define strlen_optab (optab_table[OTI_strlen])
/* Tables of patterns for extending one integer mode to another. */
/* Tables of patterns for extending one integer mode to another. */
extern
enum
insn_code
extendtab
[
MAX_MACHINE_MODE
][
MAX_MACHINE_MODE
][
2
];
extern
enum
insn_code
extendtab
[
MAX_MACHINE_MODE
][
MAX_MACHINE_MODE
][
2
];
...
@@ -364,130 +455,256 @@ enum optab_methods
...
@@ -364,130 +455,256 @@ enum optab_methods
OPTAB_MUST_WIDEN
OPTAB_MUST_WIDEN
};
};
/* Enumeration of indexes into libfunc_table. */
enum
libfunc_index
{
LTI_extendsfdf2
,
LTI_extendsfxf2
,
LTI_extendsftf2
,
LTI_extenddfxf2
,
LTI_extenddftf2
,
LTI_truncdfsf2
,
LTI_truncxfsf2
,
LTI_trunctfsf2
,
LTI_truncxfdf2
,
LTI_trunctfdf2
,
LTI_memcpy
,
LTI_bcopy
,
LTI_memcmp
,
LTI_bcmp
,
LTI_memset
,
LTI_bzero
,
LTI_throw
,
LTI_rethrow
,
LTI_sjthrow
,
LTI_sjpopnthrow
,
LTI_terminate
,
LTI_setjmp
,
LTI_longjmp
,
LTI_eh_rtime_match
,
LTI_eqhf2
,
LTI_nehf2
,
LTI_gthf2
,
LTI_gehf2
,
LTI_lthf2
,
LTI_lehf2
,
LTI_eqsf2
,
LTI_nesf2
,
LTI_gtsf2
,
LTI_gesf2
,
LTI_ltsf2
,
LTI_lesf2
,
LTI_eqdf2
,
LTI_nedf2
,
LTI_gtdf2
,
LTI_gedf2
,
LTI_ltdf2
,
LTI_ledf2
,
LTI_eqxf2
,
LTI_nexf2
,
LTI_gtxf2
,
LTI_gexf2
,
LTI_ltxf2
,
LTI_lexf2
,
LTI_eqtf2
,
LTI_netf2
,
LTI_gttf2
,
LTI_getf2
,
LTI_lttf2
,
LTI_letf2
,
LTI_floatsisf
,
LTI_floatdisf
,
LTI_floattisf
,
LTI_floatsidf
,
LTI_floatdidf
,
LTI_floattidf
,
LTI_floatsixf
,
LTI_floatdixf
,
LTI_floattixf
,
LTI_floatsitf
,
LTI_floatditf
,
LTI_floattitf
,
LTI_fixsfsi
,
LTI_fixsfdi
,
LTI_fixsfti
,
LTI_fixdfsi
,
LTI_fixdfdi
,
LTI_fixdfti
,
LTI_fixxfsi
,
LTI_fixxfdi
,
LTI_fixxfti
,
LTI_fixtfsi
,
LTI_fixtfdi
,
LTI_fixtfti
,
LTI_fixunssfsi
,
LTI_fixunssfdi
,
LTI_fixunssfti
,
LTI_fixunsdfsi
,
LTI_fixunsdfdi
,
LTI_fixunsdfti
,
LTI_fixunsxfsi
,
LTI_fixunsxfdi
,
LTI_fixunsxfti
,
LTI_fixunstfsi
,
LTI_fixunstfdi
,
LTI_fixunstfti
,
LTI_chkr_check_addr
,
LTI_chkr_set_right
,
LTI_chkr_copy_bitmap
,
LTI_chkr_check_exec
,
LTI_chkr_check_str
,
LTI_profile_function_entry
,
LTI_profile_function_exit
,
LTI_MAX
};
/* SYMBOL_REF rtx's for the library functions that are called
/* SYMBOL_REF rtx's for the library functions that are called
implicitly and not via optabs. */
implicitly and not via optabs. */
extern
rtx
libfunc_table
[
LTI_MAX
];
extern
rtx
extendsfdf2_libfunc
;
extern
rtx
extendsfxf2_libfunc
;
/* Accessor macros for libfunc_table. */
extern
rtx
extendsftf2_libfunc
;
#define extendsfdf2_libfunc (libfunc_table[LTI_extendsfdf2])
extern
rtx
extenddfxf2_libfunc
;
#define extendsfxf2_libfunc (libfunc_table[LTI_extendsfxf2])
extern
rtx
extenddftf2_libfunc
;
#define extendsftf2_libfunc (libfunc_table[LTI_extendsftf2])
#define extenddfxf2_libfunc (libfunc_table[LTI_extenddfxf2])
extern
rtx
truncdfsf2_libfunc
;
#define extenddftf2_libfunc (libfunc_table[LTI_extenddftf2])
extern
rtx
truncxfsf2_libfunc
;
extern
rtx
trunctfsf2_libfunc
;
#define truncdfsf2_libfunc (libfunc_table[LTI_truncdfsf2])
extern
rtx
truncxfdf2_libfunc
;
#define truncxfsf2_libfunc (libfunc_table[LTI_truncxfsf2])
extern
rtx
trunctfdf2_libfunc
;
#define trunctfsf2_libfunc (libfunc_table[LTI_trunctfsf2])
#define truncxfdf2_libfunc (libfunc_table[LTI_truncxfdf2])
extern
rtx
memcpy_libfunc
;
#define trunctfdf2_libfunc (libfunc_table[LTI_trunctfdf2])
extern
rtx
bcopy_libfunc
;
extern
rtx
memcmp_libfunc
;
#define memcpy_libfunc (libfunc_table[LTI_memcpy])
extern
rtx
bcmp_libfunc
;
#define bcopy_libfunc (libfunc_table[LTI_bcopy])
extern
rtx
memset_libfunc
;
#define memcmp_libfunc (libfunc_table[LTI_memcmp])
extern
rtx
bzero_libfunc
;
#define bcmp_libfunc (libfunc_table[LTI_bcmp])
#define memset_libfunc (libfunc_table[LTI_memset])
extern
rtx
throw_libfunc
;
#define bzero_libfunc (libfunc_table[LTI_bzero])
extern
rtx
rethrow_libfunc
;
extern
rtx
sjthrow_libfunc
;
#define throw_libfunc (libfunc_table[LTI_throw])
extern
rtx
sjpopnthrow_libfunc
;
#define rethrow_libfunc (libfunc_table[LTI_rethrow])
extern
rtx
terminate_libfunc
;
#define sjthrow_libfunc (libfunc_table[LTI_sjthrow])
extern
rtx
setjmp_libfunc
;
#define sjpopnthrow_libfunc (libfunc_table[LTI_sjpopnthrow])
extern
rtx
longjmp_libfunc
;
#define terminate_libfunc (libfunc_table[LTI_terminate])
extern
rtx
eh_rtime_match_libfunc
;
#define setjmp_libfunc (libfunc_table[LTI_setjmp])
#define longjmp_libfunc (libfunc_table[LTI_longjmp])
extern
rtx
eqhf2_libfunc
;
#define eh_rtime_match_libfunc (libfunc_table[LTI_eh_rtime_match])
extern
rtx
nehf2_libfunc
;
extern
rtx
gthf2_libfunc
;
#define eqhf2_libfunc (libfunc_table[LTI_eqhf2])
extern
rtx
gehf2_libfunc
;
#define nehf2_libfunc (libfunc_table[LTI_nehf2])
extern
rtx
lthf2_libfunc
;
#define gthf2_libfunc (libfunc_table[LTI_gthf2])
extern
rtx
lehf2_libfunc
;
#define gehf2_libfunc (libfunc_table[LTI_gehf2])
#define lthf2_libfunc (libfunc_table[LTI_lthf2])
extern
rtx
eqsf2_libfunc
;
#define lehf2_libfunc (libfunc_table[LTI_lehf2])
extern
rtx
nesf2_libfunc
;
extern
rtx
gtsf2_libfunc
;
#define eqsf2_libfunc (libfunc_table[LTI_eqsf2])
extern
rtx
gesf2_libfunc
;
#define nesf2_libfunc (libfunc_table[LTI_nesf2])
extern
rtx
ltsf2_libfunc
;
#define gtsf2_libfunc (libfunc_table[LTI_gtsf2])
extern
rtx
lesf2_libfunc
;
#define gesf2_libfunc (libfunc_table[LTI_gesf2])
#define ltsf2_libfunc (libfunc_table[LTI_ltsf2])
extern
rtx
eqdf2_libfunc
;
#define lesf2_libfunc (libfunc_table[LTI_lesf2])
extern
rtx
nedf2_libfunc
;
extern
rtx
gtdf2_libfunc
;
#define eqdf2_libfunc (libfunc_table[LTI_eqdf2])
extern
rtx
gedf2_libfunc
;
#define nedf2_libfunc (libfunc_table[LTI_nedf2])
extern
rtx
ltdf2_libfunc
;
#define gtdf2_libfunc (libfunc_table[LTI_gtdf2])
extern
rtx
ledf2_libfunc
;
#define gedf2_libfunc (libfunc_table[LTI_gedf2])
#define ltdf2_libfunc (libfunc_table[LTI_ltdf2])
extern
rtx
eqxf2_libfunc
;
#define ledf2_libfunc (libfunc_table[LTI_ledf2])
extern
rtx
nexf2_libfunc
;
extern
rtx
gtxf2_libfunc
;
#define eqxf2_libfunc (libfunc_table[LTI_eqxf2])
extern
rtx
gexf2_libfunc
;
#define nexf2_libfunc (libfunc_table[LTI_nexf2])
extern
rtx
ltxf2_libfunc
;
#define gtxf2_libfunc (libfunc_table[LTI_gtxf2])
extern
rtx
lexf2_libfunc
;
#define gexf2_libfunc (libfunc_table[LTI_gexf2])
#define ltxf2_libfunc (libfunc_table[LTI_ltxf2])
extern
rtx
eqtf2_libfunc
;
#define lexf2_libfunc (libfunc_table[LTI_lexf2])
extern
rtx
netf2_libfunc
;
extern
rtx
gttf2_libfunc
;
#define eqtf2_libfunc (libfunc_table[LTI_eqtf2])
extern
rtx
getf2_libfunc
;
#define netf2_libfunc (libfunc_table[LTI_netf2])
extern
rtx
lttf2_libfunc
;
#define gttf2_libfunc (libfunc_table[LTI_gttf2])
extern
rtx
letf2_libfunc
;
#define getf2_libfunc (libfunc_table[LTI_getf2])
#define lttf2_libfunc (libfunc_table[LTI_lttf2])
extern
rtx
floatsisf_libfunc
;
#define letf2_libfunc (libfunc_table[LTI_letf2])
extern
rtx
floatdisf_libfunc
;
extern
rtx
floattisf_libfunc
;
#define floatsisf_libfunc (libfunc_table[LTI_floatsisf])
#define floatdisf_libfunc (libfunc_table[LTI_floatdisf])
extern
rtx
floatsidf_libfunc
;
#define floattisf_libfunc (libfunc_table[LTI_floattisf])
extern
rtx
floatdidf_libfunc
;
extern
rtx
floattidf_libfunc
;
#define floatsidf_libfunc (libfunc_table[LTI_floatsidf])
#define floatdidf_libfunc (libfunc_table[LTI_floatdidf])
extern
rtx
floatsixf_libfunc
;
#define floattidf_libfunc (libfunc_table[LTI_floattidf])
extern
rtx
floatdixf_libfunc
;
extern
rtx
floattixf_libfunc
;
#define floatsixf_libfunc (libfunc_table[LTI_floatsixf])
#define floatdixf_libfunc (libfunc_table[LTI_floatdixf])
extern
rtx
floatsitf_libfunc
;
#define floattixf_libfunc (libfunc_table[LTI_floattixf])
extern
rtx
floatditf_libfunc
;
extern
rtx
floattitf_libfunc
;
#define floatsitf_libfunc (libfunc_table[LTI_floatsitf])
#define floatditf_libfunc (libfunc_table[LTI_floatditf])
extern
rtx
fixsfsi_libfunc
;
#define floattitf_libfunc (libfunc_table[LTI_floattitf])
extern
rtx
fixsfdi_libfunc
;
extern
rtx
fixsfti_libfunc
;
#define fixsfsi_libfunc (libfunc_table[LTI_fixsfsi])
#define fixsfdi_libfunc (libfunc_table[LTI_fixsfdi])
extern
rtx
fixdfsi_libfunc
;
#define fixsfti_libfunc (libfunc_table[LTI_fixsfti])
extern
rtx
fixdfdi_libfunc
;
extern
rtx
fixdfti_libfunc
;
#define fixdfsi_libfunc (libfunc_table[LTI_fixdfsi])
#define fixdfdi_libfunc (libfunc_table[LTI_fixdfdi])
extern
rtx
fixxfsi_libfunc
;
#define fixdfti_libfunc (libfunc_table[LTI_fixdfti])
extern
rtx
fixxfdi_libfunc
;
extern
rtx
fixxfti_libfunc
;
#define fixxfsi_libfunc (libfunc_table[LTI_fixxfsi])
#define fixxfdi_libfunc (libfunc_table[LTI_fixxfdi])
extern
rtx
fixtfsi_libfunc
;
#define fixxfti_libfunc (libfunc_table[LTI_fixxfti])
extern
rtx
fixtfdi_libfunc
;
extern
rtx
fixtfti_libfunc
;
#define fixtfsi_libfunc (libfunc_table[LTI_fixtfsi])
#define fixtfdi_libfunc (libfunc_table[LTI_fixtfdi])
extern
rtx
fixunssfsi_libfunc
;
#define fixtfti_libfunc (libfunc_table[LTI_fixtfti])
extern
rtx
fixunssfdi_libfunc
;
extern
rtx
fixunssfti_libfunc
;
#define fixunssfsi_libfunc (libfunc_table[LTI_fixunssfsi])
#define fixunssfdi_libfunc (libfunc_table[LTI_fixunssfdi])
extern
rtx
fixunsdfsi_libfunc
;
#define fixunssfti_libfunc (libfunc_table[LTI_fixunssfti])
extern
rtx
fixunsdfdi_libfunc
;
extern
rtx
fixunsdfti_libfunc
;
#define fixunsdfsi_libfunc (libfunc_table[LTI_fixunsdfsi])
#define fixunsdfdi_libfunc (libfunc_table[LTI_fixunsdfdi])
extern
rtx
fixunsxfsi_libfunc
;
#define fixunsdfti_libfunc (libfunc_table[LTI_fixunsdfti])
extern
rtx
fixunsxfdi_libfunc
;
extern
rtx
fixunsxfti_libfunc
;
#define fixunsxfsi_libfunc (libfunc_table[LTI_fixunsxfsi])
#define fixunsxfdi_libfunc (libfunc_table[LTI_fixunsxfdi])
extern
rtx
fixunstfsi_libfunc
;
#define fixunsxfti_libfunc (libfunc_table[LTI_fixunsxfti])
extern
rtx
fixunstfdi_libfunc
;
extern
rtx
fixunstfti_libfunc
;
#define fixunstfsi_libfunc (libfunc_table[LTI_fixunstfsi])
#define fixunstfdi_libfunc (libfunc_table[LTI_fixunstfdi])
/* For check-memory-usage. */
#define fixunstfti_libfunc (libfunc_table[LTI_fixunstfti])
extern
rtx
chkr_check_addr_libfunc
;
extern
rtx
chkr_set_right_libfunc
;
#define chkr_check_addr_libfunc (libfunc_table[LTI_chkr_check_addr])
extern
rtx
chkr_copy_bitmap_libfunc
;
#define chkr_set_right_libfunc (libfunc_table[LTI_chkr_set_right])
extern
rtx
chkr_check_exec_libfunc
;
#define chkr_copy_bitmap_libfunc (libfunc_table[LTI_chkr_copy_bitmap])
extern
rtx
chkr_check_str_libfunc
;
#define chkr_check_exec_libfunc (libfunc_table[LTI_chkr_check_exec])
#define chkr_check_str_libfunc (libfunc_table[LTI_chkr_check_str])
/* For instrument-functions. */
extern
rtx
profile_function_entry_libfunc
;
#define profile_function_entry_libfunc (libfunc_table[LTI_profile_function_entry])
extern
rtx
profile_function_exit_libfunc
;
#define profile_function_exit_libfunc (libfunc_table[LTI_profile_function_exit])
typedef
rtx
(
*
rtxfun
)
PROTO
((
rtx
));
typedef
rtx
(
*
rtxfun
)
PROTO
((
rtx
));
...
...
gcc/optabs.c
View file @
34220a12
...
@@ -45,50 +45,9 @@ Boston, MA 02111-1307, USA. */
...
@@ -45,50 +45,9 @@ Boston, MA 02111-1307, USA. */
See expr.h for documentation of these optabs. */
See expr.h for documentation of these optabs. */
optab
add_optab
;
optab
optab_table
[
OTI_MAX
];
optab
sub_optab
;
optab
smul_optab
;
rtx
libfunc_table
[
LTI_MAX
];
optab
smul_highpart_optab
;
optab
umul_highpart_optab
;
optab
smul_widen_optab
;
optab
umul_widen_optab
;
optab
sdiv_optab
;
optab
sdivmod_optab
;
optab
udiv_optab
;
optab
udivmod_optab
;
optab
smod_optab
;
optab
umod_optab
;
optab
flodiv_optab
;
optab
ftrunc_optab
;
optab
and_optab
;
optab
ior_optab
;
optab
xor_optab
;
optab
ashl_optab
;
optab
lshr_optab
;
optab
ashr_optab
;
optab
rotl_optab
;
optab
rotr_optab
;
optab
smin_optab
;
optab
smax_optab
;
optab
umin_optab
;
optab
umax_optab
;
optab
mov_optab
;
optab
movstrict_optab
;
optab
neg_optab
;
optab
abs_optab
;
optab
one_cmpl_optab
;
optab
ffs_optab
;
optab
sqrt_optab
;
optab
sin_optab
;
optab
cos_optab
;
optab
cmp_optab
;
optab
ucmp_optab
;
/* Used only for libcalls for unsigned comparisons. */
optab
tst_optab
;
optab
strlen_optab
;
/* Tables of patterns for extending one integer mode to another. */
/* Tables of patterns for extending one integer mode to another. */
enum
insn_code
extendtab
[
MAX_MACHINE_MODE
][
MAX_MACHINE_MODE
][
2
];
enum
insn_code
extendtab
[
MAX_MACHINE_MODE
][
MAX_MACHINE_MODE
][
2
];
...
@@ -101,129 +60,6 @@ enum insn_code floattab[NUM_MACHINE_MODES][NUM_MACHINE_MODES][2];
...
@@ -101,129 +60,6 @@ enum insn_code floattab[NUM_MACHINE_MODES][NUM_MACHINE_MODES][2];
/* Contains the optab used for each rtx code. */
/* Contains the optab used for each rtx code. */
optab
code_to_optab
[
NUM_RTX_CODE
+
1
];
optab
code_to_optab
[
NUM_RTX_CODE
+
1
];
/* SYMBOL_REF rtx's for the library functions that are called
implicitly and not via optabs. */
rtx
extendsfdf2_libfunc
;
rtx
extendsfxf2_libfunc
;
rtx
extendsftf2_libfunc
;
rtx
extenddfxf2_libfunc
;
rtx
extenddftf2_libfunc
;
rtx
truncdfsf2_libfunc
;
rtx
truncxfsf2_libfunc
;
rtx
trunctfsf2_libfunc
;
rtx
truncxfdf2_libfunc
;
rtx
trunctfdf2_libfunc
;
rtx
memcpy_libfunc
;
rtx
bcopy_libfunc
;
rtx
memcmp_libfunc
;
rtx
bcmp_libfunc
;
rtx
memset_libfunc
;
rtx
bzero_libfunc
;
rtx
throw_libfunc
;
rtx
rethrow_libfunc
;
rtx
sjthrow_libfunc
;
rtx
sjpopnthrow_libfunc
;
rtx
terminate_libfunc
;
rtx
setjmp_libfunc
;
rtx
longjmp_libfunc
;
rtx
eh_rtime_match_libfunc
;
rtx
eqhf2_libfunc
;
rtx
nehf2_libfunc
;
rtx
gthf2_libfunc
;
rtx
gehf2_libfunc
;
rtx
lthf2_libfunc
;
rtx
lehf2_libfunc
;
rtx
eqsf2_libfunc
;
rtx
nesf2_libfunc
;
rtx
gtsf2_libfunc
;
rtx
gesf2_libfunc
;
rtx
ltsf2_libfunc
;
rtx
lesf2_libfunc
;
rtx
eqdf2_libfunc
;
rtx
nedf2_libfunc
;
rtx
gtdf2_libfunc
;
rtx
gedf2_libfunc
;
rtx
ltdf2_libfunc
;
rtx
ledf2_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
floatdisf_libfunc
;
rtx
floattisf_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
fixsfdi_libfunc
;
rtx
fixsfti_libfunc
;
rtx
fixdfsi_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
fixunssfdi_libfunc
;
rtx
fixunssfti_libfunc
;
rtx
fixunsdfsi_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
;
rtx
chkr_check_addr_libfunc
;
rtx
chkr_set_right_libfunc
;
rtx
chkr_copy_bitmap_libfunc
;
rtx
chkr_check_exec_libfunc
;
rtx
chkr_check_str_libfunc
;
rtx
profile_function_entry_libfunc
;
rtx
profile_function_exit_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. */
...
...
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