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
63f7136f
Commit
63f7136f
authored
Sep 29, 1994
by
Jim Wilson
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(movdf+3): Handle overlapping registers in define_split.
From-SVN: r8176
parent
57cb9b60
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
21 additions
and
4 deletions
+21
-4
gcc/config/sparc/sparc.md
+21
-4
No files found.
gcc/config/sparc/sparc.md
View file @
63f7136f
...
...
@@ -2039,6 +2039,8 @@
[
(set_attr "type" "store,load,move,store,load")
(set_attr "length" "1,1,2,3,3")])
;; Must handle overlapping registers here, since parameters can be unaligned
;; in registers.
;; ??? Do we need a v9 version of this?
(define_split
[
(set (match_operand:DF 0 "register_operand" "")
...
...
@@ -2047,10 +2049,25 @@
[
(set (match_dup 2) (match_dup 3))
(set (match_dup 4) (match_dup 5))]
"
{ operands
[
2
]
= operand_subword (operands
[
0
]
, 0, 0, DFmode);
operands
[
3
]
= operand_subword (operands
[
1
]
, 0, 0, DFmode);
operands
[
4
]
= operand_subword (operands
[
0
]
, 1, 0, DFmode);
operands
[
5
]
= operand_subword (operands
[
1
]
, 1, 0, DFmode); }")
{
rtx first_set = operand_subword (operands
[
0
]
, 0, 0, DFmode);
rtx second_use = operand_subword (operands
[
1
]
, 1, 0, DFmode);
if (REGNO (first_set) == REGNO (second_use))
{
operands
[
2
]
= operand_subword (operands
[
0
]
, 1, 0, DFmode);
operands
[
3
]
= second_use;
operands
[
4
]
= first_set;
operands
[
5
]
= operand_subword (operands
[
1
]
, 0, 0, DFmode);
}
else
{
operands
[
2
]
= first_set;
operands
[
3
]
= operand_subword (operands
[
1
]
, 0, 0, DFmode);
operands
[
4
]
= operand_subword (operands
[
0
]
, 1, 0, DFmode);
operands
[
5
]
= second_use;
}
}")
(define_insn ""
[
(set (mem:DF (match_operand:SI 0 "symbolic_operand" "i,i"))
...
...
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