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
6d5363fa
Commit
6d5363fa
authored
May 13, 1993
by
Richard Stallman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(combined mult/arithmetic recognizers): Switch on.
Add special pattern for reload. From-SVN: r4442
parent
0d4d8174
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
38 additions
and
19 deletions
+38
-19
gcc/config/arm/arm.md
+38
-19
No files found.
gcc/config/arm/arm.md
View file @
6d5363fa
...
...
@@ -686,7 +686,7 @@
;; storehi is not allowed.
(define_expand "restorehi"
[
(set (mem:QI (match_operand 1 "" ""))
[
(set (mem:QI (match_operand
:SI
1 "" ""))
(match_dup 2))
(set (reg:SI 10)
(ashiftrt:SI (match_operand 0 "" "") (const_int 8)))
...
...
@@ -705,12 +705,12 @@
(define_expand "storehi"
[
;; store the low byte
(set (mem:QI (match_operand 1 "" "")) (match_dup 3))
(set (mem:QI (match_operand
:SI
1 "" "")) (match_dup 3))
;; extract the high byte
(set (match_dup 2)
(ashiftrt:SI (match_operand 0 "" "") (const_int 8)))
;; store the high byte
(set (mem:QI (plus (match_dup 1) (const_int 1)))
(set (mem:QI (plus
:SI
(match_dup 1) (const_int 1)))
(subreg:QI (match_dup 2) 0))] ;explicit subreg safe
""
"
...
...
@@ -724,9 +724,9 @@
(define_expand "storeinthi"
[
;; store the low byte
(set (mem:QI (match_operand 1 "" "")) (match_operand 0 "" ""))
(set (mem:QI (match_operand
:SI
1 "" "")) (match_operand 0 "" ""))
;; store the high byte
(set (mem:QI (plus (match_dup 1) (const_int 1)))
(set (mem:QI (plus
:SI
(match_dup 1) (const_int 1)))
(match_dup 2))]
""
"
...
...
@@ -1247,8 +1247,8 @@
; "
*
; return (output_arithmetic_with_shift (operands, TRUE, FALSE));
;")
;; Patterns to allow combination of arithmetic and
multiplication
;; Patterns to allow combination of arithmetic and
left shift
;(define_insn ""
;
[
(set (match_operand:SI 0 "register_operand" "=r")
...
...
@@ -1262,18 +1262,37 @@
; return (output_arithmetic_with_immediate_multiply (operands, FALSE));
;")
; Uncomment this to show combiner problem (see ../COMBINER-PROBLEM).
;(define_insn ""
;
[
(set (match_operand:SI 0 "register_operand" "=r")
; (match_operator:SI 1 "shiftable_operator"
;
[
(mult:SI
; (match_operand:SI 3 "register_operand" "r")
; (match_operand:SI 4 "power_of_two_operand" "n"))
; (match_operand:SI 2 "register_operand" "r")]))]
; ""
; "
*
; return (output_arithmetic_with_immediate_multiply (operands, TRUE));
;")
(define_insn ""
[
(set (match_operand:SI 0 "register_operand" "=r")
(match_operator:SI 1 "shiftable_operator"
[
(mult:SI
(match_operand:SI 3 "register_operand" "r")
(match_operand:SI 4 "power_of_two_operand" "n"))
(match_operand:SI 2 "register_operand" "r")]))]
""
"
*
return (output_arithmetic_with_immediate_multiply (operands, TRUE));
")
;; This variant of the above insn can occur if the first operand is the
;; frame pointer and we eliminate that. This is a kludge, but there doesn't
;; seem to be a way around it.
(define_insn ""
[
(set (match_operand:SI 0 "register_operand" "=&r")
(plus:SI (plus:SI (mult:SI (match_operand:SI 3 "register_operand" "r")
(match_operand:SI 4 "power_of_two_operand" "n"))
(match_operand:SI 2 "register_operand" "r"))
(match_operand:SI 1 "const_int_operand" "n")))]
"reload_in_progress"
"
*
{
int shift = int_log2 (INTVAL (operands
[
4
]
));
operands
[
4
]
= GEN_INT (shift);
arm_output_asm_insn (
\"
add
\\
t%0, %2, %3, asl#%4
\"
, operands);
operands
[
2
]
= operands
[
0
]
;
return output_add_immediate (operands);
}")
;; Peephole optimizations.
...
...
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