projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
- removed old global handling artifact
[libfirm]
/
ir
/
ir
/
irop.c
diff --git
a/ir/ir/irop.c
b/ir/ir/irop.c
index
a1fe39d
..
e542a54
100644
(file)
--- a/
ir/ir/irop.c
+++ b/
ir/ir/irop.c
@@
-23,13
+23,9
@@
* @author Christian Schaefer, Goetz Lindenmaier, Michael Beck
* @version $Id$
*/
* @author Christian Schaefer, Goetz Lindenmaier, Michael Beck
* @version $Id$
*/
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
+#include "config.h"
-#ifdef HAVE_STRING_H
-# include <string.h>
-#endif
+#include <string.h>
#include "irop_t.h"
#include "irnode_t.h"
#include "irop_t.h"
#include "irnode_t.h"
@@
-42,6
+38,8
@@
#include "xmalloc.h"
#include "xmalloc.h"
+void be_init_op(void);
+
/** the available next opcode */
static unsigned next_iro = iro_MaxOpcode;
/** the available next opcode */
static unsigned next_iro = iro_MaxOpcode;
@@
-61,6
+59,7
@@
ir_op *op_Const; ir_op *get_op_Const (void) { return op_Const; }
ir_op *op_SymConst; ir_op *get_op_SymConst (void) { return op_SymConst; }
ir_op *op_Call; ir_op *get_op_Call (void) { return op_Call; }
ir_op *op_SymConst; ir_op *get_op_SymConst (void) { return op_SymConst; }
ir_op *op_Call; ir_op *get_op_Call (void) { return op_Call; }
+ir_op *op_Builtin; ir_op *get_op_Builtin (void) { return op_Builtin; }
ir_op *op_Add; ir_op *get_op_Add (void) { return op_Add; }
ir_op *op_Sub; ir_op *get_op_Sub (void) { return op_Sub; }
ir_op *op_Minus; ir_op *get_op_Minus (void) { return op_Minus; }
ir_op *op_Add; ir_op *get_op_Add (void) { return op_Add; }
ir_op *op_Sub; ir_op *get_op_Sub (void) { return op_Sub; }
ir_op *op_Minus; ir_op *get_op_Minus (void) { return op_Minus; }
@@
-116,6
+115,7
@@
ir_op *op_Bound; ir_op *get_op_Bound (void) { return op_Bound; }
ir_op *op_Pin; ir_op *get_op_Pin (void) { return op_Pin; }
ir_op *op_ASM; ir_op *get_op_ASM (void) { return op_ASM; }
ir_op *op_Pin; ir_op *get_op_Pin (void) { return op_Pin; }
ir_op *op_ASM; ir_op *get_op_ASM (void) { return op_ASM; }
+ir_op *op_Dummy; ir_op *get_op_Dummy (void) { return op_Dummy; }
ir_op *op_Anchor; ir_op *get_op_Anchor (void) { return op_Anchor; }
/*
ir_op *op_Anchor; ir_op *get_op_Anchor (void) { return op_Anchor; }
/*
@@
-233,10
+233,7
@@
new_ir_op(unsigned code, const char *name, op_pin_state p,
unsigned flags, op_arity opar, int op_index, size_t attr_size,
const ir_op_ops *ops)
{
unsigned flags, op_arity opar, int op_index, size_t attr_size,
const ir_op_ops *ops)
{
- ir_op *res;
-
- res = (ir_op *)xmalloc(sizeof(*res));
- memset(res, 0, sizeof(*res));
+ ir_op *res = XMALLOCZ(ir_op);
res->code = code;
res->name = new_id_from_chars(name, strlen(name));
res->code = code;
res->name = new_id_from_chars(name, strlen(name));
@@
-360,6
+357,9
@@
init_op(void)
op_Pin = new_ir_op(iro_Pin, "Pin", op_pin_state_pinned, H, oparity_unary, -1, 0, NULL);
op_ASM = new_ir_op(iro_ASM, "ASM", op_pin_state_mem_pinned, K|M, oparity_variable, -1, sizeof(asm_attr), NULL);
op_Pin = new_ir_op(iro_Pin, "Pin", op_pin_state_pinned, H, oparity_unary, -1, 0, NULL);
op_ASM = new_ir_op(iro_ASM, "ASM", op_pin_state_mem_pinned, K|M, oparity_variable, -1, sizeof(asm_attr), NULL);
+ op_Builtin = new_ir_op(iro_Builtin, "Builtin", op_pin_state_mem_pinned, M, oparity_variable, -1, sizeof(builtin_attr), NULL);
+
+ op_Dummy = new_ir_op(iro_Dummy, "Dummy", op_pin_state_pinned, X|F|S|c|NB,oparity_zero, -1, 0, NULL);
op_Anchor = new_ir_op(iro_Anchor, "Anchor", op_pin_state_pinned, N|NB, oparity_variable, -1, 0, NULL);
op_Anchor = new_ir_op(iro_Anchor, "Anchor", op_pin_state_pinned, N|NB, oparity_variable, -1, 0, NULL);
@@
-374,6
+374,9
@@
init_op(void)
#undef E
#undef NB
#undef NI
#undef E
#undef NB
#undef NI
+
+ /* initialize backend opcodes */
+ be_init_op();
} /* init_op */
} /* init_op */
@@
-448,6
+451,7
@@
void finish_op(void) {
free_ir_op (op_Pin ); op_Pin = NULL;
free_ir_op (op_ASM ); op_ASM = NULL;
free_ir_op (op_Pin ); op_Pin = NULL;
free_ir_op (op_ASM ); op_ASM = NULL;
+ free_ir_op (op_Dummy ); op_Dummy = NULL;
free_ir_op (op_Anchor ); op_Anchor = NULL;
}
free_ir_op (op_Anchor ); op_Anchor = NULL;
}