pinned = "yes"
attr_struct = "alloc_attr"
d_post = '''
- #if PRECISE_EXC_CONTEXT
firm_alloc_frag_arr(res, op_Alloc, &res->attr.alloc.exc.frag_arr);
- #endif
'''
class Anchor(Op):
java_noconstr = True
class Bad(Op):
- mode = "mode_Bad"
- flags = [ "cfopcode", "fragile", "start_block", "dump_noblock" ]
- pinned = "yes"
- knownBlock = True
- singleton = True
+ mode = "mode_Bad"
+ flags = [ "cfopcode", "fragile", "start_block", "dump_noblock" ]
+ pinned = "yes"
+ knownBlock = True
+ singleton = True
+ attr_struct = "irg_attr"
init = '''
res->attr.irg.irg = irg;
'''
pinned_init = "op_pin_state_pinned"
attr_struct = "bound_attr"
d_post = '''
- #if PRECISE_EXC_CONTEXT
firm_alloc_frag_arr(res, op_Bound, &res->attr.bound.exc.frag_arr);
- #endif
'''
class Break(Op):
dict(
type = "ir_type*",
name = "type"
+ ),
+ dict(
+ type = "unsigned",
+ name = "tail_call",
+ # the tail call attribute can only be set by analysis
+ init = "0"
)
]
attr_struct = "call_attr"
assert((get_unknown_type() == type) || is_Method_type(type));
'''
d_post = '''
- #if PRECISE_EXC_CONTEXT
firm_alloc_frag_arr(res, op_Call, &res->attr.call.exc.frag_arr);
- #endif
'''
class CallBegin(Op):
pinned = "memory"
pinned_init = "op_pin_state_pinned"
d_post = '''
- #if PRECISE_EXC_CONTEXT
firm_alloc_frag_arr(res, op_CopyB, &res->attr.copyb.exc.frag_arr);
- #endif
'''
class Div(Op):
op_index = 1
arity_override = "oparity_binary"
d_post = '''
- #if PRECISE_EXC_CONTEXT
firm_alloc_frag_arr(res, op_Div, &res->attr.except.frag_arr);
- #endif
'''
class DivMod(Op):
op_index = 1
arity_override = "oparity_binary"
d_post = '''
- #if PRECISE_EXC_CONTEXT
firm_alloc_frag_arr(res, op_DivMod, &res->attr.except.frag_arr);
- #endif
'''
class Dummy(Op):
),
]
d_post = '''
-#if PRECISE_EXC_CONTEXT
firm_alloc_frag_arr(res, op_Load, &res->attr.load.exc.frag_arr);
-#endif
'''
class Minus(Unop):
op_index = 1
arity_override = "oparity_binary"
d_post = '''
- #if PRECISE_EXC_CONTEXT
firm_alloc_frag_arr(res, op_Mod, &res->attr.except.frag_arr);
- #endif
'''
class Mul(Binop):
op_index = 1
arity_override = "oparity_binary"
d_post = '''
- #if PRECISE_EXC_CONTEXT
firm_alloc_frag_arr(res, op_Quot, &res->attr.except.frag_arr);
- #endif
'''
class Raise(Op):
),
]
d_post = '''
-#if PRECISE_EXC_CONTEXT
firm_alloc_frag_arr(res, op_Store, &res->attr.store.exc.frag_arr);
-#endif
'''
class Sub(Binop):