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
9ad265b0
Commit
9ad265b0
authored
Nov 16, 1994
by
Richard Kenner
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(integer_{zero,one,all_ones,pow2}p): Handle COMPLEX_CST.
(real_{zero,one,two}p): Likewise. From-SVN: r8473
parent
9c4faac1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
45 additions
and
18 deletions
+45
-18
gcc/tree.c
+45
-18
No files found.
gcc/tree.c
View file @
9ad265b0
...
...
@@ -1415,7 +1415,8 @@ make_tree_vec (len)
return
t
;
}
/* Return 1 if EXPR is the integer constant zero. */
/* Return 1 if EXPR is the integer constant zero or a complex constant
of zero. */
int
integer_zerop
(
expr
)
...
...
@@ -1423,12 +1424,16 @@ integer_zerop (expr)
{
STRIP_NOPS
(
expr
);
return
(
TREE_CODE
(
expr
)
==
INTEGER_CST
&&
TREE_INT_CST_LOW
(
expr
)
==
0
&&
TREE_INT_CST_HIGH
(
expr
)
==
0
);
return
((
TREE_CODE
(
expr
)
==
INTEGER_CST
&&
TREE_INT_CST_LOW
(
expr
)
==
0
&&
TREE_INT_CST_HIGH
(
expr
)
==
0
)
||
(
TREE_CODE
(
expr
)
==
COMPLEX_CST
&&
integer_zerop
(
TREE_REALPART
(
expr
))
&&
integer_zerop
(
TREE_IMAGPART
(
expr
))));
}
/* Return 1 if EXPR is the integer constant one. */
/* Return 1 if EXPR is the integer constant one or the corresponding
complex constant. */
int
integer_onep
(
expr
)
...
...
@@ -1436,13 +1441,16 @@ integer_onep (expr)
{
STRIP_NOPS
(
expr
);
return
(
TREE_CODE
(
expr
)
==
INTEGER_CST
&&
TREE_INT_CST_LOW
(
expr
)
==
1
&&
TREE_INT_CST_HIGH
(
expr
)
==
0
);
return
((
TREE_CODE
(
expr
)
==
INTEGER_CST
&&
TREE_INT_CST_LOW
(
expr
)
==
1
&&
TREE_INT_CST_HIGH
(
expr
)
==
0
)
||
(
TREE_CODE
(
expr
)
==
COMPLEX_CST
&&
integer_onep
(
TREE_REALPART
(
expr
))
&&
integer_zerop
(
TREE_IMAGPART
(
expr
))));
}
/* Return 1 if EXPR is an integer containing all 1's
i
n as much precision as it contains
. */
/* Return 1 if EXPR is an integer containing all 1's
in as much precision as
i
t contains. Likewise for the corresponding complex constant
. */
int
integer_all_onesp
(
expr
)
...
...
@@ -1453,7 +1461,12 @@ integer_all_onesp (expr)
STRIP_NOPS
(
expr
);
if
(
TREE_CODE
(
expr
)
!=
INTEGER_CST
)
if
(
TREE_CODE
(
expr
)
==
COMPLEX_CST
&&
integer_all_onesp
(
TREE_REALPART
(
expr
))
&&
integer_zerop
(
TREE_IMAGPART
(
expr
)))
return
1
;
else
if
(
TREE_CODE
(
expr
)
!=
INTEGER_CST
)
return
0
;
uns
=
TREE_UNSIGNED
(
TREE_TYPE
(
expr
));
...
...
@@ -1495,6 +1508,11 @@ integer_pow2p (expr)
STRIP_NOPS
(
expr
);
if
(
TREE_CODE
(
expr
)
==
COMPLEX_CST
&&
integer_pow2p
(
TREE_REALPART
(
expr
))
&&
integer_zerop
(
TREE_IMAGPART
(
expr
)))
return
1
;
if
(
TREE_CODE
(
expr
)
!=
INTEGER_CST
)
return
0
;
...
...
@@ -1516,11 +1534,14 @@ real_zerop (expr)
{
STRIP_NOPS
(
expr
);
return
(
TREE_CODE
(
expr
)
==
REAL_CST
&&
REAL_VALUES_EQUAL
(
TREE_REAL_CST
(
expr
),
dconst0
));
return
((
TREE_CODE
(
expr
)
==
REAL_CST
&&
REAL_VALUES_EQUAL
(
TREE_REAL_CST
(
expr
),
dconst0
))
||
(
TREE_CODE
(
expr
)
==
COMPLEX_CST
&&
real_zerop
(
TREE_REALPART
(
expr
))
&&
real_zerop
(
TREE_IMAGPART
(
expr
))));
}
/* Return 1 if EXPR is the real constant one. */
/* Return 1 if EXPR is the real constant one
in real or complex form
. */
int
real_onep
(
expr
)
...
...
@@ -1528,8 +1549,11 @@ real_onep (expr)
{
STRIP_NOPS
(
expr
);
return
(
TREE_CODE
(
expr
)
==
REAL_CST
&&
REAL_VALUES_EQUAL
(
TREE_REAL_CST
(
expr
),
dconst1
));
return
((
TREE_CODE
(
expr
)
==
REAL_CST
&&
REAL_VALUES_EQUAL
(
TREE_REAL_CST
(
expr
),
dconst1
))
||
(
TREE_CODE
(
expr
)
==
COMPLEX_CST
&&
real_onep
(
TREE_REALPART
(
expr
))
&&
real_zerop
(
TREE_IMAGPART
(
expr
))));
}
/* Return 1 if EXPR is the real constant two. */
...
...
@@ -1540,8 +1564,11 @@ real_twop (expr)
{
STRIP_NOPS
(
expr
);
return
(
TREE_CODE
(
expr
)
==
REAL_CST
&&
REAL_VALUES_EQUAL
(
TREE_REAL_CST
(
expr
),
dconst2
));
return
((
TREE_CODE
(
expr
)
==
REAL_CST
&&
REAL_VALUES_EQUAL
(
TREE_REAL_CST
(
expr
),
dconst2
))
||
(
TREE_CODE
(
expr
)
==
COMPLEX_CST
&&
real_twop
(
TREE_REALPART
(
expr
))
&&
real_zerop
(
TREE_IMAGPART
(
expr
))));
}
/* Nonzero if EXP is a constant or a cast of a constant. */
...
...
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