#include "ia32_new_nodes.h"
#include "ia32_map_regs.h"
-#ifdef obstack_chunk_alloc
-# undef obstack_chunk_alloc
-# define obstack_chunk_alloc xmalloc
-#else
-# define obstack_chunk_alloc xmalloc
-# define obstack_chunk_free free
-#endif
-
#define BLOCK_PREFIX(x) ".L" x
-extern int obstack_printf(struct obstack *obst, char *fmt, ...);
-
#define SNPRINTF_BUF_LEN 128
/* global arch_env for lc_printf functions */
/**
* returns true if a node has x87 registers
*/
-static int has_x87_register(const ir_node *n)
-{
- return get_irn_op(n)->flags & (irop_flag_machine << 1);
+static int has_x87_register(const ir_node *n) {
+ return is_irn_machine_user(n, 0);
}
/* We always pass the ir_node which is a pointer. */
char cmd_buf[SNPRINTF_BUF_LEN], cmnt_buf[SNPRINTF_BUF_LEN];
if (ent) {
- snprintf(cmd_buf, SNPRINTF_BUF_LEN, "call %s", get_entity_name(ent));
+ snprintf(cmd_buf, SNPRINTF_BUF_LEN, "call %s", get_entity_ld_name(ent));
}
else {
lc_esnprintf(ia32_get_arg_env(), cmd_buf, SNPRINTF_BUF_LEN, "%1D", get_irn_n(irn, be_pos_Call_ptr));
char cmd_buf[SNPRINTF_BUF_LEN], cmnt_buf[SNPRINTF_BUF_LEN];
if (offs) {
- lc_esnprintf(ia32_get_arg_env(), cmd_buf, SNPRINTF_BUF_LEN, "add %1S,%s%u", irn,
- (dir == be_stack_dir_expand) ? " -" : " ", offs);
+ if (dir == be_stack_dir_expand)
+ lc_esnprintf(ia32_get_arg_env(), cmd_buf, SNPRINTF_BUF_LEN, "sub %1S, %u", irn, offs);
+ else
+ lc_esnprintf(ia32_get_arg_env(), cmd_buf, SNPRINTF_BUF_LEN, "add %1S, %u", irn, offs);
lc_esnprintf(ia32_get_arg_env(), cmnt_buf, SNPRINTF_BUF_LEN, "/* %+F (IncSP) */", irn);
}
else {
ia32_emit_func_prolog(F, irg);
irg_block_walk_graph(irg, ia32_gen_labels, NULL, &emit_env);
- if (cg->opt.extbb && cg->blk_sched) {
+ if ((cg->opt & IA32_OPT_EXTBB) && cg->blk_sched) {
int i, n = ARR_LEN(cg->blk_sched);
for (i = 0; i < n;) {