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
6cca74ab
Commit
6cca74ab
authored
Apr 17, 1998
by
Greg McGary
Committed by
Richard Henderson
Apr 17, 1998
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* emit-rtl.c (gen_highpart): initialize `word' properly for pseudo.
From-SVN: r19271
parent
4daa9c14
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
13 additions
and
3 deletions
+13
-3
gcc/ChangeLog
+4
-0
gcc/emit-rtl.c
+9
-3
No files found.
gcc/ChangeLog
View file @
6cca74ab
Fri Apr 17 16:35:35 1998 Greg McGary <gkm@gnu.org>
* emit-rtl.c (gen_highpart): initialize `word' properly for pseudo.
Fri Apr 17 14:30:37 1998 John Carr <jfc@mit.edu>
Fri Apr 17 14:30:37 1998 John Carr <jfc@mit.edu>
* emit-rtl.c (operand_subword_force): If a register can not be
* emit-rtl.c (operand_subword_force): If a register can not be
...
...
gcc/emit-rtl.c
View file @
6cca74ab
...
@@ -1011,18 +1011,24 @@ gen_highpart (mode, x)
...
@@ -1011,18 +1011,24 @@ gen_highpart (mode, x)
}
}
else
if
(
GET_CODE
(
x
)
==
REG
)
else
if
(
GET_CODE
(
x
)
==
REG
)
{
{
int
word
=
0
;
int
word
;
/* Let the backend decide how many registers to skip. This is needed
/* Let the backend decide how many registers to skip. This is needed
in particular for sparc64 where fp regs are smaller than a word. */
in particular for sparc64 where fp regs are smaller than a word. */
/* ??? Note that subregs are now ambiguous, in that those against
/* ??? Note that subregs are now ambiguous, in that those against
pseudos are sized by the
Word S
ize, while those against hard
pseudos are sized by the
word s
ize, while those against hard
regs are sized by the underlying register size. Better would be
regs are sized by the underlying register size. Better would be
to always interpret the subreg offset parameter as bytes or bits. */
to always interpret the subreg offset parameter as bytes or bits. */
if
(
!
WORDS_BIG_ENDIAN
&&
REGNO
(
x
)
<
FIRST_PSEUDO_REGISTER
)
if
(
WORDS_BIG_ENDIAN
)
word
=
0
;
else
if
(
REGNO
(
x
)
<
FIRST_PSEUDO_REGISTER
)
word
=
(
HARD_REGNO_NREGS
(
REGNO
(
x
),
GET_MODE
(
x
))
word
=
(
HARD_REGNO_NREGS
(
REGNO
(
x
),
GET_MODE
(
x
))
-
HARD_REGNO_NREGS
(
REGNO
(
x
),
mode
));
-
HARD_REGNO_NREGS
(
REGNO
(
x
),
mode
));
else
word
=
((
GET_MODE_SIZE
(
GET_MODE
(
x
))
-
MAX
(
GET_MODE_SIZE
(
mode
),
UNITS_PER_WORD
))
/
UNITS_PER_WORD
);
if
(
REGNO
(
x
)
<
FIRST_PSEUDO_REGISTER
if
(
REGNO
(
x
)
<
FIRST_PSEUDO_REGISTER
/* integrate.c can't handle parts of a return value register. */
/* integrate.c can't handle parts of a return value register. */
...
...
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