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
1a5b457d
Commit
1a5b457d
authored
Apr 13, 1992
by
Richard Kenner
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
*** empty log message ***
From-SVN: r733
parent
77f934bb
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
33 additions
and
8 deletions
+33
-8
gcc/cccp.c
+3
-1
gcc/emit-rtl.c
+30
-7
No files found.
gcc/cccp.c
View file @
1a5b457d
...
...
@@ -3318,6 +3318,8 @@ handle_directive (ip, op)
*
cp
++
=
*
xp
++
;
SKIP_WHITE_SPACE
(
xp
);
}
}
else
{
*
cp
++
=
*
xp
++
;
}
break
;
...
...
@@ -3325,7 +3327,7 @@ handle_directive (ip, op)
case
'\"'
:
{
register
U_CHAR
*
bp1
=
skip_quoted_string
(
xp
-
1
,
limit
,
ip
->
lineno
,
0
,
0
,
0
);
=
skip_quoted_string
(
xp
-
1
,
bp
,
ip
->
lineno
,
0
,
0
,
0
);
while
(
xp
!=
bp1
)
if
(
*
xp
==
'\\'
)
{
if
(
*++
xp
!=
'\n'
)
...
...
gcc/emit-rtl.c
View file @
1a5b457d
...
...
@@ -529,13 +529,36 @@ gen_lowpart_common (mode, x)
from the low-order part of the constant. */
else
if
(
GET_MODE_CLASS
(
mode
)
==
MODE_INT
&&
GET_MODE
(
x
)
==
VOIDmode
&&
(
GET_CODE
(
x
)
==
CONST_INT
||
GET_CODE
(
x
)
==
CONST_DOUBLE
))
return
(
GET_MODE_BITSIZE
(
mode
)
>
HOST_BITS_PER_INT
?
x
:
(
GET_MODE_BITSIZE
(
mode
)
==
HOST_BITS_PER_INT
&&
GET_CODE
(
x
)
==
CONST_INT
)
?
x
:
gen_rtx
(
CONST_INT
,
VOIDmode
,
(
GET_MODE_MASK
(
mode
)
&
(
GET_CODE
(
x
)
==
CONST_INT
?
INTVAL
(
x
)
:
CONST_DOUBLE_LOW
(
x
)))));
{
/* If MODE is twice the host word size, X is already the desired
representation. Otherwise, if MODE is wider than a word, we can't
do this. If MODE is exactly a word, return just one CONST_INT.
If MODE is smaller than a word, clear the bits that don't belong
in our mode, unless they and our sign bit are all one. So we get
either a reasonable negative value or a reasonable unsigned value
for this mode. */
if
(
GET_MODE_BITSIZE
(
mode
)
==
2
*
HOST_BITS_PER_INT
)
return
x
;
else
if
(
GET_MODE_BITSIZE
(
mode
)
>
HOST_BITS_PER_INT
)
return
0
;
else
if
(
GET_MODE_BITSIZE
(
mode
)
==
HOST_BITS_PER_INT
)
return
(
GET_CODE
(
x
)
==
CONST_INT
?
x
:
gen_rtx
(
CONST_INT
,
VOIDmode
,
CONST_DOUBLE_LOW
(
x
)));
else
{
/* MODE must be narrower than HOST_BITS_PER_INT. */
int
width
=
GET_MODE_BITSIZE
(
mode
);
int
val
=
(
GET_CODE
(
x
)
==
CONST_INT
?
INTVAL
(
x
)
:
CONST_DOUBLE_LOW
(
x
));
if
(((
val
&
((
-
1
)
<<
(
width
-
1
)))
!=
((
-
1
)
<<
(
width
-
1
))))
val
&=
(
1
<<
width
)
-
1
;
return
(
GET_CODE
(
x
)
==
CONST_INT
&&
INTVAL
(
x
)
==
val
?
x
:
gen_rtx
(
CONST_INT
,
VOIDmode
,
val
));
}
}
/* Otherwise, we can't do this. */
return
0
;
...
...
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