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
3f935c0b
Commit
3f935c0b
authored
Jan 09, 1994
by
Jeff Law
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* pa.md (special indexed fpstores): Fix assorted typos.
From-SVN: r6363
parent
609f7031
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
41 additions
and
6 deletions
+41
-6
gcc/config/pa/pa.md
+41
-6
No files found.
gcc/config/pa/pa.md
View file @
3f935c0b
...
@@ -1027,6 +1027,11 @@
...
@@ -1027,6 +1027,11 @@
;; This variant of the above insn can occur if the second operand
;; This variant of the above insn can occur if the second operand
;; is the frame pointer. This is a kludge, but there doesn't
;; is the frame pointer. This is a kludge, but there doesn't
;; seem to be a way around it. Only recognize it while reloading.
;; seem to be a way around it. Only recognize it while reloading.
;; Note how operand 3 uses a predicate of "const_int_operand", but
;; has constraints allowing a register. I don't know how this works,
;; but it somehow makes sure that out-of-range constants are placed
;; in a register which somehow magically is a "const_int_operand".
;; (this was stolen from alpha.md, I'm not going to try and change it.
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "register_operand" "&=r")
[
(set (match_operand:SI 0 "register_operand" "&=r")
(mem:SI (plus:SI (plus:SI
(mem:SI (plus:SI (plus:SI
...
@@ -1258,6 +1263,11 @@
...
@@ -1258,6 +1263,11 @@
;; This variant of the above insn can occur if the second operand
;; This variant of the above insn can occur if the second operand
;; is the frame pointer. This is a kludge, but there doesn't
;; is the frame pointer. This is a kludge, but there doesn't
;; seem to be a way around it. Only recognize it while reloading.
;; seem to be a way around it. Only recognize it while reloading.
;; Note how operand 3 uses a predicate of "const_int_operand", but
;; has constraints allowing a register. I don't know how this works,
;; but it somehow makes sure that out-of-range constants are placed
;; in a register which somehow magically is a "const_int_operand".
;; (this was stolen from alpha.md, I'm not going to try and change it.
(define_insn ""
(define_insn ""
[
(set (match_operand:HI 0 "register_operand" "=&r")
[
(set (match_operand:HI 0 "register_operand" "=&r")
(mem:HI (plus:SI (plus:SI
(mem:HI (plus:SI (plus:SI
...
@@ -1473,6 +1483,11 @@
...
@@ -1473,6 +1483,11 @@
;; This variant of the above insn can occur if the second operand
;; This variant of the above insn can occur if the second operand
;; is the frame pointer. This is a kludge, but there doesn't
;; is the frame pointer. This is a kludge, but there doesn't
;; seem to be a way around it. Only recognize it while reloading.
;; seem to be a way around it. Only recognize it while reloading.
;; Note how operand 3 uses a predicate of "const_int_operand", but
;; has constraints allowing a register. I don't know how this works,
;; but it somehow makes sure that out-of-range constants are placed
;; in a register which somehow magically is a "const_int_operand".
;; (this was stolen from alpha.md, I'm not going to try and change it.
;; Ugh. Output is a FP register; so we need to earlyclobber something
;; Ugh. Output is a FP register; so we need to earlyclobber something
;; else as a temporary.
;; else as a temporary.
(define_insn ""
(define_insn ""
...
@@ -1507,6 +1522,11 @@
...
@@ -1507,6 +1522,11 @@
;; This variant of the above insn can occur if the second operand
;; This variant of the above insn can occur if the second operand
;; is the frame pointer. This is a kludge, but there doesn't
;; is the frame pointer. This is a kludge, but there doesn't
;; seem to be a way around it. Only recognize it while reloading.
;; seem to be a way around it. Only recognize it while reloading.
;; Note how operand 3 uses a predicate of "const_int_operand", but
;; has constraints allowing a register. I don't know how this works,
;; but it somehow makes sure that out-of-range constants are placed
;; in a register which somehow magically is a "const_int_operand".
;; (this was stolen from alpha.md, I'm not going to try and change it.
;; Ugh. Output is a FP register; so we need to earlyclobber something
;; Ugh. Output is a FP register; so we need to earlyclobber something
;; else as a temporary.
;; else as a temporary.
(define_insn ""
(define_insn ""
...
@@ -1516,14 +1536,14 @@
...
@@ -1516,14 +1536,14 @@
(const_int 8))
(const_int 8))
(match_operand:SI 2 "register_operand" "r"))
(match_operand:SI 2 "register_operand" "r"))
(match_operand:SI 3 "const_int_operand" "rL")))
(match_operand:SI 3 "const_int_operand" "rL")))
(match_operand:DF 0 "register_operand" "
=
fx"))]
(match_operand:DF 0 "register_operand" "fx"))]
"! TARGET_DISABLE_INDEXING && reload_in_progress"
"! TARGET_DISABLE_INDEXING && reload_in_progress"
"
*
"
*
{
{
if (GET_CODE (operands
[
3
]
) == CONST_INT)
if (GET_CODE (operands
[
3
]
) == CONST_INT)
return
\"
sh3add %1,%2,%1
\;
fstds %
3(0,%1),%0
\"
;
return
\"
sh3add %1,%2,%1
\;
fstds %
0,%3(0,%1)
\"
;
else
else
return
\"
sh3add %1,%2,%1
\;
fstdx %
3(0,%1),%0
\"
;
return
\"
sh3add %1,%2,%1
\;
fstdx %
0,%3(0,%1)
\"
;
}"
}"
[
(set_attr "type" "fpstore")
[
(set_attr "type" "fpstore")
(set_attr "length" "8")])
(set_attr "length" "8")])
...
@@ -1703,6 +1723,11 @@
...
@@ -1703,6 +1723,11 @@
;; This variant of the above insn can occur if the second operand
;; This variant of the above insn can occur if the second operand
;; is the frame pointer. This is a kludge, but there doesn't
;; is the frame pointer. This is a kludge, but there doesn't
;; seem to be a way around it. Only recognize it while reloading.
;; seem to be a way around it. Only recognize it while reloading.
;; Note how operand 3 uses a predicate of "const_int_operand", but
;; has constraints allowing a register. I don't know how this works,
;; but it somehow makes sure that out-of-range constants are placed
;; in a register which somehow magically is a "const_int_operand".
;; (this was stolen from alpha.md, I'm not going to try and change it.
;; Ugh. Output is a FP register; so we need to earlyclobber something
;; Ugh. Output is a FP register; so we need to earlyclobber something
;; else as a temporary.
;; else as a temporary.
(define_insn ""
(define_insn ""
...
@@ -1737,6 +1762,11 @@
...
@@ -1737,6 +1762,11 @@
;; This variant of the above insn can occur if the second operand
;; This variant of the above insn can occur if the second operand
;; is the frame pointer. This is a kludge, but there doesn't
;; is the frame pointer. This is a kludge, but there doesn't
;; seem to be a way around it. Only recognize it while reloading.
;; seem to be a way around it. Only recognize it while reloading.
;; Note how operand 3 uses a predicate of "const_int_operand", but
;; has constraints allowing a register. I don't know how this works,
;; but it somehow makes sure that out-of-range constants are placed
;; in a register which somehow magically is a "const_int_operand".
;; (this was stolen from alpha.md, I'm not going to try and change it.
;; Ugh. Output is a FP register; so we need to earlyclobber something
;; Ugh. Output is a FP register; so we need to earlyclobber something
;; else as a temporary.
;; else as a temporary.
(define_insn ""
(define_insn ""
...
@@ -1746,14 +1776,14 @@
...
@@ -1746,14 +1776,14 @@
(const_int 4))
(const_int 4))
(match_operand:SI 2 "register_operand" "r"))
(match_operand:SI 2 "register_operand" "r"))
(match_operand:SI 3 "const_int_operand" "rL")))
(match_operand:SI 3 "const_int_operand" "rL")))
(match_operand:SF 0 "register_operand" "
=
fx"))]
(match_operand:SF 0 "register_operand" "fx"))]
"! TARGET_DISABLE_INDEXING && reload_in_progress"
"! TARGET_DISABLE_INDEXING && reload_in_progress"
"
*
"
*
{
{
if (GET_CODE (operands
[
3
]
) == CONST_INT)
if (GET_CODE (operands
[
3
]
) == CONST_INT)
return
\"
sh2add %1,%2,%1
\;
fst
ds %3(0,%1),%0
\"
;
return
\"
sh2add %1,%2,%1
\;
fst
ws %0,%3(0,%1)
\"
;
else
else
return
\"
sh2add %1,%2,%1
\;
fst
dx %3(0,%1),%0
\"
;
return
\"
sh2add %1,%2,%1
\;
fst
wx %0,%3(0,%1)
\"
;
}"
}"
[
(set_attr "type" "fpstore")
[
(set_attr "type" "fpstore")
(set_attr "length" "8")])
(set_attr "length" "8")])
...
@@ -2589,6 +2619,11 @@
...
@@ -2589,6 +2619,11 @@
;; This variant of the above insn can occur if the first operand
;; This variant of the above insn can occur if the first operand
;; is the frame pointer. This is a kludge, but there doesn't
;; is the frame pointer. This is a kludge, but there doesn't
;; seem to be a way around it. Only recognize it while reloading.
;; seem to be a way around it. Only recognize it while reloading.
;; Note how operand 3 uses a predicate of "const_int_operand", but
;; has constraints allowing a register. I don't know how this works,
;; but it somehow makes sure that out-of-range constants are placed
;; in a register which somehow magically is a "const_int_operand".
;; (this was stolen from alpha.md, I'm not going to try and change it.
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "register_operand" "=&r")
[
(set (match_operand:SI 0 "register_operand" "=&r")
...
...
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