From: Michael Beck Date: Thu, 30 Jun 2005 08:03:05 +0000 (+0000) Subject: added IJmp opcode allowing an indirect jump to an arbitrary address X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=d89301644275f9e49148a196c8a47e0b40829642;p=libfirm added IJmp opcode allowing an indirect jump to an arbitrary address [r6134] --- diff --git a/ir/ir/irop.c b/ir/ir/irop.c index 67bdb35ea..db8a14c8e 100644 --- a/ir/ir/irop.c +++ b/ir/ir/irop.c @@ -35,6 +35,7 @@ ir_op *op_Block; ir_op *get_op_Block (void) { return op_Block; } ir_op *op_Start; ir_op *get_op_Start (void) { return op_Start; } ir_op *op_End; ir_op *get_op_End (void) { return op_End; } ir_op *op_Jmp; ir_op *get_op_Jmp (void) { return op_Jmp; } +ir_op *op_IJmp; ir_op *get_op_IJmp (void) { return op_IJmp; } ir_op *op_Cond; ir_op *get_op_Cond (void) { return op_Cond; } ir_op *op_Return; ir_op *get_op_Return (void) { return op_Return; } ir_op *op_Raise; ir_op *get_op_Raise (void) { return op_Raise; } @@ -186,6 +187,7 @@ init_op(void) op_Start = new_ir_op(iro_Start, "Start", op_pin_state_pinned, X, oparity_zero, -1, sizeof(start_attr)); op_End = new_ir_op(iro_End, "End", op_pin_state_pinned, X, oparity_dynamic, -1, 0); op_Jmp = new_ir_op(iro_Jmp, "Jmp", op_pin_state_pinned, X, oparity_zero, -1, 0); + op_IJmp = new_ir_op(iro_IJmp, "IJmp", op_pin_state_pinned, X, oparity_unary, -1, 0); op_Cond = new_ir_op(iro_Cond, "Cond", op_pin_state_pinned, L|X|Y, oparity_any, -1, sizeof(cond_attr)); op_Return = new_ir_op(iro_Return, "Return", op_pin_state_pinned, L|X, oparity_zero, -1, 0); op_Raise = new_ir_op(iro_Raise, "Raise", op_pin_state_pinned, L|X, oparity_any, -1, 0); diff --git a/ir/ir/irop.h b/ir/ir/irop.h index b10145012..052bda4bd 100644 --- a/ir/ir/irop.h +++ b/ir/ir/irop.h @@ -60,7 +60,7 @@ typedef enum { /** The opcodes of the libFirm predefined operations. */ typedef enum { iro_Block, - iro_Start, iro_End, iro_Jmp, iro_Cond, iro_Return, iro_Raise, + iro_Start, iro_End, iro_Jmp, iro_IJmp, iro_Cond, iro_Return, iro_Raise, iro_Const, iro_SymConst, iro_Sel, iro_InstOf, iro_Call, iro_Add, iro_Sub, iro_Minus, iro_Mul, iro_Quot, iro_DivMod, @@ -81,6 +81,7 @@ extern ir_op *op_Block; ir_op *get_op_Block (void); extern ir_op *op_Start; ir_op *get_op_Start (void); extern ir_op *op_End; ir_op *get_op_End (void); extern ir_op *op_Jmp; ir_op *get_op_Jmp (void); +extern ir_op *op_IJmp; ir_op *get_op_IJmp (void); extern ir_op *op_Cond; ir_op *get_op_Cond (void); extern ir_op *op_Return; ir_op *get_op_Return (void); extern ir_op *op_Raise; ir_op *get_op_Raise (void);