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
e5df894b
Commit
e5df894b
authored
31 years ago
by
Richard Kenner
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(lshl_optab): Deleted.
(expand_binop, init_optabs): No longer reference it. From-SVN: r7019
parent
9c2683af
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
7 additions
and
18 deletions
+7
-18
gcc/optabs.c
+7
-18
No files found.
gcc/optabs.c
View file @
e5df894b
...
...
@@ -57,7 +57,6 @@ optab ior_optab;
optab
xor_optab
;
optab
ashl_optab
;
optab
lshr_optab
;
optab
lshl_optab
;
optab
ashr_optab
;
optab
rotl_optab
;
optab
rotr_optab
;
...
...
@@ -334,7 +333,6 @@ expand_binop (mode, binoptab, op0, op1, target, unsignedp, methods)
int
commutative_op
=
0
;
int
shift_op
=
(
binoptab
->
code
==
ASHIFT
||
binoptab
->
code
==
ASHIFTRT
||
binoptab
->
code
==
LSHIFT
||
binoptab
->
code
==
LSHIFTRT
||
binoptab
->
code
==
ROTATE
||
binoptab
->
code
==
ROTATERT
);
...
...
@@ -517,8 +515,7 @@ expand_binop (mode, binoptab, op0, op1, target, unsignedp, methods)
if
((
binoptab
==
ior_optab
||
binoptab
==
and_optab
||
binoptab
==
xor_optab
||
binoptab
==
add_optab
||
binoptab
==
sub_optab
||
binoptab
==
smul_optab
||
binoptab
==
ashl_optab
||
binoptab
==
lshl_optab
)
||
binoptab
==
smul_optab
||
binoptab
==
ashl_optab
)
&&
class
==
MODE_INT
)
no_extend
=
1
;
...
...
@@ -526,8 +523,7 @@ expand_binop (mode, binoptab, op0, op1, target, unsignedp, methods)
/* The second operand of a shift must always be extended. */
xop1
=
widen_operand
(
xop1
,
wider_mode
,
mode
,
unsignedp
,
no_extend
&&
binoptab
!=
ashl_optab
&&
binoptab
!=
lshl_optab
);
no_extend
&&
binoptab
!=
ashl_optab
);
temp
=
expand_binop
(
wider_mode
,
binoptab
,
xop0
,
xop1
,
NULL_RTX
,
unsignedp
,
OPTAB_DIRECT
);
...
...
@@ -591,8 +587,8 @@ expand_binop (mode, binoptab, op0, op1, target, unsignedp, methods)
}
/* Synthesize double word shifts from single word shifts. */
if
((
binoptab
==
lsh
l_optab
||
binoptab
==
lshr
_optab
||
binoptab
==
ash
l_optab
||
binoptab
==
ash
r_optab
)
if
((
binoptab
==
lsh
r_optab
||
binoptab
==
ashl
_optab
||
binoptab
==
ashr_optab
)
&&
class
==
MODE_INT
&&
GET_CODE
(
op1
)
==
CONST_INT
&&
GET_MODE_SIZE
(
mode
)
==
2
*
UNITS_PER_WORD
...
...
@@ -619,7 +615,7 @@ expand_binop (mode, binoptab, op0, op1, target, unsignedp, methods)
they differ depending on the direction of the shift and
WORDS_BIG_ENDIAN. */
left_shift
=
(
binoptab
==
ashl_optab
||
binoptab
==
lshl_optab
)
;
left_shift
=
binoptab
==
ashl_optab
;
outof_word
=
left_shift
^
!
WORDS_BIG_ENDIAN
;
outof_target
=
operand_subword
(
target
,
outof_word
,
1
,
mode
);
...
...
@@ -656,9 +652,6 @@ expand_binop (mode, binoptab, op0, op1, target, unsignedp, methods)
we must do a logical shift in the opposite direction of the
desired shift. */
/* We use ashl_optab instead of lshl_optab, because ashl is
guaranteed to exist, but lshl may or may not exist. */
reverse_unsigned_shift
=
(
left_shift
?
lshr_optab
:
ashl_optab
);
/* For a shift of less than BITS_PER_WORD, to compute the word
...
...
@@ -1436,8 +1429,7 @@ expand_binop (mode, binoptab, op0, op1, target, unsignedp, methods)
if
((
binoptab
==
ior_optab
||
binoptab
==
and_optab
||
binoptab
==
xor_optab
||
binoptab
==
add_optab
||
binoptab
==
sub_optab
||
binoptab
==
smul_optab
||
binoptab
==
ashl_optab
||
binoptab
==
lshl_optab
)
||
binoptab
==
smul_optab
||
binoptab
==
ashl_optab
)
&&
class
==
MODE_INT
)
no_extend
=
1
;
...
...
@@ -1446,8 +1438,7 @@ expand_binop (mode, binoptab, op0, op1, target, unsignedp, methods)
/* The second operand of a shift must always be extended. */
xop1
=
widen_operand
(
xop1
,
wider_mode
,
mode
,
unsignedp
,
no_extend
&&
binoptab
!=
ashl_optab
&&
binoptab
!=
lshl_optab
);
no_extend
&&
binoptab
!=
ashl_optab
);
temp
=
expand_binop
(
wider_mode
,
binoptab
,
xop0
,
xop1
,
NULL_RTX
,
unsignedp
,
methods
);
...
...
@@ -3588,7 +3579,6 @@ init_optabs ()
xor_optab
=
init_optab
(
XOR
);
ashl_optab
=
init_optab
(
ASHIFT
);
ashr_optab
=
init_optab
(
ASHIFTRT
);
lshl_optab
=
init_optab
(
LSHIFT
);
lshr_optab
=
init_optab
(
LSHIFTRT
);
rotl_optab
=
init_optab
(
ROTATE
);
rotr_optab
=
init_optab
(
ROTATERT
);
...
...
@@ -3654,7 +3644,6 @@ init_optabs ()
init_integral_libfuncs
(
xor_optab
,
"xor"
,
'3'
);
init_integral_libfuncs
(
ashl_optab
,
"ashl"
,
'3'
);
init_integral_libfuncs
(
ashr_optab
,
"ashr"
,
'3'
);
init_integral_libfuncs
(
lshl_optab
,
"lshl"
,
'3'
);
init_integral_libfuncs
(
lshr_optab
,
"lshr"
,
'3'
);
init_integral_libfuncs
(
rotl_optab
,
"rotl"
,
'3'
);
init_integral_libfuncs
(
rotr_optab
,
"rotr"
,
'3'
);
...
...
This diff is collapsed.
Click to expand it.
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