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
924f3f28
Commit
924f3f28
authored
Nov 11, 1994
by
Richard Kenner
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(movsi+1): Allow r->m move during reloading.
From-SVN: r8424
parent
a205e34b
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
15 additions
and
8 deletions
+15
-8
gcc/config/clipper/clipper.md
+15
-8
No files found.
gcc/config/clipper/clipper.md
View file @
924f3f28
...
@@ -385,14 +385,19 @@
...
@@ -385,14 +385,19 @@
operands
[
1
]
= force_reg (SImode, operands
[
1
]
);
operands
[
1
]
= force_reg (SImode, operands
[
1
]
);
}")
}")
;; provide 2 patterns with different predicates as 'general_operand' in both
;; Reject both args with
`general_operand' if not reloading because a
;; positions results in a 'mem -> mem' move from combine that must be reloaded
;; mem -> mem move that was split by 'movsi' can be recombined to
;; mem -> mem by the combiner.
;;
;;
;; As a pseudo register can end up in a stack slot during reloading we must
;; allow a r->m move for the next pattern.
;; The first predicate must be `
general_operand' because a predicate must
;; be true for each constraint.
;;
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "
register_operand" "=r,r,r,r
")
[
(set (match_operand:SI 0 "
general_operand" "=r,r,r,r,m
")
(match_operand:SI 1 "general_operand"
"r,m,n,i
"))]
(match_operand:SI 1 "general_operand"
"r,m,n,i,r
"))]
""
"
reload_in_progress || register_operand (operands
[
0
]
, SImode)
"
"
*
"
*
{
{
int val;
int val;
...
@@ -418,9 +423,11 @@
...
@@ -418,9 +423,11 @@
if (which_alternative == 3) /
* unknown const *
/
if (which_alternative == 3) /
* unknown const *
/
return
\"
loada %a1,%0
\"
;
return
\"
loada %a1,%0
\"
;
return
\"
storw %1,%0
\"
;
}"
}"
[
(set_attr "type" "arith,load,arith,load")
[
(set_attr "type" "arith,load,arith,load
,store
")
(set_attr "cc" "set2,change0,set1,change0")])
(set_attr "cc" "set2,change0,set1,change0
,unchanged
")])
(define_insn ""
(define_insn ""
...
...
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