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
f2d45bd7
Commit
f2d45bd7
authored
Mar 14, 1992
by
Richard Stallman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
*** empty log message ***
From-SVN: r483
parent
2aa7ec37
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
17 additions
and
6 deletions
+17
-6
gcc/config/pyr/pyr.md
+17
-6
No files found.
gcc/config/pyr/pyr.md
View file @
f2d45bd7
...
...
@@ -38,7 +38,7 @@
;;
*
Fix true frame pointer omission.
;;
*
Make the jump tables contain branches, not addresses! This would
;; save us one instruction.
;;
*
Could the comp
ilcated scheme for compares be simply
fied, if we had
;;
*
Could the comp
licated scheme for compares be simpli
fied, if we had
;; no named cmpqi or cmphi patterns, and instead anonymous patterns for
;; the less-than-word compare cases pyr can handle???
;;
*
The jump insn seems to accept more than just IR addressing. Would
...
...
@@ -84,6 +84,7 @@
rtx br_insn = NEXT_INSN (insn);
RTX_CODE br_code;
extern int swap_operands;
if (GET_CODE (br_insn) != JUMP_INSN)
abort();
br_code = GET_CODE (XEXP (XEXP (PATTERN (br_insn), 1), 0));
...
...
@@ -144,7 +145,7 @@
(define_insn ""
[
(set (cc0)
(match_operand:SI 0 "
general
_operand" "r"))]
(match_operand:SI 0 "
nonimmediate
_operand" "r"))]
""
"
*
{
...
...
@@ -183,7 +184,7 @@
(define_expand "tsthi"
[
(set (cc0)
(match_operand:HI 0 "
general
_operand" ""))]
(match_operand:HI 0 "
nonimmediate
_operand" ""))]
""
"
{
...
...
@@ -200,6 +201,7 @@
"weird_memory_memory (operands
[
0
]
, operands
[
1
]
)"
"
*
{
extern int swap_operands;
rtx br_insn = NEXT_INSN (insn);
if (GET_CODE (br_insn) != JUMP_INSN)
...
...
@@ -253,7 +255,7 @@
(define_expand "tstqi"
[
(set (cc0)
(match_operand:QI 0 "
general
_operand" ""))]
(match_operand:QI 0 "
nonimmediate
_operand" ""))]
""
"
{
...
...
@@ -270,6 +272,7 @@
"weird_memory_memory (operands
[
0
]
, operands
[
1
]
)"
"
*
{
extern int swap_operands;
rtx br_insn = NEXT_INSN (insn);
RTX_CODE br_code;
...
...
@@ -678,7 +681,7 @@
;; If the destination is a memory operand, indexed source operands are
;; disallowed. Big DImode constants are always loaded into a reg pair,
;; although offsetable memory addresses really could be dealt with.
;; although offset
t
able memory addresses really could be dealt with.
(define_insn ""
[
(set (match_operand:DI 0 "memory_operand" "=m")
...
...
@@ -1203,6 +1206,8 @@
(match_operand:SI 3 "general_operand" "g"))]
"movdi_possible (operands)"
"
*
{
extern int swap_operands;
output_asm_insn (
\"
# COMBINE movw %1,%0
\"
, operands);
output_asm_insn (
\"
# COMBINE movw %3,%2
\"
, operands);
movdi_possible (operands);
...
...
@@ -1210,7 +1215,7 @@
return (swap_operands) ?
\"
movl %3,%0
\"
:
\"
movl %1,%2
\"
;
return (swap_operands) ?
\"
movl %1,%0
\"
:
\"
movl %3,%2
\"
;
")
}
")
;; Optimize certain tests after memory stores.
...
...
@@ -1360,6 +1365,12 @@
output_asm_insn (
\"
xorw %1,%0
\"
, xoperands);
return
\"
xorw %2,%0
\"
;
}")
;; My version, modelled after Jonathan Stone's and "tablejump" - S.P.
(define_insn "indirect_jump"
[
(set (pc) (match_operand:SI 0 "general_operand" "r"))
]
""
"jump (%0)")
;;- Local variables:
;;- mode:emacs-lisp
...
...
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