(emit_cmp_insn, emit_float_lib_cmp): libcall comparisons return word_mode.
From-SVN: r3289
This commit is contained in:
parent
4be7c28fdd
commit
c6ad27a7f3
12
gcc/optabs.c
12
gcc/optabs.c
@ -2307,14 +2307,14 @@ emit_cmp_insn (x, y, comparison, size, mode, unsignedp, align)
|
|||||||
libfunc = ucmp_optab->handlers[(int) mode].libfunc;
|
libfunc = ucmp_optab->handlers[(int) mode].libfunc;
|
||||||
|
|
||||||
emit_library_call (libfunc, 1,
|
emit_library_call (libfunc, 1,
|
||||||
SImode, 2, x, mode, y, mode);
|
word_mode, 2, x, mode, y, mode);
|
||||||
|
|
||||||
/* Integer comparison returns a result that must be compared against 1,
|
/* Integer comparison returns a result that must be compared against 1,
|
||||||
so that even if we do an unsigned compare afterward,
|
so that even if we do an unsigned compare afterward,
|
||||||
there is still a value that can represent the result "less than". */
|
there is still a value that can represent the result "less than". */
|
||||||
|
|
||||||
emit_cmp_insn (hard_libcall_value (SImode), const1_rtx,
|
emit_cmp_insn (hard_libcall_value (word_mode), const1_rtx,
|
||||||
comparison, NULL_RTX, SImode, unsignedp, 0);
|
comparison, NULL_RTX, word_mode, unsignedp, 0);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2484,10 +2484,10 @@ emit_float_lib_cmp (x, y, comparison)
|
|||||||
}
|
}
|
||||||
|
|
||||||
emit_library_call (libfunc, 1,
|
emit_library_call (libfunc, 1,
|
||||||
SImode, 2, x, mode, y, mode);
|
word_mode, 2, x, mode, y, mode);
|
||||||
|
|
||||||
emit_cmp_insn (hard_libcall_value (SImode), const0_rtx, comparison,
|
emit_cmp_insn (hard_libcall_value (word_mode), const0_rtx, comparison,
|
||||||
NULL_RTX, SImode, 0, 0);
|
NULL_RTX, word_mode, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Generate code to indirectly jump to a location given in the rtx LOC. */
|
/* Generate code to indirectly jump to a location given in the rtx LOC. */
|
||||||
|
Loading…
Reference in New Issue
Block a user