static const arch_env_t *arch_env = NULL;
+/**
+ * Emits registers and/or address mode of a binary operation.
+ */
char *ia32_emit_binop(const ir_node *n) {
static char *buf = NULL;
return buf;
}
+/**
+ * Emits registers and/or address mode of a unary operation.
+ */
char *ia32_emit_unop(const ir_node *n) {
static char *buf = NULL;
return buf;
}
+/**
+ * Emits adressmode.
+ */
char *ia32_emit_am(const ir_node *n) {
ia32_am_flavour_t am_flav = get_ia32_am_flavour(n);
int had_output = 0;
lc_eoprintf(ia32_get_arg_env(), obst, "%2S", n);
if (am_flav & ia32_S) {
- obstack_printf(obst, "*%d", get_ia32_am_scale(n));
+ obstack_printf(obst, "*%d", 1 << get_ia32_am_scale(n));
}
had_output = 1;
* requirements dependend on the predecessor.
*/
long ia32_translate_proj_pos(const ir_node *proj) {
- ir_node *first;
ir_node *pred = get_Proj_pred(proj);
long nr = get_Proj_proj(proj);
/**
* Initializes the nodes attributes.
*/
-void init_ia32_attributes(ir_node *node, int flags, const ia32_register_req_t **in_reqs,
- const ia32_register_req_t **out_reqs, int n_res);
+void init_ia32_attributes(ir_node *node, int flags, const ia32_register_req_t **in_reqs, \
+ const ia32_register_req_t **out_reqs, int n_res);
/* Include the generated headers */
#include "gen_ia32_new_nodes.h"
scale = get_tarval_long(get_ia32_Immop_tarval(temp));
if (scale <= 3) {
- scale = 1 << scale;
index = get_irn_n(temp, 2);
DBG((mod, LEVEL_1, "\tgot scaled index %+F\n", index));