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
e3d97bde
Commit
e3d97bde
authored
May 09, 2005
by
Richard Earnshaw
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Revert previous (not the patch described).
From-SVN: r99473
parent
71a4f307
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
13 additions
and
18 deletions
+13
-18
gcc/config/arm/arm.c
+13
-18
No files found.
gcc/config/arm/arm.c
View file @
e3d97bde
...
...
@@ -1531,8 +1531,8 @@ use_return_insn (int iscond, rtx sibling)
int
const_ok_for_arm
(
HOST_WIDE_INT
i
)
{
int
lowbit
;
unsigned
HOST_WIDE_INT
mask
=
~
(
unsigned
HOST_WIDE_INT
)
0xFF
;
/* For machines with >32 bit HOST_WIDE_INT, the bits above bit 31 must
be all zero, or all one. */
if
((
i
&
~
(
unsigned
HOST_WIDE_INT
)
0xffffffff
)
!=
0
...
...
@@ -1541,24 +1541,19 @@ const_ok_for_arm (HOST_WIDE_INT i)
&
~
(
unsigned
HOST_WIDE_INT
)
0xffffffff
)))
return
FALSE
;
i
&=
(
unsigned
HOST_WIDE_INT
)
0xffffffff
;
/* Fast return for 0 and small values. We must do this for zero, since
the code below can't handle that one case. */
if
((
i
&
~
(
unsigned
HOST_WIDE_INT
)
0xff
)
==
0
)
/* Fast return for 0 and powers of 2 */
if
((
i
&
(
i
-
1
))
==
0
)
return
TRUE
;
/* Get the number of trailing zeros, rounded down to the nearest even
number. */
lowbit
=
(
ffs
((
int
)
i
)
-
1
)
&
~
1
;
if
((
i
&
~
(((
unsigned
HOST_WIDE_INT
)
0xff
)
<<
lowbit
))
==
0
)
return
TRUE
;
else
if
(
lowbit
<=
4
&&
((
i
&
~
0xc000003f
)
==
0
||
(
i
&
~
0xf000000f
)
==
0
||
(
i
&
~
0xfc000003
)
==
0
))
return
TRUE
;
do
{
if
((
i
&
mask
&
(
unsigned
HOST_WIDE_INT
)
0xffffffff
)
==
0
)
return
TRUE
;
mask
=
(
mask
<<
2
)
|
((
mask
&
(
unsigned
HOST_WIDE_INT
)
0xffffffff
)
>>
(
32
-
2
))
|
~
(
unsigned
HOST_WIDE_INT
)
0xffffffff
;
}
while
(
mask
!=
~
(
unsigned
HOST_WIDE_INT
)
0xFF
);
return
FALSE
;
}
...
...
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