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
e19ee659
Commit
e19ee659
authored
Mar 17, 1993
by
Torbjorn Granlund
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(branch-on-bit): New patterns.
From-SVN: r3764
parent
635c7420
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
53 additions
and
0 deletions
+53
-0
gcc/config/pa/pa.md
+53
-0
No files found.
gcc/config/pa/pa.md
View file @
e19ee659
...
@@ -720,6 +720,59 @@
...
@@ -720,6 +720,59 @@
(const_int 1)
(const_int 1)
(const_int 2)))])
(const_int 2)))])
;; Branch on bit patterns
(define_insn ""
[
(set (pc)
(if_then_else
(ne (zero_extract:SI (match_operand:SI 0 "register_operand" "r")
(const_int 1)
(match_operand:SI 1 "uint5_operand" ""))
(const_int 0))
(match_operand 2 "pc_or_label_operand" "")
(match_operand 3 "pc_or_label_operand" "")))]
""
"
*
{
if (operands
[
3
]
== pc_rtx)
return (get_attr_length (insn) == 1
?
\"
bb,
<
%
0
,%
1
,%
2
%#\"
:
\"
extrs
,
>
= %0,%1,1,0
\;
bl %2,0%#
\"
);
else
return (get_attr_length (insn) == 1
?
\"
bb,>= %0,%1,%3%#
\"
:
\"
extrs,< %0,%1,1,0
\;
bl %3,0%#
\"
);
}"
[
(set_attr "type" "cbranch")
(set (attr "length") (if_then_else (lt (abs (minus (match_dup 0)
(plus (pc) (const_int 2))))
(const_int 1023))
(const_int 1)
(const_int 2)))])
(define_insn ""
[
(set (pc)
(if_then_else
(eq (zero_extract:SI (match_operand:SI 0 "register_operand" "r")
(const_int 1)
(match_operand:SI 1 "uint5_operand" ""))
(const_int 0))
(match_operand 2 "pc_or_label_operand" "")
(match_operand 3 "pc_or_label_operand" "")))]
""
"
*
{
if (operands
[
3
]
== pc_rtx)
return (get_attr_length (insn) == 1
?
\"
bb,>= %0,%1,%2%#
\"
:
\"
extrs,< %0,%1,1,0
\;
bl %2,0%#
\"
);
else
return (get_attr_length (insn) == 1
?
\"
bb,
<
%
0
,%
1
,%
3
%#\"
:
\"
extrs
,
>
= %0,%1,1,0
\;
bl %3,0%#
\"
);
}"
[
(set_attr "type" "cbranch")
(set (attr "length") (if_then_else (lt (abs (minus (match_dup 0)
(plus (pc) (const_int 2))))
(const_int 1023))
(const_int 1)
(const_int 2)))])
;; Floating point branches
;; Floating point branches
(define_insn ""
(define_insn ""
...
...
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