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
e53bfc4b
Commit
e53bfc4b
authored
Feb 21, 1993
by
Jeff Law
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* pa.md (load high pattern): Rework constraints to reduce %r1 spillage.
From-SVN: r3510
parent
99efce9d
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
13 additions
and
1 deletions
+13
-1
gcc/config/pa/pa.md
+13
-1
No files found.
gcc/config/pa/pa.md
View file @
e53bfc4b
...
@@ -934,8 +934,20 @@
...
@@ -934,8 +934,20 @@
;; For all symbolic operands
*except*
function addresses and read-only
;; For all symbolic operands
*except*
function addresses and read-only
;; operands (which live in TEXT space and do not require relocation).
;; operands (which live in TEXT space and do not require relocation).
;;
;; The constraints are a little strange.
;; The basic idea is to prefer %r1 as much as possible for register
;; allocation (hence we do not allow regclass to know about the general
;; register case (via
*
r).
;; We also want to avoid spilling %r1 as that will cause every use
;; of %r1 to be reloaded, so we make the %r1 case very expensive
;; as far as reload is concerned (via !a).
;;
;; The real solution is to not spill all pseudos allocated to %r1
;; when %r1 is needed as a spill register, but that is considerably
;; more difficult than coercing decent behavior via constraints.
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "register_operand" "=
a,!
*
r")
[
(set (match_operand:SI 0 "register_operand" "=
!a,
*
r")
(high:SI (match_operand 1 "" "")))]
(high:SI (match_operand 1 "" "")))]
"! TARGET_KERNEL && symbolic_operand(operands
[
1
]
, Pmode)
"! TARGET_KERNEL && symbolic_operand(operands
[
1
]
, Pmode)
&& ! function_label_operand (operands
[
1
]
)
&& ! function_label_operand (operands
[
1
]
)
...
...
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