This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/25724] Emits call to __cmpdi2 for long long comparison
- From: "krebbel at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 9 Jan 2006 18:26:23 -0000
- Subject: [Bug middle-end/25724] Emits call to __cmpdi2 for long long comparison
- References: <bug-25724-10053@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #6 from krebbel at gcc dot gnu dot org 2006-01-09 18:26 -------
As far as I know the kernel guys rely on the fact that gcc can
handle DImode operations without calling libgcc. As Richard pointed out
this only fails in this case because the conditional jump is emitted
differently for case nodes.
A normal DImode compare (on 32bit) is split into SImode compares before
emit_cmp_and_jump_insns is called. This is done by do_jump_by_parts_equality.
emit_case_nodes in turn calls do_jump_if_equal which calls
emit_cmp_and_jump_insns with DImode operands.
So I think using the dojump.c machinery in emit_case_nodes should be the
way to go - right?!
--
krebbel at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |krebbel at gcc dot gnu dot
| |org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25724