------- 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