- block = be_transform_node(get_nodes_block(node));
- dbgi = get_irn_dbg_info(node);
- flag_node = be_transform_node(selector);
- relation = get_Cmp_relation(selector);
- is_unsigned = !mode_is_signed(cmp_mode);
- if (mode_is_float(cmp_mode)) {
- assert(!is_unsigned);
- return new_bd_sparc_fbfcc(dbgi, block, flag_node, relation);
+ // regular if/else jumps
+ if (is_Cmp(selector)) {
+ ir_mode *cmp_mode;
+
+ cmp_mode = get_cmp_mode(selector);
+ flag_node = be_transform_node(selector);
+ relation = get_Cmp_relation(selector);
+ is_unsigned = !mode_is_signed(cmp_mode);
+ if (mode_is_float(cmp_mode)) {
+ assert(!is_unsigned);
+ return new_bd_sparc_fbfcc(dbgi, block, flag_node, relation);
+ } else {
+ return new_bd_sparc_Bicc(dbgi, block, flag_node, relation, is_unsigned);
+ }