+ /* check for the return_twice property */
+ destroy_all_regs = 0;
+ if (is_SymConst_addr_ent(call_ptr)) {
+ ir_entity *ent = get_SymConst_entity(call_ptr);
+
+ if (get_entity_additional_properties(ent) & mtp_property_returns_twice)
+ destroy_all_regs = 1;
+ } else {
+ ir_type *call_tp = get_Call_type(irn);
+
+ if (get_method_additional_properties(call_tp) & mtp_property_returns_twice)
+ destroy_all_regs = 1;
+ }
+
+ /* Put caller save into the destroyed set and state registers in the states set */