-void arm_move_consts(ir_node *node, void *env) {
- int i;
-
- if (is_Block(node))
- return;
-
- if (is_Phi(node)) {
- for (i = get_irn_arity(node) - 1; i >= 0; --i) {
- ir_node *pred = get_irn_n(node,i);
- opcode pred_code = get_irn_opcode(pred);
- if (pred_code == iro_Const) {
- ir_node *const_graph;
- const_graph = create_const_graph(pred, get_nodes_block(get_irn_n(get_nodes_block(node),i)));
- set_irn_n(node, i, const_graph);
- }
- else if (pred_code == iro_SymConst) {
- /* FIXME: in general, SymConst always require a load, so it
- might be better to place them into the first real block
- and let the spiller rematerialize them. */
- const char *str = get_sc_name(pred);
- ir_node *symconst_node;
- symconst_node = new_rd_arm_SymConst(get_irn_dbg_info(pred),
- current_ir_graph, get_nodes_block(get_irn_n(get_nodes_block(node),i)),
- get_irn_mode(pred), str);
- set_irn_n(node, i, symconst_node);
- }
- }
- return;
- }
- for (i = 0; i < get_irn_arity(node); i++) {
- ir_node *pred = get_irn_n(node,i);
- opcode pred_code = get_irn_opcode(pred);
- if (pred_code == iro_Const) {
- ir_node *const_graph;
- const_graph = create_const_graph(pred, get_nodes_block(node));
- set_irn_n(node, i, const_graph);
- } else if (pred_code == iro_SymConst) {
- const char *str = get_sc_name(pred);
- ir_node *symconst_node;
- symconst_node = new_rd_arm_SymConst(get_irn_dbg_info(pred),
- current_ir_graph, get_nodes_block(node),
- get_irn_mode(pred), str);
- set_irn_n(node, i, symconst_node);
- }
- }
-}
-
-
-/************************************************************************/
-/* move symbolic constants out of startblock */
-/************************************************************************/
-void arm_move_symconsts(ir_node *node, void *env) {
- int i;
-
- if (is_Block(node))
- return;
-
- for (i = 0; i < get_irn_arity(node); i++) {
- ir_node *pred = get_irn_n(node,i);
- opcode pred_code = get_irn_opcode(pred);
-
- if (pred_code == iro_SymConst) {
- const char *str = get_sc_name(pred);
- ir_node *symconst_node;
-
- symconst_node = new_rd_arm_SymConst(get_irn_dbg_info(pred),
- current_ir_graph, get_nodes_block(node), get_irn_mode(pred), str);
- set_irn_n(node, i, symconst_node);
- }
- }