(gen_lowpart (submode, x), gen_lowpart (submode, y)));
}
- group_insns (prev);
+ if (GET_CODE (x) != CONCAT)
+ /* If X is a CONCAT, we got insns like RD = RS, ID = IS,
+ each with a separate pseudo as destination.
+ It's not correct for flow to treat them as a unit. */
+ group_insns (prev);
return get_last_insn ();
}
tree dest_innermost;
bc_expand_expr (from);
- bc_emit_instruction (dup);
+ bc_emit_instruction (duplicate);
dest_innermost = bc_expand_address (to);
emit_move_insn (gen_imagpart (mode, target), op1);
/* Complex construction should appear as a single unit. */
- group_insns (prev);
+ if (GET_CODE (target) != CONCAT)
+ /* If TARGET is a CONCAT, we got insns like RD = RS, ID = IS,
+ each with a separate pseudo as destination.
+ It's not correct for flow to treat them as a unit. */
+ group_insns (prev);
return target;
}
emit_move_insn (imag_t, temp);
/* Conjugate should appear as a single unit */
- group_insns (prev);
+ if (GET_CODE (target) != CONCAT)
+ /* If TARGET is a CONCAT, we got insns like RD = RS, ID = - IS,
+ each with a separate pseudo as destination.
+ It's not correct for flow to treat them as a unit. */
+ group_insns (prev);
return target;
}
SAVE_EXPR_RTL (exp) = bc_allocate_local (int_size_in_bytes (TREE_TYPE (exp)),
TYPE_ALIGN (TREE_TYPE(exp)));
bc_expand_expr (TREE_OPERAND (exp, 0));
- bc_emit_instruction (dup);
+ bc_emit_instruction (duplicate);
bc_load_localaddr (SAVE_EXPR_RTL (exp));
bc_store_memory (TREE_TYPE (exp), TREE_OPERAND (exp, 0));
bc_expand_truth_conversion (TREE_TYPE (TREE_OPERAND (exp, 0)));
lab = bc_get_bytecode_label ();
- bc_emit_instruction (dup);
+ bc_emit_instruction (duplicate);
bc_emit_bytecode (opcode);
bc_emit_bytecode_labelref (lab);
if (list_length (CONSTRUCTOR_ELTS (constr))
!= list_length (TYPE_FIELDS (TREE_TYPE (constr))))
{
- bc_emit_instruction (dup);
+ bc_emit_instruction (duplicate);
bc_emit_instruction (constSI, (HOST_WIDE_INT) int_size_in_bytes (TREE_TYPE (constr)));
bc_emit_instruction (clearBLK);
}
if (list_length (CONSTRUCTOR_ELTS (constr)) < maxelt - minelt + 1)
{
- bc_emit_instruction (dup);
+ bc_emit_instruction (duplicate);
bc_emit_instruction (constSI, (HOST_WIDE_INT) int_size_in_bytes (TREE_TYPE (constr)));
bc_emit_instruction (clearBLK);
}