Commit 44352760 authored by Christoph Mallon's avatar Christoph Mallon
Browse files

bescripts: Automatically determine the mode of nodes by default and add the...

bescripts: Automatically determine the mode of nodes by default and add the option "first" to use the mode of the first output requirement.
parent e1552352
...@@ -17,7 +17,7 @@ $mode_fp = "mode_F"; # mode used by floatingpoint registers ...@@ -17,7 +17,7 @@ $mode_fp = "mode_F"; # mode used by floatingpoint registers
# out_reqs => [ "reg_class|register|in_rX" ] | "...", # out_reqs => [ "reg_class|register|in_rX" ] | "...",
# ins => { "in1", "in2" }, # optional, creates n_op_in1, ... consts # ins => { "in1", "in2" }, # optional, creates n_op_in1, ... consts
# outs => { "out1", "out2" },# optional, creates pn_op_out1, ... consts # outs => { "out1", "out2" },# optional, creates pn_op_out1, ... consts
# mode => "mode_Iu", # optional, predefines the mode # mode => "first" | "<mode>" # optional, determines the mode, auto-detected by default
# emit => "emit code with templates", # optional for virtual nodes # emit => "emit code with templates", # optional for virtual nodes
# attr => "additional attribute arguments for constructor", # optional # attr => "additional attribute arguments for constructor", # optional
# init => "emit attribute initialization template", # optional # init => "emit attribute initialization template", # optional
...@@ -77,27 +77,23 @@ my $binop = { ...@@ -77,27 +77,23 @@ my $binop = {
irn_flags => [ "rematerializable" ], irn_flags => [ "rematerializable" ],
in_reqs => [ "gp", "gp" ], in_reqs => [ "gp", "gp" ],
out_reqs => [ "gp" ], out_reqs => [ "gp" ],
mode => $mode_gp,
}; };
my $constop = { my $constop = {
op_flags => [ "constlike" ], op_flags => [ "constlike" ],
irn_flags => [ "rematerializable" ], irn_flags => [ "rematerializable" ],
out_reqs => [ "gp" ], out_reqs => [ "gp" ],
mode => $mode_gp,
}; };
my $fbinop = { my $fbinop = {
in_reqs => [ "fp", "fp" ], in_reqs => [ "fp", "fp" ],
out_reqs => [ "fp" ], out_reqs => [ "fp" ],
mode => $mode_fp,
}; };
my $unop = { my $unop = {
irn_flags => [ "rematerializable" ], irn_flags => [ "rematerializable" ],
in_reqs => [ "gp" ], in_reqs => [ "gp" ],
out_reqs => [ "gp" ], out_reqs => [ "gp" ],
mode => $mode_gp,
}; };
%nodes = ( %nodes = (
...@@ -168,7 +164,6 @@ Jmp => { ...@@ -168,7 +164,6 @@ Jmp => {
op_flags => [ "cfopcode" ], op_flags => [ "cfopcode" ],
irn_flags => [ "simple_jump" ], irn_flags => [ "simple_jump" ],
out_reqs => [ "exec" ], out_reqs => [ "exec" ],
mode => "mode_X",
}, },
Start => { Start => {
...@@ -186,7 +181,6 @@ Return => { ...@@ -186,7 +181,6 @@ Return => {
out_reqs => [ "exec" ], out_reqs => [ "exec" ],
ins => [ "mem", "stack", "first_result" ], ins => [ "mem", "stack", "first_result" ],
outs => [ "X" ], outs => [ "X" ],
mode => "mode_X",
}, },
# Load / Store # Load / Store
...@@ -210,7 +204,6 @@ Store => { ...@@ -210,7 +204,6 @@ Store => {
out_reqs => [ "mem" ], out_reqs => [ "mem" ],
ins => [ "mem", "ptr", "val" ], ins => [ "mem", "ptr", "val" ],
outs => [ "M" ], outs => [ "M" ],
mode => "mode_M",
emit => '(%S1) = store %S2', emit => '(%S1) = store %S2',
}, },
...@@ -243,7 +236,6 @@ fMinus => { ...@@ -243,7 +236,6 @@ fMinus => {
in_reqs => [ "fp" ], in_reqs => [ "fp" ],
out_reqs => [ "fp" ], out_reqs => [ "fp" ],
emit => '%D0 = fneg %S0', emit => '%D0 = fneg %S0',
mode => $mode_fp,
}, },
fConst => { fConst => {
...@@ -251,7 +243,6 @@ fConst => { ...@@ -251,7 +243,6 @@ fConst => {
irn_flags => [ "rematerializable" ], irn_flags => [ "rematerializable" ],
out_reqs => [ "fp" ], out_reqs => [ "fp" ],
emit => '%D0 = fconst %I', emit => '%D0 = fconst %I',
mode => $mode_fp,
}, },
# Load / Store # Load / Store
...@@ -275,7 +266,6 @@ fStore => { ...@@ -275,7 +266,6 @@ fStore => {
out_reqs => [ "mem" ], out_reqs => [ "mem" ],
ins => [ "mem", "ptr", "val" ], ins => [ "mem", "ptr", "val" ],
outs => [ "M" ], outs => [ "M" ],
mode => "mode_M",
emit => '(%S1) = fstore %S2', emit => '(%S1) = fstore %S2',
}, },
......
...@@ -348,7 +348,6 @@ mov_imm => { ...@@ -348,7 +348,6 @@ mov_imm => {
attr_type => "amd64_movimm_attr_t", attr_type => "amd64_movimm_attr_t",
attr => "amd64_insn_mode_t insn_mode, const amd64_imm64_t *imm", attr => "amd64_insn_mode_t insn_mode, const amd64_imm64_t *imm",
emit => 'mov%MM $%C, %D0', emit => 'mov%MM $%C, %D0',
mode => $mode_gp,
}, },
movs => { movs => {
...@@ -386,7 +385,6 @@ jmp => { ...@@ -386,7 +385,6 @@ jmp => {
op_flags => [ "cfopcode" ], op_flags => [ "cfopcode" ],
out_reqs => [ "exec" ], out_reqs => [ "exec" ],
fixed => "amd64_op_mode_t op_mode = AMD64_OP_IMM32;", fixed => "amd64_op_mode_t op_mode = AMD64_OP_IMM32;",
mode => "mode_X",
}, },
cmp => { cmp => {
...@@ -409,7 +407,6 @@ lea => { ...@@ -409,7 +407,6 @@ lea => {
attr => "amd64_insn_mode_t insn_mode, amd64_addr_t addr", attr => "amd64_insn_mode_t insn_mode, amd64_addr_t addr",
fixed => "amd64_op_mode_t op_mode = AMD64_OP_ADDR;\n", fixed => "amd64_op_mode_t op_mode = AMD64_OP_ADDR;\n",
emit => "lea%M %A, %D0", emit => "lea%M %A, %D0",
mode => $mode_gp,
}, },
jcc => { jcc => {
...@@ -431,7 +428,6 @@ mov_store => { ...@@ -431,7 +428,6 @@ mov_store => {
outs => [ "M" ], outs => [ "M" ],
attr_type => "amd64_binop_addr_attr_t", attr_type => "amd64_binop_addr_attr_t",
attr => "const amd64_binop_addr_attr_t *attr_init", attr => "const amd64_binop_addr_attr_t *attr_init",
mode => "mode_M",
emit => "mov%M %S0, %A", emit => "mov%M %S0, %A",
}, },
...@@ -472,7 +468,6 @@ ret => { ...@@ -472,7 +468,6 @@ ret => {
out_reqs => [ "exec" ], out_reqs => [ "exec" ],
ins => [ "mem", "stack", "first_result" ], ins => [ "mem", "stack", "first_result" ],
fixed => "amd64_op_mode_t op_mode = AMD64_OP_NONE;\n", fixed => "amd64_op_mode_t op_mode = AMD64_OP_NONE;\n",
mode => "mode_X",
emit => "ret", emit => "ret",
}, },
...@@ -507,7 +502,6 @@ movs_store_xmm => { ...@@ -507,7 +502,6 @@ movs_store_xmm => {
outs => [ "M" ], outs => [ "M" ],
attr_type => "amd64_binop_addr_attr_t", attr_type => "amd64_binop_addr_attr_t",
attr => "const amd64_binop_addr_attr_t *attr_init", attr => "const amd64_binop_addr_attr_t *attr_init",
mode => "mode_M",
emit => "movs%MX %^S0, %A", emit => "movs%MX %^S0, %A",
}, },
...@@ -534,7 +528,6 @@ xorpd_0 => { ...@@ -534,7 +528,6 @@ xorpd_0 => {
outs => [ "res" ], outs => [ "res" ],
fixed => "amd64_op_mode_t op_mode = AMD64_OP_REG_REG;", fixed => "amd64_op_mode_t op_mode = AMD64_OP_REG_REG;",
emit => "xorpd %^D0, %^D0", emit => "xorpd %^D0, %^D0",
mode => $mode_xmm,
}, },
xorp => { xorp => {
...@@ -548,7 +541,6 @@ movd_xmm_gp => { ...@@ -548,7 +541,6 @@ movd_xmm_gp => {
outs => [ "res" ], outs => [ "res" ],
in_reqs => [ "xmm" ], in_reqs => [ "xmm" ],
out_reqs => [ "gp" ], out_reqs => [ "gp" ],
mode => $mode_gp,
attr_type => "amd64_addr_attr_t", attr_type => "amd64_addr_attr_t",
attr => "amd64_insn_mode_t insn_mode, amd64_op_mode_t op_mode, amd64_addr_t addr", attr => "amd64_insn_mode_t insn_mode, amd64_op_mode_t op_mode, amd64_addr_t addr",
emit => "movd %S0, %D0" emit => "movd %S0, %D0"
...@@ -560,7 +552,6 @@ movd_gp_xmm => { ...@@ -560,7 +552,6 @@ movd_gp_xmm => {
outs => [ "res" ], outs => [ "res" ],
in_reqs => [ "gp" ], in_reqs => [ "gp" ],
out_reqs => [ "xmm" ], out_reqs => [ "xmm" ],
mode => $mode_xmm,
attr_type => "amd64_addr_attr_t", attr_type => "amd64_addr_attr_t",
attr => "amd64_insn_mode_t insn_mode, amd64_op_mode_t op_mode, amd64_addr_t addr", attr => "amd64_insn_mode_t insn_mode, amd64_op_mode_t op_mode, amd64_addr_t addr",
emit => "movd %S0, %D0" emit => "movd %S0, %D0"
...@@ -626,7 +617,6 @@ movdqu_store => { ...@@ -626,7 +617,6 @@ movdqu_store => {
outs => [ "M" ], outs => [ "M" ],
attr_type => "amd64_binop_addr_attr_t", attr_type => "amd64_binop_addr_attr_t",
attr => "const amd64_binop_addr_attr_t *attr_init", attr => "const amd64_binop_addr_attr_t *attr_init",
mode => "mode_M",
emit => "movdqu %^S0, %A", emit => "movdqu %^S0, %A",
}, },
......
...@@ -73,7 +73,6 @@ $default_copy_attr = "arm_copy_attr"; ...@@ -73,7 +73,6 @@ $default_copy_attr = "arm_copy_attr";
my $unop_shifter_operand = { my $unop_shifter_operand = {
irn_flags => [ "rematerializable" ], irn_flags => [ "rematerializable" ],
mode => $mode_gp,
attr_type => "arm_shifter_operand_t", attr_type => "arm_shifter_operand_t",
out_reqs => [ "gp" ], out_reqs => [ "gp" ],
constructors => { constructors => {
...@@ -104,7 +103,6 @@ my $unop_shifter_operand = { ...@@ -104,7 +103,6 @@ my $unop_shifter_operand = {
my $binop_shifter_operand = { my $binop_shifter_operand = {
irn_flags => [ "rematerializable" ], irn_flags => [ "rematerializable" ],
mode => $mode_gp,
attr_type => "arm_shifter_operand_t", attr_type => "arm_shifter_operand_t",
out_reqs => [ "gp" ], out_reqs => [ "gp" ],
constructors => { constructors => {
...@@ -169,7 +167,6 @@ my $binop_shifter_operand_setflags = { ...@@ -169,7 +167,6 @@ my $binop_shifter_operand_setflags = {
my $binop_shifter_operand_flags = { my $binop_shifter_operand_flags = {
#irn_flags => [ "rematerializable" ], #irn_flags => [ "rematerializable" ],
attr_type => "arm_shifter_operand_t", attr_type => "arm_shifter_operand_t",
mode => $mode_gp,
out_reqs => [ "gp" ], out_reqs => [ "gp" ],
constructors => { constructors => {
imm => { imm => {
...@@ -201,7 +198,6 @@ my $binop_shifter_operand_flags = { ...@@ -201,7 +198,6 @@ my $binop_shifter_operand_flags = {
my $cmp_shifter_operand = { my $cmp_shifter_operand = {
irn_flags => [ "rematerializable", "modify_flags" ], irn_flags => [ "rematerializable", "modify_flags" ],
emit => 'cmp %S0, %O', emit => 'cmp %S0, %O',
mode => $mode_flags,
attr_type => "arm_cmp_attr_t", attr_type => "arm_cmp_attr_t",
out_reqs => [ "flags" ], out_reqs => [ "flags" ],
constructors => { constructors => {
...@@ -253,7 +249,6 @@ my $binopf = { ...@@ -253,7 +249,6 @@ my $binopf = {
out_reqs => [ "fpa" ], out_reqs => [ "fpa" ],
attr_type => "arm_farith_attr_t", attr_type => "arm_farith_attr_t",
attr => "ir_mode *op_mode", attr => "ir_mode *op_mode",
mode => $mode_fp,
}; };
...@@ -278,7 +273,6 @@ Mul => { ...@@ -278,7 +273,6 @@ Mul => {
irn_flags => [ "rematerializable" ], irn_flags => [ "rematerializable" ],
in_reqs => [ "gp", "gp" ], in_reqs => [ "gp", "gp" ],
emit => 'mul %D0, %S0, %S1', emit => 'mul %D0, %S0, %S1',
mode => $mode_gp,
constructors => { constructors => {
"" => { out_reqs => [ "gp" ] }, "" => { out_reqs => [ "gp" ] },
# TODO: !in_r1 for out constraints the register allocator more than # TODO: !in_r1 for out constraints the register allocator more than
...@@ -303,7 +297,6 @@ Mla => { ...@@ -303,7 +297,6 @@ Mla => {
in_reqs => [ "gp", "gp", "gp" ], in_reqs => [ "gp", "gp", "gp" ],
ins => [ "left", "right", "add" ], ins => [ "left", "right", "add" ],
emit => 'mla %D0, %S0, %S1, %S2', emit => 'mla %D0, %S0, %S1, %S2',
mode => $mode_gp,
constructors => { constructors => {
"" => { out_reqs => [ "gp" ] }, "" => { out_reqs => [ "gp" ] },
# See comments for Mul_v5 out register constraint # See comments for Mul_v5 out register constraint
...@@ -317,7 +310,6 @@ Mls => { ...@@ -317,7 +310,6 @@ Mls => {
out_reqs => [ "gp" ], out_reqs => [ "gp" ],
ins => [ "left", "right", "sub" ], ins => [ "left", "right", "sub" ],
emit => 'mls %D0, %S0, %S1, %S2', emit => 'mls %D0, %S0, %S1, %S2',
mode => $mode_gp,
}, },
And => { And => {
...@@ -333,7 +325,6 @@ Or => { ...@@ -333,7 +325,6 @@ Or => {
OrPl => { OrPl => {
#irn_flags => [ "rematerializable" ], #irn_flags => [ "rematerializable" ],
emit => 'orrpl %D0, %S2, %O', emit => 'orrpl %D0, %S2, %O',
mode => $mode_gp,
attr_type => "arm_shifter_operand_t", attr_type => "arm_shifter_operand_t",
in_reqs => [ "gp", "flags", "gp", "gp" ], in_reqs => [ "gp", "flags", "gp", "gp" ],
out_reqs => [ "in_r3" ], out_reqs => [ "in_r3" ],
...@@ -407,7 +398,6 @@ Clz => { ...@@ -407,7 +398,6 @@ Clz => {
in_reqs => [ "gp" ], in_reqs => [ "gp" ],
out_reqs => [ "gp" ], out_reqs => [ "gp" ],
emit => 'clz %D0, %S0', emit => 'clz %D0, %S0',
mode => $mode_gp,
}, },
# mov lr, pc\n mov pc, XXX -- This combination is used for calls to function # mov lr, pc\n mov pc, XXX -- This combination is used for calls to function
...@@ -456,7 +446,6 @@ FrameAddr => { ...@@ -456,7 +446,6 @@ FrameAddr => {
out_reqs => [ "gp" ], out_reqs => [ "gp" ],
ins => [ "base" ], ins => [ "base" ],
attr_type => "arm_Address_attr_t", attr_type => "arm_Address_attr_t",
mode => $mode_gp,
}, },
Address => { Address => {
...@@ -465,7 +454,6 @@ Address => { ...@@ -465,7 +454,6 @@ Address => {
attr => "ir_entity *entity, int offset", attr => "ir_entity *entity, int offset",
out_reqs => [ "gp" ], out_reqs => [ "gp" ],
attr_type => "arm_Address_attr_t", attr_type => "arm_Address_attr_t",
mode => $mode_gp,
}, },
Cmn => { Cmn => {
...@@ -486,7 +474,6 @@ Tst => { ...@@ -486,7 +474,6 @@ Tst => {
B => { B => {
op_flags => [ "cfopcode", "forking" ], op_flags => [ "cfopcode", "forking" ],
state => "pinned", state => "pinned",
mode => "mode_T",
in_reqs => [ "flags" ], in_reqs => [ "flags" ],
out_reqs => [ "exec", "exec" ], out_reqs => [ "exec", "exec" ],
ins => [ "flags" ], ins => [ "flags" ],
...@@ -500,13 +487,11 @@ Jmp => { ...@@ -500,13 +487,11 @@ Jmp => {
op_flags => [ "cfopcode" ], op_flags => [ "cfopcode" ],
irn_flags => [ "simple_jump" ], irn_flags => [ "simple_jump" ],
out_reqs => [ "exec" ], out_reqs => [ "exec" ],
mode => "mode_X",
}, },
SwitchJmp => { SwitchJmp => {
op_flags => [ "cfopcode", "forking" ], op_flags => [ "cfopcode", "forking" ],
state => "pinned", state => "pinned",
mode => "mode_T",
attr => "const ir_switch_table *table", attr => "const ir_switch_table *table",
init => "init_arm_SwitchJmp_attributes(res, table);", init => "init_arm_SwitchJmp_attributes(res, table);",
in_reqs => [ "gp" ], in_reqs => [ "gp" ],
...@@ -534,7 +519,6 @@ Str => { ...@@ -534,7 +519,6 @@ Str => {
in_reqs => [ "gp", "gp", "mem" ], in_reqs => [ "gp", "gp", "mem" ],
out_reqs => [ "mem" ], out_reqs => [ "mem" ],
emit => 'str%MS %S1, [%S0, #%o]', emit => 'str%MS %S1, [%S0, #%o]',
mode => "mode_M",
attr_type => "arm_load_store_attr_t", attr_type => "arm_load_store_attr_t",
attr => "ir_mode *ls_mode, ir_entity *entity, int entity_sign, long offset, bool is_frame_entity", attr => "ir_mode *ls_mode, ir_entity *entity, int entity_sign, long offset, bool is_frame_entity",
}, },
...@@ -562,7 +546,7 @@ Dvf => { ...@@ -562,7 +546,7 @@ Dvf => {
outs => [ "res", "M" ], outs => [ "res", "M" ],
attr_type => "arm_farith_attr_t", attr_type => "arm_farith_attr_t",
attr => "ir_mode *op_mode", attr => "ir_mode *op_mode",
mode => $mode_fp, mode => "first",
}, },
Mvf => { Mvf => {
...@@ -572,7 +556,6 @@ Mvf => { ...@@ -572,7 +556,6 @@ Mvf => {
emit => 'mvf%MA %S0, %D0', emit => 'mvf%MA %S0, %D0',
attr_type => "arm_farith_attr_t", attr_type => "arm_farith_attr_t",
attr => "ir_mode *op_mode", attr => "ir_mode *op_mode",
mode => $mode_fp,
}, },
FltX => { FltX => {
...@@ -582,12 +565,10 @@ FltX => { ...@@ -582,12 +565,10 @@ FltX => {
emit => 'flt%MA %D0, %S0', emit => 'flt%MA %D0, %S0',
attr_type => "arm_farith_attr_t", attr_type => "arm_farith_attr_t",
attr => "ir_mode *op_mode", attr => "ir_mode *op_mode",
mode => $mode_fp,
}, },
Cmfe => { Cmfe => {
irn_flags => [ "rematerializable", "modify_flags" ], irn_flags => [ "rematerializable", "modify_flags" ],
mode => $mode_flags,
attr_type => "arm_cmp_attr_t", attr_type => "arm_cmp_attr_t",
attr => "bool ins_permuted", attr => "bool ins_permuted",
init => "init_arm_cmp_attr(res, ins_permuted, false);", init => "init_arm_cmp_attr(res, ins_permuted, false);",
...@@ -613,7 +594,6 @@ Stf => { ...@@ -613,7 +594,6 @@ Stf => {
state => "exc_pinned", state => "exc_pinned",
ins => [ "ptr", "val", "mem" ], ins => [ "ptr", "val", "mem" ],
outs => [ "M" ], outs => [ "M" ],
mode => "mode_M",
in_reqs => [ "gp", "fpa", "mem" ], in_reqs => [ "gp", "fpa", "mem" ],
out_reqs => [ "mem" ], out_reqs => [ "mem" ],
emit => 'stf%MF %S1, [%S0, #%o]', emit => 'stf%MF %S1, [%S0, #%o]',
...@@ -627,7 +607,6 @@ fConst => { ...@@ -627,7 +607,6 @@ fConst => {
irn_flags => [ "rematerializable" ], irn_flags => [ "rematerializable" ],
attr => "ir_tarval *tv", attr => "ir_tarval *tv",
init => "attr->tv = tv;", init => "attr->tv = tv;",
mode => $mode_fp,
out_reqs => [ "fpa" ], out_reqs => [ "fpa" ],
attr_type => "arm_fConst_attr_t", attr_type => "arm_fConst_attr_t",
}, },
...@@ -645,7 +624,6 @@ Return => { ...@@ -645,7 +624,6 @@ Return => {
op_flags => [ "cfopcode" ], op_flags => [ "cfopcode" ],
in_reqs => "...", in_reqs => "...",
ins => [ "mem", "sp", "first_result" ], ins => [ "mem", "sp", "first_result" ],
mode => "mode_X",
out_reqs => [ "exec" ], out_reqs => [ "exec" ],
emit => "bx lr", emit => "bx lr",
}, },
......
...@@ -131,7 +131,7 @@ my $binop_commutative = { ...@@ -131,7 +131,7 @@ my $binop_commutative = {
ins => [ "base", "index", "mem", "left", "right" ], ins => [ "base", "index", "mem", "left", "right" ],
outs => [ "res", "flags", "M" ], outs => [ "res", "flags", "M" ],
am => "source,binary", am => "source,binary",
mode => $mode_gp, mode => "first",
}; };
my $binop_flags = { my $binop_flags = {
...@@ -147,7 +147,7 @@ my $binop_flags = { ...@@ -147,7 +147,7 @@ my $binop_flags = {
am => "source,binary", am => "source,binary",
attr => "bool ins_permuted", attr => "bool ins_permuted",
init => "attr->ins_permuted = ins_permuted;", init => "attr->ins_permuted = ins_permuted;",
mode => $mode_flags, mode => "first",
}; };
my $binop_mem = { my $binop_mem = {
...@@ -168,7 +168,7 @@ my $shiftop = { ...@@ -168,7 +168,7 @@ my $shiftop = {
out_reqs => [ "in_r1 !in_r2", "flags" ], out_reqs => [ "in_r1 !in_r2", "flags" ],
ins => [ "val", "count" ], ins => [ "val", "count" ],
outs => [ "res", "flags" ], outs => [ "res", "flags" ],
mode => $mode_gp, mode => "first",
}; };
my $shiftop_mem = { my $shiftop_mem = {
...@@ -192,7 +192,7 @@ my $shiftop_double = { ...@@ -192,7 +192,7 @@ my $shiftop_double = {
}, },
ins => [ "val_high", "val_low", "count" ], ins => [ "val_high", "val_low", "count" ],
outs => [ "res", "flags" ], outs => [ "res", "flags" ],
mode => $mode_gp, mode => "first",
}; };
my $divop = { my $divop = {
...@@ -224,7 +224,7 @@ my $unop = { ...@@ -224,7 +224,7 @@ my $unop = {
out_reqs => [ "in_r1", "flags" ], out_reqs => [ "in_r1", "flags" ],
ins => [ "val" ], ins => [ "val" ],
outs => [ "res", "flags" ], outs => [ "res", "flags" ],
mode => $mode_gp, mode => "first",
}; };
my $unop_no_flags = { my $unop_no_flags = {
...@@ -234,7 +234,6 @@ my $unop_no_flags = { ...@@ -234,7 +234,6 @@ my $unop_no_flags = {
out_reqs => [ "in_r1" ], out_reqs => [ "in_r1" ],
ins => [ "val" ], ins => [ "val" ],
outs => [ "res" ], outs => [ "res" ],
mode => $mode_gp,
}; };
my $unop_from_mem = { my $unop_from_mem = {
...@@ -245,7 +244,7 @@ my $unop_from_mem = { ...@@ -245,7 +244,7 @@ my $unop_from_mem = {
ins => [ "base", "index", "mem", "operand" ], ins => [ "base", "index", "mem", "operand" ],
outs => [ "res", "flags", "M" ], outs => [ "res", "flags", "M" ],