X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Farm%2Farm_map_regs.c;h=2d341ac40ddb3411df7991b120b120f33239fb90;hb=505d3662efed6efbca2c43eea2fe23b87816b285;hp=2ebbe2387d9b42292dbb55b993cf0809f6fe4923;hpb=fbc27d3a198b65b7519a88ec3cc97c76fd1d8509;p=libfirm diff --git a/ir/be/arm/arm_map_regs.c b/ir/be/arm/arm_map_regs.c index 2ebbe2387..2d341ac40 100644 --- a/ir/be/arm/arm_map_regs.c +++ b/ir/be/arm/arm_map_regs.c @@ -1,6 +1,27 @@ +/* + * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved. + * + * This file is part of libFirm. + * + * This file may be distributed and/or modified under the terms of the + * GNU General Public License version 2 as published by the Free Software + * Foundation and appearing in the file LICENSE.GPL included in the + * packaging of this file. + * + * Licensees holding valid libFirm Professional Edition licenses may use + * this file in accordance with the libFirm Commercial License. + * Agreement provided with the Software. + * + * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE + * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE. + */ + /** - * Register mapping for firm nodes. Stolen from bearch_firm :) - * $Id$ + * @file + * @brief Register mapping for firm nodes. Stolen from bearch_firm :) + * @author Oliver Richter, Tobias Gneist + * @version $Id$ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -33,9 +54,10 @@ struct arm_irn_reg_assoc { const arch_register_t *reg; }; -int arm_cmp_irn_reg_assoc(const void *a, const void *b, size_t len) { +int arm_cmp_irn_reg_assoc(const void *a, const void *b, size_t size) { const struct arm_irn_reg_assoc *x = a; const struct arm_irn_reg_assoc *y = b; + (void) size; return x->irn != y->irn; } @@ -57,35 +79,6 @@ void arm_set_firm_reg(ir_node *irn, const arch_register_t *reg, set *reg_set) { } const arch_register_t *arm_get_firm_reg(const ir_node *irn, set *reg_set) { - struct arm_irn_reg_assoc *assoc = get_irn_reg_assoc(irn, reg_set); + const struct arm_irn_reg_assoc *assoc = get_irn_reg_assoc(irn, reg_set); return assoc->reg; } - - - -/** - * Translates the projnum into a "real" argument position for register - * requirements dependend on the predecessor. - */ -long arm_translate_proj_pos(const ir_node *proj) { - ir_node *pred = get_Proj_pred(proj); - long nr = get_Proj_proj(proj); - - if (is_arm_Load(pred) || is_arm_fpaLdf(pred)) { - if (nr == pn_Load_res) - return 0; - assert(0 && "unsupported Proj(Load) number"); - } - else if (is_arm_Store(pred) || is_arm_fpaStf(pred)) { - return 0; - } - else if (is_arm_fpaDiv(pred) || is_arm_fpaRdv(pred)) { - if (nr == pn_Quot_res) - return 0; - else - assert(0 && "there should be no more Projs for a fDiv"); - } - -// assert(0 && "unsupported Proj(X)"); - return nr; -}