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
57b77d46
Commit
57b77d46
authored
Apr 23, 2014
by
Richard Earnshaw
Committed by
Marcus Shawcroft
Apr 23, 2014
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[AArch64] Fully support rotate on logical operations.
From-SVN: r209711
parent
984c2f30
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
35 additions
and
2 deletions
+35
-2
gcc/ChangeLog
+6
-0
gcc/config/aarch64/aarch64.c
+5
-1
gcc/config/aarch64/aarch64.md
+24
-1
No files found.
gcc/ChangeLog
View file @
57b77d46
2014-04-23 Richard Earnshaw <rearnsha@arm.com>
* aarch64.md (<optab>_rol<mode>3): New pattern.
(<optab>_rolsi3_uxtw): Likewise.
* aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
2014-04-23 James Greenhalgh <james.greenhalgh@arm.com>
* config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
...
...
gcc/config/aarch64/aarch64.c
View file @
57b77d46
...
...
@@ -4471,9 +4471,13 @@ aarch64_strip_shift (rtx x)
{
rtx
op
=
x
;
/* We accept both ROTATERT and ROTATE: since the RHS must be a constant
we can convert both to ROR during final output. */
if
((
GET_CODE
(
op
)
==
ASHIFT
||
GET_CODE
(
op
)
==
ASHIFTRT
||
GET_CODE
(
op
)
==
LSHIFTRT
)
||
GET_CODE
(
op
)
==
LSHIFTRT
||
GET_CODE
(
op
)
==
ROTATERT
||
GET_CODE
(
op
)
==
ROTATE
)
&&
CONST_INT_P
(
XEXP
(
op
,
1
)))
return
XEXP
(
op
,
0
);
...
...
gcc/config/aarch64/aarch64.md
View file @
57b77d46
...
...
@@ -2565,7 +2565,18 @@
[
(set_attr "type" "logic_shift_imm")
]
)
;; zero_extend version of above
(define_insn "
*
<optab>
_rol
<mode>
3"
[
(set (match_operand:GPI 0 "register_operand" "=r")
(LOGICAL:GPI (rotate:GPI
(match_operand:GPI 1 "register_operand" "r")
(match_operand:QI 2 "aarch64_shift_imm_
<mode>
" "n"))
(match_operand:GPI 3 "register_operand" "r")))]
""
"
<logical>
\\
t%
<w>
0, %
<w>
3, %
<w>
1, ror (
<sizen>
- %2)"
[
(set_attr "type" "logic_shift_imm")
]
)
;; zero_extend versions of above
(define_insn "
*
<LOGICAL:optab>
_<SHIFT:optab>si3_
uxtw"
[
(set (match_operand:DI 0 "register_operand" "=r")
(zero_extend:DI
...
...
@@ -2578,6 +2589,18 @@
[
(set_attr "type" "logic_shift_imm")
]
)
(define_insn "
*
<optab>
_rolsi3_
uxtw"
[
(set (match_operand:DI 0 "register_operand" "=r")
(zero_extend:DI
(LOGICAL:SI (rotate:SI
(match_operand:SI 1 "register_operand" "r")
(match_operand:QI 2 "aarch64_shift_imm_si" "n"))
(match_operand:SI 3 "register_operand" "r"))))]
""
"
<logical>
\\
t%w0, %w3, %w1, ror (32 - %2)"
[
(set_attr "type" "logic_shift_imm")
]
)
(define_insn "one_cmpl
<mode>
2"
[
(set (match_operand:GPI 0 "register_operand" "=r")
(not:GPI (match_operand:GPI 1 "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