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
cb00f51a
Commit
cb00f51a
authored
32 years ago
by
Richard Kenner
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(gen_lowpart_common, gen_highpart, operand_subword): Don't make a new
REG for stack, frame, or arg pointer. From-SVN: r2382
parent
26ecfc76
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
23 additions
and
3 deletions
+23
-3
gcc/emit-rtl.c
+23
-3
No files found.
gcc/emit-rtl.c
View file @
cb00f51a
...
...
@@ -529,7 +529,14 @@ gen_lowpart_common (mode, x)
else
if
(
REGNO
(
x
)
<
FIRST_PSEUDO_REGISTER
/* integrate.c can't handle parts of a return value register. */
&&
(
!
REG_FUNCTION_VALUE_P
(
x
)
||
!
rtx_equal_function_value_matters
))
||
!
rtx_equal_function_value_matters
)
/* We want to keep the stack, frame, and arg pointers
special. */
&&
REGNO
(
x
)
!=
FRAME_POINTER_REGNUM
#if FRAME_POINTER_REGNUM != ARG_POINTER_REGNUM
&&
REGNO
(
x
)
!=
ARG_POINTER_REGNUM
#endif
&&
REGNO
(
x
)
!=
STACK_POINTER_REGNUM
)
return
gen_rtx
(
REG
,
mode
,
REGNO
(
x
)
+
word
);
else
return
gen_rtx
(
SUBREG
,
mode
,
x
,
word
);
...
...
@@ -776,7 +783,13 @@ gen_highpart (mode, x)
-
MAX
(
GET_MODE_SIZE
(
mode
),
UNITS_PER_WORD
))
/
UNITS_PER_WORD
);
#endif
if
(
REGNO
(
x
)
<
FIRST_PSEUDO_REGISTER
)
if
(
REGNO
(
x
)
<
FIRST_PSEUDO_REGISTER
/* We want to keep the stack, frame, and arg pointers special. */
&&
REGNO
(
x
)
!=
FRAME_POINTER_REGNUM
#if FRAME_POINTER_REGNUM != ARG_POINTER_REGNUM
&&
REGNO
(
x
)
!=
ARG_POINTER_REGNUM
#endif
&&
REGNO
(
x
)
!=
STACK_POINTER_REGNUM
)
return
gen_rtx
(
REG
,
mode
,
REGNO
(
x
)
+
word
);
else
return
gen_rtx
(
SUBREG
,
mode
,
x
,
word
);
...
...
@@ -860,7 +873,14 @@ operand_subword (op, i, validate_address, mode)
return
0
;
else
if
(
REGNO
(
op
)
>=
FIRST_PSEUDO_REGISTER
||
(
REG_FUNCTION_VALUE_P
(
op
)
&&
rtx_equal_function_value_matters
))
&&
rtx_equal_function_value_matters
)
/* We want to keep the stack, frame, and arg pointers
special. */
||
REGNO
(
op
)
==
FRAME_POINTER_REGNUM
#if FRAME_POINTER_REGNUM != ARG_POINTER_REGNUM
||
REGNO
(
op
)
==
ARG_POINTER_REGNUM
#endif
||
REGNO
(
op
)
==
STACK_POINTER_REGNUM
)
return
gen_rtx
(
SUBREG
,
word_mode
,
op
,
i
);
else
return
gen_rtx
(
REG
,
word_mode
,
REGNO
(
op
)
+
i
);
...
...
This diff is collapsed.
Click to expand it.
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