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
a7a975e1
Commit
a7a975e1
authored
Apr 19, 1992
by
Richard Kenner
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
*** empty log message ***
From-SVN: r791
parent
e5f6a288
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
14 additions
and
11 deletions
+14
-11
gcc/config/romp/romp.h
+5
-3
gcc/config/rs6000/rs6000.md
+9
-8
No files found.
gcc/config/romp/romp.h
View file @
a7a975e1
...
...
@@ -1239,15 +1239,17 @@ struct rt_cargs {int gregs, fregs; };
&& (unsigned int) (INTVAL (RTX) + 15) < 31) \
|| ((OUTER_CODE) == SET && (unsigned int) INTVAL (RTX) < 16))\
return 0; \
return ((unsigned)(INTVAL(RTX) + 0x8000) < 0x10000 || (INTVAL (RTX) & 0xffff0000) == 0) ? 0 : COSTS_N_INSNS (2);\
return ((unsigned int) (INTVAL(RTX) + 0x8000) < 0x10000 \
|| (INTVAL (RTX) & 0xffff0000) == 0) ? 0 : COSTS_N_INSNS (2);\
case CONST: \
case LABEL_REF: \
case SYMBOL_REF: \
if (current_function_operand (RTX, Pmode)) return 0; \
return COSTS_N_INSNS (2);
return COSTS_N_INSNS (2);
\
case CONST_DOUBLE: \
if ((RTX) == CONST0_RTX (GET_MODE (RTX))) return 2; \
return
(
GET_MODE_CLASS
(
GET_MODE
(
RTX
))
==
MODE_FLOAT
)
?
COSTS_N_INSNS
(
5
)
:
COSTS_N_INSNS
(
4
);
return ((GET_MODE_CLASS (GET_MODE (RTX)) == MODE_FLOAT) \
? COSTS_N_INSNS (5) : COSTS_N_INSNS (4));
/* Provide the costs of a rtl expression. This is in the body of a
switch on CODE.
...
...
gcc/config/rs6000/rs6000.md
View file @
a7a975e1
...
...
@@ -1081,7 +1081,13 @@
int start = INTVAL (operands
[
3
]
) & 31;
int size = INTVAL (operands
[
2
]
) & 31;
if ((start
<
16
&&
start
+
size
<=
16
)
||
start
>
= 16)
/
*
If the bitfield being tested fits in the upper or lower half of a
word, it is possible to use andiu. or andil. to test it. This is
useful because the condition register set-use delay is smaller for
andi
[
ul
]
. than for rlinm. This doesn't work when the starting bit
position is 0 because the LT and GT bits may be set wrong.
*
/
if ((start > 0 && start + size
<
=
16
)
||
start
>
= 16)
{
operands
[
3
]
= gen_rtx (CONST_INT, VOIDmode,
((1 << (16 - (start & 15)))
...
...
@@ -1114,14 +1120,9 @@
int start = INTVAL (operands
[
3
]
) & 31;
int size = INTVAL (operands
[
2
]
) & 31;
if (
(start
<
16
&&
start
+
size
<=
16
)
||
start
>
= 16
)
if (
start >= 16 && start + size == 32
)
{
operands
[
3
]
= gen_rtx (CONST_INT, VOIDmode,
((1 << (16 - (start & 15)))
-
(1 << (16 - (start & 15) - size))));
if (start < 16)
return
\"
andiu. %0,%1,%3
\"
;
else
operands
[
3
]
= gen_rtx (CONST_INT, VOIDmode, (1 << (32 - start)) - 1);
return
\"
andil. %0,%1,%3
\"
;
}
...
...
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