*/
static ir_node *create_const_graph_value(ir_node *irn, ir_node *block, unsigned int value) {
ir_node *result;
- int negate = 0;
vals v, vn;
int cnt;
ir_mode *mode = get_irn_mode(irn);
* access must be done relative the the fist IncSP ...
*/
static int get_sp_expand_offset(ir_node *inc_sp) {
- unsigned offset = be_get_IncSP_offset(inc_sp);
- be_stack_dir_t dir = be_get_IncSP_direction(inc_sp);
+ int offset = be_get_IncSP_offset(inc_sp);
- if (offset == BE_STACK_FRAME_SIZE)
+ if (offset == BE_STACK_FRAME_SIZE_EXPAND)
return 0;
- return dir == be_stack_dir_expand ? (int)offset : -(int)offset;
+
+ return offset;
}
-static ir_node *gen_StackParam(ir_node *irn, arm_code_gen_t *cg) {
#if 0
- ir_node *new_op = NULL;
- ir_node *block = get_nodes_block(irn);
- ir_node *noreg = ia32_new_NoReg_gp(env->cg);
- ir_node *mem = new_rd_NoMem(env->irg);
- ir_node *ptr = get_irn_n(irn, 0);
- entity *ent = be_get_frame_entity(irn);
- ir_mode *mode = env->mode;
+static ir_node *gen_StackParam(ir_node *irn, arm_code_gen_t *cg) {
+ ir_node *new_op = NULL;
+ ir_node *block = get_nodes_block(irn);
+ ir_node *noreg = ia32_new_NoReg_gp(env->cg);
+ ir_node *mem = new_rd_NoMem(env->irg);
+ ir_node *ptr = get_irn_n(irn, 0);
+ ir_entity *ent = be_get_frame_entity(irn);
+ ir_mode *mode = env->mode;
// /* If the StackParam has only one user -> */
// /* put it in the Block where the user resides */
SET_IA32_ORIG_NODE(new_op, ia32_get_old_node_name(env->cg, env->irn));
return new_rd_Proj(env->dbg, env->irg, block, new_op, mode, 0);
-#endif
}
+#endif
/**
* Transforms a FrameAddr into an ia32 Add.
*/
static ir_node *gen_be_FrameAddr(ir_node *irn, arm_code_gen_t *cg) {
ir_node *block = get_nodes_block(irn);
- entity *ent = be_get_frame_entity(irn);
- int offset = get_entity_offset_bytes(ent);
+ ir_entity *ent = be_get_frame_entity(irn);
+ int offset = get_entity_offset(ent);
ir_node *op = get_irn_n(irn, 0);
ir_node *cnst;
ir_mode *mode = get_irn_mode(irn);
return new_rd_arm_Add(dbg, current_ir_graph, block, op, cnst, mode, ARM_SHF_NONE, NULL);
}
+#if 0
/**
* Transforms a FrameLoad into an ia32 Load.
*/
static ir_node *gen_FrameLoad(ir_node *irn, arm_code_gen_t *cg) {
-#if 0
- ir_node *new_op = NULL;
- ir_node *noreg = ia32_new_NoReg_gp(env->cg);
- ir_node *mem = get_irn_n(irn, 0);
- ir_node *ptr = get_irn_n(irn, 1);
- entity *ent = be_get_frame_entity(irn);
- ir_mode *mode = get_type_mode(get_entity_type(ent));
+ ir_node *new_op = NULL;
+ ir_node *noreg = ia32_new_NoReg_gp(env->cg);
+ ir_node *mem = get_irn_n(irn, 0);
+ ir_node *ptr = get_irn_n(irn, 1);
+ ir_entity *ent = be_get_frame_entity(irn);
+ ir_mode *mode = get_type_mode(get_entity_type(ent));
if (mode_is_float(mode)) {
if (USE_SSE2(env->cg))
SET_IA32_ORIG_NODE(new_op, ia32_get_old_node_name(env->cg, env->irn));
return new_op;
-#endif
}
+#endif
-
+#if 0
/**
* Transforms a FrameStore into an ia32 Store.
*/
static ir_node *gen_FrameStore(ir_node *irn, arm_code_gen_t *cg) {
-#if 0
- ir_node *new_op = NULL;
- ir_node *noreg = ia32_new_NoReg_gp(env->cg);
- ir_node *mem = get_irn_n(irn, 0);
- ir_node *ptr = get_irn_n(irn, 1);
- ir_node *val = get_irn_n(irn, 2);
- entity *ent = be_get_frame_entity(irn);
- ir_mode *mode = get_irn_mode(val);
+ ir_node *new_op = NULL;
+ ir_node *noreg = ia32_new_NoReg_gp(env->cg);
+ ir_node *mem = get_irn_n(irn, 0);
+ ir_node *ptr = get_irn_n(irn, 1);
+ ir_node *val = get_irn_n(irn, 2);
+ ir_entity *ent = be_get_frame_entity(irn);
+ ir_mode *mode = get_irn_mode(val);
if (mode_is_float(mode)) {
if (USE_SSE2(env->cg))
SET_IA32_ORIG_NODE(new_op, ia32_get_old_node_name(env->cg, env->irn));
return new_op;
-#endif
}
+#endif
// static ir_node *gen_be_Copy(ir_node *irn, arm_code_gen_t *cg) {
* move constants out of the start block
*/
void arm_move_consts(ir_node *node, void *env) {
- arm_code_gen_t *cgenv = (arm_code_gen_t *)env;
int i;
if (is_Block(node))
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);
+ ir_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)));
}
for (i = 0; i < get_irn_arity(node); i++) {
ir_node *pred = get_irn_n(node,i);
- opcode pred_code = get_irn_opcode(pred);
+ ir_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));
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);
+ ir_node *pred = get_irn_n(node,i);
+ ir_opcode pred_code = get_irn_opcode(pred);
if (pred_code == iro_SymConst) {
const char *str = get_sc_name(pred);