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
d84760c9
Commit
d84760c9
authored
Jan 12, 2011
by
Richard Henderson
Committed by
Richard Henderson
Jan 12, 2011
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mn10300: Emit clr.
From-SVN: r168722
parent
ec815d65
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
32 additions
and
0 deletions
+32
-0
gcc/ChangeLog
+3
-0
gcc/config/mn10300/mn10300.md
+29
-0
No files found.
gcc/ChangeLog
View file @
d84760c9
2011-01-12 Richard Henderson <rth@redhat.com>
* config/mn10300/mn10300.md (INT): New mode iterator.
(*mov<INT>_clr): New pattern, and peep2 to generate it.
* config/mn10300/mn10300.c (mn10300_option_override): Force enable
flag_split_wide_types.
...
...
gcc/config/mn10300/mn10300.md
View file @
d84760c9
...
...
@@ -68,8 +68,13 @@
]
(const_int 0))
)
(define_mode_iterator INT
[
QI HI SI
]
)
;; ----------------------------------------------------------------------
;; Pipeline description.
;; ----------------------------------------------------------------------
;; The AM33 only has a single pipeline. It has five stages (fetch,
;; decode, execute, memory access, writeback) each of which normally
...
...
@@ -1172,6 +1177,30 @@
[
(set_attr "timings" "11,11,11,11,11,11,22")
]
)
;; If the flags register is not live, generate CLR instead of MOV 0.
;; For MN103, this is only legal for DATA_REGS; for AM33 this is legal
;; but not a win for ADDRESS_REGS.
(define_peephole2
[
(set (match_operand:INT 0 "register_operand" "") (const_int 0))
]
"peep2_regno_dead_p (0, CC_REG)
&& (REGNO_DATA_P (REGNO (operands
[
0
]
), 1)
|| REGNO_EXTENDED_P (REGNO (operands
[
0
]
), 1))"
[
(parallel
[
(set (match_dup 0) (const_int 0))
(clobber (reg:CC CC_REG))])]
)
(define_insn "
*
mov
<mode>
_clr"
[
(set (match_operand:INT 0 "register_operand" "=D")
(const_int 0))
(clobber (reg:CC CC_REG))]
""
"clr %0"
)
;; ----------------------------------------------------------------------
;; ADD INSTRUCTIONS
;; ----------------------------------------------------------------------
(define_insn "
*
mn10300_addsi3"
[
(set (match_operand:SI 0 "register_operand" "=dx,a,a,dax,!
*
y,!dax")
(plus:SI (match_operand:SI 1 "register_operand" "%0,0,0,0,0,dax")
...
...
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