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
44a5da09
Commit
44a5da09
authored
Nov 22, 2001
by
Graham Stott
Committed by
Graham Stott
Nov 22, 2001
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* local-alloc.c (combine_regs): Handle SUBREG_REG being a MEM.
From-SVN: r47268
parent
0bf93a51
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
44 additions
and
22 deletions
+44
-22
gcc/ChangeLog
+4
-0
gcc/local-alloc.c
+40
-22
No files found.
gcc/ChangeLog
View file @
44a5da09
2001
-
11
-
22
Graham
Stott
<
grahams
@redhat
.
com
>
*
local
-
alloc
.
c
(
combine_regs
)
:
Handle
SUBREG_REG
being
a
MEM
.
Thu
Nov
22
06
:
49
:
14
2001
Richard
Kenner
<
kenner
@vlsi1
.
ultra
.
nyu
.
edu
>
*
config
/
i386
/
i386
.
md
(
leave
,
leave_rex64
)
:
Have
RTL
reflect
what
...
...
gcc/local-alloc.c
View file @
44a5da09
...
...
@@ -1801,20 +1801,29 @@ combine_regs (usedreg, setreg, may_save_copy, insn_number, insn, already_dead)
while
(
GET_CODE
(
usedreg
)
==
SUBREG
)
{
if
(
GET_MODE_SIZE
(
GET_MODE
(
SUBREG_REG
(
usedreg
)))
>
UNITS_PER_WORD
)
may_save_copy
=
0
;
if
(
REGNO
(
SUBREG_REG
(
usedreg
))
<
FIRST_PSEUDO_REGISTER
)
offset
+=
subreg_regno_offset
(
REGNO
(
SUBREG_REG
(
usedreg
)),
GET_MODE
(
SUBREG_REG
(
usedreg
)),
SUBREG_BYTE
(
usedreg
),
GET_MODE
(
usedreg
));
else
offset
+=
(
SUBREG_BYTE
(
usedreg
)
/
REGMODE_NATURAL_SIZE
(
GET_MODE
(
usedreg
)));
usedreg
=
SUBREG_REG
(
usedreg
);
rtx
subreg
=
SUBREG_REG
(
usedreg
);
if
(
GET_CODE
(
subreg
)
==
REG
)
{
if
(
GET_MODE_SIZE
(
GET_MODE
(
subreg
))
>
UNITS_PER_WORD
)
may_save_copy
=
0
;
if
(
REGNO
(
subreg
)
<
FIRST_PSEUDO_REGISTER
)
offset
+=
subreg_regno_offset
(
REGNO
(
subreg
),
GET_MODE
(
subreg
),
SUBREG_BYTE
(
usedreg
),
GET_MODE
(
usedreg
));
else
offset
+=
(
SUBREG_BYTE
(
usedreg
)
/
REGMODE_NATURAL_SIZE
(
GET_MODE
(
usedreg
)));
}
usedreg
=
subreg
;
}
if
(
GET_CODE
(
usedreg
)
!=
REG
)
return
0
;
ureg
=
REGNO
(
usedreg
);
if
(
ureg
<
FIRST_PSEUDO_REGISTER
)
usize
=
HARD_REGNO_NREGS
(
ureg
,
GET_MODE
(
usedreg
));
...
...
@@ -1825,20 +1834,29 @@ combine_regs (usedreg, setreg, may_save_copy, insn_number, insn, already_dead)
while
(
GET_CODE
(
setreg
)
==
SUBREG
)
{
if
(
GET_MODE_SIZE
(
GET_MODE
(
SUBREG_REG
(
setreg
)))
>
UNITS_PER_WORD
)
may_save_copy
=
0
;
if
(
REGNO
(
SUBREG_REG
(
setreg
))
<
FIRST_PSEUDO_REGISTER
)
offset
-=
subreg_regno_offset
(
REGNO
(
SUBREG_REG
(
setreg
)),
GET_MODE
(
SUBREG_REG
(
setreg
)),
SUBREG_BYTE
(
setreg
),
GET_MODE
(
setreg
));
else
offset
-=
(
SUBREG_BYTE
(
setreg
)
/
REGMODE_NATURAL_SIZE
(
GET_MODE
(
setreg
)));
setreg
=
SUBREG_REG
(
setreg
);
rtx
subreg
=
SUBREG_REG
(
setreg
);
if
(
GET_CODE
(
subreg
)
==
REG
)
{
if
(
GET_MODE_SIZE
(
GET_MODE
(
subreg
))
>
UNITS_PER_WORD
)
may_save_copy
=
0
;
if
(
REGNO
(
subreg
)
<
FIRST_PSEUDO_REGISTER
)
offset
-=
subreg_regno_offset
(
REGNO
(
subreg
),
GET_MODE
(
subreg
),
SUBREG_BYTE
(
setreg
),
GET_MODE
(
setreg
));
else
offset
-=
(
SUBREG_BYTE
(
setreg
)
/
REGMODE_NATURAL_SIZE
(
GET_MODE
(
setreg
)));
}
setreg
=
subreg
;
}
if
(
GET_CODE
(
setreg
)
!=
REG
)
return
0
;
sreg
=
REGNO
(
setreg
);
if
(
sreg
<
FIRST_PSEUDO_REGISTER
)
ssize
=
HARD_REGNO_NREGS
(
sreg
,
GET_MODE
(
setreg
));
...
...
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