X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Farm%2Farm_map_regs.c;h=5a2f1eacb7f4a9fe94ff0a9ff56c22606da2aed3;hb=792661421a71bcfa9b64da8c6b655e826e94d2c1;hp=19a3ff169a0f05af5a86c24a54b9aa285e68d01d;hpb=5d79fe73922ccec0217bad72eca772e0487b7c49;p=libfirm diff --git a/ir/be/arm/arm_map_regs.c b/ir/be/arm/arm_map_regs.c index 19a3ff169..5a2f1eacb 100644 --- a/ir/be/arm/arm_map_regs.c +++ b/ir/be/arm/arm_map_regs.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved. + * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved. * * This file is part of libFirm. * @@ -21,11 +21,8 @@ * @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" -#endif #include @@ -36,48 +33,54 @@ static const arch_register_t *gpreg_param_reg_std[] = { - &arm_gp_regs[REG_R0], - &arm_gp_regs[REG_R1], - &arm_gp_regs[REG_R2], - &arm_gp_regs[REG_R3], + &arm_registers[REG_R0], + &arm_registers[REG_R1], + &arm_registers[REG_R2], + &arm_registers[REG_R3], }; -const arch_register_t *arm_get_RegParam_reg(int n) { +const arch_register_t *arm_get_RegParam_reg(int n) +{ assert(n < 4 && n >=0 && "register param > 3 angefordert"); return gpreg_param_reg_std[n]; } /* Mapping to store registers in firm nodes */ -struct arm_irn_reg_assoc { +typedef struct arm_irn_reg_assoc { const ir_node *irn; const arch_register_t *reg; -}; +} arm_irn_reg_assoc; -int arm_cmp_irn_reg_assoc(const void *a, const void *b, size_t len) { - const struct arm_irn_reg_assoc *x = a; - const struct arm_irn_reg_assoc *y = b; +int arm_cmp_irn_reg_assoc(const void *a, const void *b, size_t size) +{ + const arm_irn_reg_assoc *x = (const arm_irn_reg_assoc*)a; + const arm_irn_reg_assoc *y = (const arm_irn_reg_assoc*)b; + (void) size; return x->irn != y->irn; } -static struct arm_irn_reg_assoc *get_irn_reg_assoc(const ir_node *irn, set *reg_set) { - struct arm_irn_reg_assoc templ; +static arm_irn_reg_assoc *get_irn_reg_assoc(const ir_node *irn, set *reg_set) +{ + arm_irn_reg_assoc templ; unsigned int hash; templ.irn = irn; templ.reg = NULL; - hash = HASH_PTR(irn); + hash = hash_ptr(irn); - return set_insert(reg_set, &templ, sizeof(templ), hash); + return set_insert(arm_irn_reg_assoc, reg_set, &templ, sizeof(templ), hash); } -void arm_set_firm_reg(ir_node *irn, const arch_register_t *reg, set *reg_set) { - struct arm_irn_reg_assoc *assoc = get_irn_reg_assoc(irn, reg_set); +void arm_set_firm_reg(ir_node *irn, const arch_register_t *reg, set *reg_set) +{ + arm_irn_reg_assoc *assoc = get_irn_reg_assoc(irn, reg_set); assoc->reg = reg; } -const arch_register_t *arm_get_firm_reg(const ir_node *irn, set *reg_set) { - const struct arm_irn_reg_assoc *assoc = get_irn_reg_assoc(irn, reg_set); +const arch_register_t *arm_get_firm_reg(const ir_node *irn, set *reg_set) +{ + const arm_irn_reg_assoc *assoc = get_irn_reg_assoc(irn, reg_set); return assoc->reg; }