* @file
* @brief Implements several optimizations for ARM.
* @author Michael Beck
- * @version $Id: $
+ * @version $Id$
*/
#include "config.h"
#include "arm_nodes_attr.h"
#include "arm_new_nodes.h"
-static arm_code_gen_t *cg;
-
static unsigned arm_ror(unsigned v, unsigned ror)
{
return (v << (32 - ror)) | (v >> ror);
value >>= 8;
initial += 8;
- } while(value != 0);
+ } while (value != 0);
}
/**
block = get_nodes_block(node);
for (cnt = 1; cnt < v.ops; ++cnt) {
int value = sign * arm_ror(v.values[cnt], v.rors[cnt]);
- ir_node *next = be_new_IncSP(&arm_gp_regs[REG_SP], block, node,
+ ir_node *next = be_new_IncSP(&arm_registers[REG_SP], block, node,
value, 1);
sched_add_after(node, next);
node = next;
ir_node *ptr;
ptr = new_bd_arm_Add_imm(dbgi, block, frame, v->values[0], v->rors[0]);
- arch_set_irn_register(ptr, &arm_gp_regs[REG_R12]);
+ arch_set_irn_register(ptr, &arm_registers[REG_R12]);
sched_add_before(node, ptr);
for (cnt = 1; cnt < v->ops; ++cnt) {
ir_node *next = new_bd_arm_Add_imm(dbgi, block, ptr, v->values[cnt],
v->rors[cnt]);
- arch_set_irn_register(next, &arm_gp_regs[REG_R12]);
+ arch_set_irn_register(next, &arm_registers[REG_R12]);
sched_add_before(node, next);
ptr = next;
}
ir_node *ptr;
ptr = new_bd_arm_Sub_imm(dbgi, block, frame, v->values[0], v->rors[0]);
- arch_set_irn_register(ptr, &arm_gp_regs[REG_R12]);
+ arch_set_irn_register(ptr, &arm_registers[REG_R12]);
sched_add_before(node, ptr);
for (cnt = 1; cnt < v->ops; ++cnt) {
ir_node *next = new_bd_arm_Sub_imm(dbgi, block, ptr, v->values[cnt],
v->rors[cnt]);
- arch_set_irn_register(next, &arm_gp_regs[REG_R12]);
+ arch_set_irn_register(next, &arm_registers[REG_R12]);
sched_add_before(node, next);
ptr = next;
}
}
/* Perform peephole-optimizations. */
-void arm_peephole_optimization(arm_code_gen_t *new_cg)
+void arm_peephole_optimization(ir_graph *irg)
{
- cg = new_cg;
-
/* register peephole optimizations */
clear_irp_opcodes_generic_func();
register_peephole_optimisation(op_be_IncSP, peephole_be_IncSP);
register_peephole_optimisation(op_arm_Ldr, peephole_arm_Str_Ldr);
register_peephole_optimisation(op_arm_FrameAddr, peephole_arm_FrameAddr);
- be_peephole_opt(cg->birg);
+ be_peephole_opt(irg);
}