/*
- * 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.
+ * Copyright (C) 2012 University of Karlsruhe.
*/
/**
0
};
-/* Initialize the architecture environment struct. */
-arch_env_t *arch_env_begin_codegeneration(const arch_isa_if_t *isa_if,
- be_main_env_t *main_env)
-{
- arch_env_t *arch_env = isa_if->begin_codegeneration(main_env);
- arch_env->main_env = main_env;
- return arch_env;
-}
-
/**
* Get the isa responsible for a node.
* @param irn The node to get the responsible isa for.
fprintf(F, " same as");
for (i = 0; 1U << i <= other; ++i) {
if (other & (1U << i)) {
- ir_fprintf(F, " %+F", get_irn_n(skip_Proj_const(node), i));
+ ir_fprintf(F, " #%d (%+F)", i, get_irn_n(skip_Proj_const(node), i));
}
}
}
fprintf(F, " different from");
for (i = 0; 1U << i <= other; ++i) {
if (other & (1U << i)) {
- ir_fprintf(F, " %+F", get_irn_n(skip_Proj_const(node), i));
+ ir_fprintf(F, " #%d (%+F)", i, get_irn_n(skip_Proj_const(node), i));
}
}
}
void arch_dump_reqs_and_registers(FILE *F, const ir_node *node)
{
- backend_info_t *info = be_get_info(node);
+ backend_info_t *const info = be_get_info(node);
+ int const n_ins = get_irn_arity(node);
/* don't fail on invalid graphs */
- if (info == NULL || info->in_reqs == NULL || info->out_infos == NULL) {
+ if (!info || (!info->in_reqs && n_ins != 0) || !info->out_infos) {
fprintf(F, "invalid register requirements!!!\n");
return;
}
- int n_ins = get_irn_arity(node);
for (int i = 0; i < n_ins; ++i) {
const arch_register_req_t *req = arch_get_irn_register_req_in(node, i);
fprintf(F, "inreq #%d = ", i);
arch_dump_register_req(F, req, node);
fputs("\n", F);
}
- unsigned n_outs = arch_get_irn_n_outs(node);
- for (unsigned o = 0; o < n_outs; ++o) {
+ be_foreach_out(node, o) {
const arch_register_req_t *req = arch_get_irn_register_req_out(node, o);
fprintf(F, "outreq #%u = ", o);
arch_dump_register_req(F, req, node);
- fputs("\n", F);
- }
- for (unsigned o = 0; o < n_outs; ++o) {
const arch_register_t *reg = arch_get_irn_register_out(node, o);
- fprintf(F, "reg #%u = %s\n", o, reg != NULL ? reg->name : "n/a");
+ fprintf(F, " [%s]\n", reg != NULL ? reg->name : "n/a");
}
fprintf(F, "flags =");