aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1992-07-17 04:23:56 +0000
committerRichard Stallman <rms@gnu.org>1992-07-17 04:23:56 +0000
commit06e40b261a3949c40ae98fe08fb68ea1d6903e63 (patch)
tree4ced3c72189b04fefa17b8d9ca7269c45167639d /gcc
parent937522b52630d9f3a35e827d711a01daa53f7873 (diff)
downloadgcc-06e40b261a3949c40ae98fe08fb68ea1d6903e63.zip
gcc-06e40b261a3949c40ae98fe08fb68ea1d6903e63.tar.gz
gcc-06e40b261a3949c40ae98fe08fb68ea1d6903e63.tar.bz2
(emit_cmp_insn): Always do protect_from_queue on x, y, size.
(expand_float, expand_fix): Likewise. From-SVN: r1605
Diffstat (limited to 'gcc')
-rw-r--r--gcc/optabs.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/gcc/optabs.c b/gcc/optabs.c
index 65c95d4..bdc69ca 100644
--- a/gcc/optabs.c
+++ b/gcc/optabs.c
@@ -1673,6 +1673,7 @@ emit_cmp_insn (x, y, comparison, size, mode, unsignedp, align)
enum machine_mode result_mode
= insn_operand_mode[(int) CODE_FOR_cmpstrsi][0];
rtx result = gen_reg_rtx (result_mode);
+ size = protect_from_queue (size, 0);
emit_insn (gen_cmpstrsi (result, x, y,
convert_to_mode (SImode, size, 1),
GEN_INT (align)));
@@ -1753,6 +1754,8 @@ emit_cmp_insn (x, y, comparison, size, mode, unsignedp, align)
if (cmp_optab->handlers[(int) wider_mode].insn_code
!= CODE_FOR_nothing)
{
+ x = protect_from_queue (x, 0);
+ y = protect_from_queue (y, 0);
x = convert_to_mode (wider_mode, x, unsignedp);
y = convert_to_mode (wider_mode, y, unsignedp);
emit_cmp_insn (x, y, comparison, NULL_RTX,
@@ -1939,6 +1942,8 @@ emit_float_lib_cmp (x, y, comparison)
!= CODE_FOR_nothing)
|| (cmp_optab->handlers[(int) wider_mode].libfunc != 0))
{
+ x = protect_from_queue (x, 0);
+ y = protect_from_queue (y, 0);
x = convert_to_mode (wider_mode, x, 0);
y = convert_to_mode (wider_mode, y, 0);
emit_float_lib_cmp (x, y, comparison);
@@ -2820,11 +2825,10 @@ expand_float (to, from, unsignedp)
if (icode != CODE_FOR_nothing)
{
to = protect_from_queue (to, 1);
+ from = protect_from_queue (from, 0);
if (imode != GET_MODE (from))
from = convert_to_mode (imode, from, unsignedp);
- else
- from = protect_from_queue (from, 0);
if (fmode != GET_MODE (to))
target = gen_reg_rtx (fmode);
@@ -2893,11 +2897,10 @@ expand_float (to, from, unsignedp)
rtx insns;
to = protect_from_queue (to, 1);
+ from = protect_from_queue (from, 0);
if (GET_MODE_SIZE (GET_MODE (from)) < GET_MODE_SIZE (SImode))
from = convert_to_mode (SImode, from, unsignedp);
- else
- from = protect_from_queue (from, 0);
if (flag_force_mem)
from = force_not_mem (from);
@@ -3012,11 +3015,10 @@ expand_fix (to, from, unsignedp)
if (icode != CODE_FOR_nothing)
{
to = protect_from_queue (to, 1);
+ from = protect_from_queue (from, 0);
if (fmode != GET_MODE (from))
from = convert_to_mode (fmode, from, 0);
- else
- from = protect_from_queue (from, 0);
if (must_trunc)
from = ftruncify (from);