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
e8d791dd
Commit
e8d791dd
authored
Feb 14, 1996
by
David Edelsohn
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix_truncdfsi2 SUBREG and movdi HOST_BITS_PER_WIDE_INT test
From-SVN: r11274
parent
f4558646
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
9 additions
and
6 deletions
+9
-6
gcc/config/rs6000/rs6000.md
+9
-6
No files found.
gcc/config/rs6000/rs6000.md
View file @
e8d791dd
...
...
@@ -3527,14 +3527,13 @@
{
if (TARGET_POWER2 || TARGET_POWERPC)
{
int endian = (WORDS_BIG_ENDIAN == 0);
rtx stack_slot = rs6000_stack_temp (DImode, 8, 1);
rtx temp = gen_reg_rtx (DImode);
emit_insn (gen_fpcvtsi (temp, operands[1]));
emit_move_insn (stack_slot, temp);
emit_move_insn (operands[0],
operand_subword (stack_slot, 1 - endian, 0, DImode
));
gen_rtx (SUBREG, SImode, stack_slot, WORDS_BIG_ENDIAN
));
DONE;
}
else
...
...
@@ -5322,16 +5321,18 @@
low = CONST_DOUBLE_LOW (operands[1]);
high = CONST_DOUBLE_HIGH (operands[1]);
}
else if (HOST_BITS_PER_WIDE_INT <= 32)
else
#if HOST_BITS_PER_WIDE_INT == 32
{
low = INTVAL (operands
[
1
]
);
high = (low < 0) ? ~0 : 0;
}
else
#
else
{
low = INTVAL (operands
[
1
]
) & 0xffffffff;
high = (HOST_WIDE_INT) INTVAL (operands
[
1
]
) >> 32;
}
#endif
if (! TARGET_POWERPC64)
{
...
...
@@ -5479,16 +5480,18 @@
low = CONST_DOUBLE_LOW (operands
[
1
]
);
high = CONST_DOUBLE_HIGH (operands
[
1
]
);
}
else if (HOST_BITS_PER_WIDE_INT <= 32)
else
#if HOST_BITS_PER_WIDE_INT == 32
{
low = INTVAL (operands
[
1
]
);
high = (low < 0) ? ~0 : 0;
}
else
#
else
{
low = INTVAL (operands
[
1
]
) & 0xffffffff;
high = (HOST_WIDE_INT) INTVAL (operands
[
1
]
) >> 32;
}
#endif
if ((high + 0x8000) < 0x10000
&& ((low & 0xffff) == 0 || (low & (~ (HOST_WIDE_INT) 0xffff)) == 0))
...
...
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