-/**
- * Copy the attributes from an ia32_Const to an Immop (Add_i, Sub_i, ...) node
- */
-void copy_ia32_Immop_attr(ir_node *node, ir_node *from) {
- ia32_immop_type_t immop_type = get_ia32_immop_type(from);
-
- if(immop_type == ia32_ImmConst) {
- set_ia32_Immop_tarval(node, get_ia32_Immop_tarval(from));
- } else if(immop_type == ia32_ImmSymConst) {
- set_ia32_Immop_symconst(node, get_ia32_Immop_symconst(from));
- } else {
- ia32_attr_t *attr = get_ia32_attr(node);
- assert(immop_type == ia32_ImmNone);
- attr->data.imm_tp = ia32_ImmNone;
- }
-}
-
-/**
- * Copy the attributes from a Firm Const/SymConst to an ia32_Const
- */
-void set_ia32_Const_attr(ir_node *ia32_cnst, ir_node *cnst) {
- assert(is_ia32_Cnst(ia32_cnst) && "Need ia32_Const to set Const attr");
-
- switch (get_irn_opcode(cnst)) {
- case iro_Const:
- set_ia32_Const_tarval(ia32_cnst, get_Const_tarval(cnst));
- break;
- case iro_SymConst:
- assert(get_SymConst_kind(cnst) == symconst_addr_ent);
- set_ia32_Immop_symconst(ia32_cnst, get_SymConst_entity(cnst));
- break;
- case iro_Unknown:
- assert(0 && "Unknown Const NYI");
- break;
- default:
- assert(0 && "Cannot create ia32_Const for this opcode");
- }
-}
-
-void set_ia32_Const_tarval(ir_node *ia32_cnst, tarval *tv) {
-#if 0
- if(mode_is_reference(get_tarval_mode(tv))) {
- if(tarval_is_null(tv)) {
- tv = get_tarval_null(mode_Iu);
- } else {
- long val;
- /* workaround... */
- if(!tarval_is_long(tv))
- panic("Can't convert reference tarval to mode_Iu at %+F", ia32_cnst);
- val = get_tarval_long(tv);
- tv = new_tarval_from_long(val, mode_Iu);
- }
- } else {
- tv = tarval_convert_to(tv, mode_Iu);
- }
-#else
- tv = tarval_convert_to(tv, mode_Iu);
-#endif
-
- assert(tv != get_tarval_bad() && tv != get_tarval_undefined()
- && tv != NULL);
- set_ia32_Immop_tarval(ia32_cnst, tv);
-}
-
-