Commit 29464928 authored by Matthias Braun's avatar Matthias Braun
Browse files

change backend node specification to use whole words instead of cryptical...

change backend node specification to use whole words instead of cryptical 1-char abreviations for flags

[r27745]
parent af6ad571
......@@ -164,68 +164,68 @@ $mode_fp = "mode_E"; # mode used by floatingpoint registers
# Integer nodes
Add => {
op_flags => "C",
irn_flags => "R",
op_flags => [ "commutative" ],
irn_flags => [ "rematerializable" ],
reg_req => { in => [ "gp", "gp" ], out => [ "gp" ] },
emit => '. add %S1, %S2, %D1',
mode => $mode_gp,
},
Mul => {
op_flags => "C",
irn_flags => "R",
op_flags => [ "commutative" ],
irn_flags => [ "rematerializable" ],
reg_req => { in => [ "gp", "gp" ], out => [ "gp" ] },
emit =>'. mul %S1, %S2, %D1',
mode => $mode_gp,
},
And => {
op_flags => "C",
irn_flags => "R",
op_flags => [ "commutative" ],
irn_flags => [ "rematerializable" ],
reg_req => { in => [ "gp", "gp" ], out => [ "gp" ] },
emit => '. and %S1, %S2, %D1',
mode => $mode_gp,
},
Or => {
op_flags => "C",
irn_flags => "R",
op_flags => [ "commutative" ],
irn_flags => [ "rematerializable" ],
reg_req => { in => [ "gp", "gp" ], out => [ "gp" ] },
emit => '. or %S1, %S2, %D1',
mode => $mode_gp,
},
Xor => {
op_flags => "C",
irn_flags => "R",
op_flags => [ "commutative" ],
irn_flags => [ "rematerializable" ],
reg_req => { in => [ "gp", "gp" ], out => [ "gp" ] },
emit => '. xor %S1, %S2, %D1',
mode => $mode_gp,
},
Sub => {
irn_flags => "R",
irn_flags => [ "rematerializable" ],
reg_req => { in => [ "gp", "gp" ], out => [ "gp" ] },
emit => '. sub %S1, %S2, %D1',
mode => $mode_gp,
},
Shl => {
irn_flags => "R",
irn_flags => [ "rematerializable" ],
reg_req => { in => [ "gp", "gp" ], out => [ "gp" ] },
emit => '. shl %S1, %S2, %D1',
mode => $mode_gp,
},
Shr => {
irn_flags => "R",
irn_flags => [ "rematerializable" ],
reg_req => { in => [ "gp", "gp" ], out => [ "in_r1" ] },
emit => '. shr %S2, %D1',
mode => $mode_gp,
},
Minus => {
irn_flags => "R",
irn_flags => [ "rematerializable" ],
reg_req => { in => [ "gp" ], out => [ "gp" ] },
emit => '. neg %S1, %D1',
mode => $mode_gp,
......@@ -240,8 +240,8 @@ Not => {
},
Const => {
op_flags => "c",
irn_flags => "R",
op_flags => [ "constlike" ],
irn_flags => [ "rematerializable" ],
attr => "tarval *value",
custominit => "set_TEMPLATE_value(res, value);",
reg_req => { out => [ "gp" ] },
......@@ -258,8 +258,8 @@ Const => {
Jmp => {
state => "pinned",
op_flags => "X",
irn_flags => "J",
op_flags => [ "cfopcode" ],
irn_flags => [ "simple_jump" ],
reg_req => { out => [ "none" ] },
mode => "mode_X",
},
......@@ -267,16 +267,16 @@ Jmp => {
# Load / Store
Load => {
op_flags => "L|F",
irn_flags => "R",
op_flags => [ "labeled", "fragile" ],
irn_flags => [ "rematerializable" ],
state => "exc_pinned",
reg_req => { in => [ "gp", "none" ], out => [ "gp" ] },
emit => '. mov (%S1), %D1',
},
Store => {
op_flags => "L|F",
irn_flags => "R",
op_flags => [ "labeled", "fragile" ],
irn_flags => [ "rematerializable" ],
state => "exc_pinned",
reg_req => { in => [ "gp", "gp", "none" ] },
emit => '. movl %S2, (%S1)',
......@@ -285,22 +285,22 @@ Store => {
# Floating Point operations
fAdd => {
op_flags => "C",
irn_flags => "R",
op_flags => [ "commutative" ],
irn_flags => [ "rematerializable" ],
reg_req => { in => [ "fp", "fp" ], out => [ "fp" ] },
emit => '. fadd %S1, %S2, %D1',
mode => $mode_fp,
},
fMul => {
op_flags => "C",
op_flags => [ "commutative" ],
reg_req => { in => [ "fp", "fp" ], out => [ "fp" ] },
emit =>'. fmul %S1, %S2, %D1',
mode => $mode_fp,
},
fSub => {
irn_flags => "R",
irn_flags => [ "rematerializable" ],
reg_req => { in => [ "fp", "fp" ], out => [ "fp" ] },
emit => '. fsub %S1, %S2, %D1',
mode => $mode_fp,
......@@ -313,15 +313,15 @@ fDiv => {
},
fMinus => {
irn_flags => "R",
irn_flags => [ "rematerializable" ],
reg_req => { in => [ "fp" ], out => [ "fp" ] },
emit => '. fneg %S1, %D1',
mode => $mode_fp,
},
fConst => {
op_flags => "c",
irn_flags => "R",
op_flags => [ "constlike" ],
irn_flags => [ "rematerializable" ],
reg_req => { out => [ "fp" ] },
emit => '. fmov %C, %D1',
cmp_attr =>
......@@ -335,16 +335,16 @@ fConst => {
# Load / Store
fLoad => {
op_flags => "L|F",
irn_flags => "R",
op_flags => [ "labeled", "fragile" ],
irn_flags => [ "rematerializable" ],
state => "exc_pinned",
reg_req => { in => [ "gp", "none" ], out => [ "fp" ] },
emit => '. fmov (%S1), %D1',
},
fStore => {
op_flags => "L|F",
irn_flags => "R",
op_flags => [ "labeled", "fragile" ],
irn_flags => [ "rematerializable" ],
state => "exc_pinned",
reg_req => { in => [ "gp", "fp", "none" ] },
emit => '. fmov %S2, (%S1)',
......
......@@ -206,8 +206,8 @@ Push => {
# units => [ "GP" ],
},
Add => {
op_flags => "C",
irn_flags => "R",
op_flags => [ "commutative" ],
irn_flags => [ "rematerializable" ],
state => "exc_pinned",
reg_req => { in => [ "gp", "gp" ],
out => [ "gp" ] },
......@@ -230,7 +230,7 @@ Mul => {
modified_flags => $status_flags
},
Sub => {
irn_flags => "R",
irn_flags => [ "rematerializable" ],
state => "exc_pinned",
reg_req => { in => [ "gp", "gp" ],
out => [ "gp" ] },
......@@ -240,7 +240,7 @@ Sub => {
modified_flags => 1,
},
Neg => {
irn_flags => "R",
irn_flags => [ "rematerializable" ],
reg_req => { in => [ "gp" ],
out => [ "in_r1", "flags" ] },
emit => '. neg %S1',
......@@ -250,7 +250,7 @@ Neg => {
modified_flags => $status_flags
},
Immediate => {
op_flags => "c",
op_flags => [ "constlike" ],
attr => "unsigned imm_value",
init_attr => "attr->ext.imm_value = imm_value;",
reg_req => { out => [ "gp" ] },
......@@ -258,8 +258,8 @@ Immediate => {
mode => $mode_gp,
},
SymConst => {
op_flags => "c",
irn_flags => "R",
op_flags => [ "constlike" ],
irn_flags => [ "rematerializable" ],
attr => "ir_entity *entity",
attr_type => "amd64_SymConst_attr_t",
reg_req => { out => [ "gp" ] },
......@@ -277,12 +277,12 @@ Conv => {
},
Jmp => {
state => "pinned",
op_flags => "X",
op_flags => [ "cfopcode" ],
reg_req => { out => [ "none" ] },
mode => "mode_X",
},
Cmp => {
irn_flags => "R",
irn_flags => [ "rematerializable" ],
state => "exc_pinned",
reg_req => { in => [ "gp", "gp" ],
out => [ "flags" ] },
......@@ -297,7 +297,7 @@ Cmp => {
},
Jcc => {
state => "pinned",
op_flags => "L|X|Y",
op_flags => [ "labeled", "cfopcode", "forking" ],
reg_req => { in => [ "eflags" ], out => [ "none", "none" ] },
ins => [ "eflags" ],
outs => [ "false", "true" ],
......@@ -306,7 +306,7 @@ Jcc => {
mode => "mode_T",
},
Load => {
op_flags => "L|F",
op_flags => [ "labeled", "fragile" ],
state => "exc_pinned",
reg_req => { in => [ "gp", "none" ],
out => [ "gp", "none" ] },
......@@ -317,8 +317,8 @@ Load => {
emit => ". mov %O(%S1), %D1"
},
FrameAddr => {
op_flags => "c",
irn_flags => "R",
op_flags => [ "constlike" ],
irn_flags => [ "rematerializable" ],
reg_req => { in => [ "gp" ], out => [ "gp" ] },
ins => [ "base" ],
attr => "ir_entity *entity",
......@@ -326,7 +326,7 @@ FrameAddr => {
mode => $mode_gp,
},
Store => {
op_flags => "L|F",
op_flags => [ "labeled", "fragile" ],
state => "exc_pinned",
reg_req => { in => [ "gp", "gp", "none" ], out => [ "none" ] },
ins => [ "ptr", "val", "mem" ],
......@@ -339,7 +339,7 @@ Store => {
#NoReg_GP => {
# state => "pinned",
# op_flags => "c|NB|NI",
# op_flags => [ "constlike", "dump_noblcok", "dump_noinput" ],
# reg_req => { out => [ "gp_NOREG:I" ] },
# units => [],
# emit => "",
......
......@@ -202,7 +202,7 @@ my %cmp_shifter_operand_constructors = (
%nodes = (
Add => {
irn_flags => "R",
irn_flags => [ "rematerializable" ],
emit => '. add %D0, %S0, %SO',
mode => $mode_gp,
attr_type => "arm_shifter_operand_t",
......@@ -210,21 +210,21 @@ Add => {
},
Mul => {
irn_flags => "R",
irn_flags => [ "rematerializable" ],
reg_req => { in => [ "gp", "gp" ], out => [ "!in_r1" ] },
emit =>'. mul %D0, %S0, %S1',
mode => $mode_gp,
},
Smull => {
irn_flags => "R",
irn_flags => [ "rematerializable" ],
reg_req => { in => [ "gp", "gp" ], out => [ "gp", "gp" ] },
emit =>'. smull %D0, %D1, %S0, %S1',
outs => [ "low", "high" ],
},
Umull => {
irn_flags => "R",
irn_flags => [ "rematerializable" ],
reg_req => { in => [ "gp", "gp" ], out => [ "gp", "gp" ] },
emit =>'. umull %D0, %D1, %S0, %S1',
outs => [ "low", "high" ],
......@@ -232,14 +232,14 @@ Umull => {
},
Mla => {
irn_flags => "R",
irn_flags => [ "rematerializable" ],
reg_req => { in => [ "gp", "gp", "gp" ], out => [ "!in_r1" ] },
emit =>'. mla %D0, %S0, %S1, %S2',
mode => $mode_gp,
},
And => {
irn_flags => "R",
irn_flags => [ "rematerializable" ],
emit => '. and %D0, %S0, %SO',
mode => $mode_gp,
attr_type => "arm_shifter_operand_t",
......@@ -247,7 +247,7 @@ And => {
},
Or => {
irn_flags => "R",
irn_flags => [ "rematerializable" ],
emit => '. orr %D0, %S0, %SO',
mode => $mode_gp,
attr_type => "arm_shifter_operand_t",
......@@ -255,7 +255,7 @@ Or => {
},
Eor => {
irn_flags => "R",
irn_flags => [ "rematerializable" ],
emit => '. eor %D0, %S0, %SO',
mode => $mode_gp,
attr_type => "arm_shifter_operand_t",
......@@ -263,7 +263,7 @@ Eor => {
},
Bic => {
irn_flags => "R",
irn_flags => [ "rematerializable" ],
emit => '. bic %D0, %S0, %SO',
mode => $mode_gp,
attr_type => "arm_shifter_operand_t",
......@@ -271,7 +271,7 @@ Bic => {
},
Sub => {
irn_flags => "R",
irn_flags => [ "rematerializable" ],
emit => '. sub %D0, %S0, %SO',
mode => $mode_gp,
attr_type => "arm_shifter_operand_t",
......@@ -279,7 +279,7 @@ Sub => {
},
Rsb => {
irn_flags => "R",
irn_flags => [ "rematerializable" ],
emit => '. rsb %D0, %S0, %SO',
mode => $mode_gp,
attr_type => "arm_shifter_operand_t",
......@@ -287,7 +287,7 @@ Rsb => {
},
Mov => {
irn_flags => "R",
irn_flags => [ "rematerializable" ],
arity => "variable",
emit => '. mov %D0, %SO',
mode => $mode_gp,
......@@ -296,7 +296,7 @@ Mov => {
},
Mvn => {
irn_flags => "R",
irn_flags => [ "rematerializable" ],
attr_type => "arm_shifter_operand_t",
arity => "variable",
emit => '. mvn %D0, %SO',
......@@ -346,8 +346,8 @@ Bl => {
# this node produces ALWAYS an empty (tempary) gp reg and cannot be CSE'd
EmptyReg => {
op_flags => "c",
irn_flags => "R",
op_flags => [ "constlike" ],
irn_flags => [ "rematerializable" ],
reg_req => { out => [ "gp" ] },
emit => '. /* %D0 now available for calculations */',
cmp_attr => 'return 1;',
......@@ -355,7 +355,7 @@ EmptyReg => {
},
CopyB => {
op_flags => "F|H",
op_flags => [ "fragile" ],
state => "pinned",
attr => "unsigned size",
attr_type => "arm_CopyB_attr_t",
......@@ -364,8 +364,8 @@ CopyB => {
},
FrameAddr => {
op_flags => "c",
irn_flags => "R",
op_flags => [ "constlike" ],
irn_flags => [ "rematerializable" ],
attr => "ir_entity *entity, int symconst_offset",
reg_req => { in => [ "gp" ], out => [ "gp" ] },
ins => [ "base" ],
......@@ -374,8 +374,8 @@ FrameAddr => {
},
SymConst => {
op_flags => "c",
irn_flags => "R",
op_flags => [ "constlike" ],
irn_flags => [ "rematerializable" ],
attr => "ir_entity *entity, int symconst_offset",
reg_req => { out => [ "gp" ] },
attr_type => "arm_SymConst_attr_t",
......@@ -383,7 +383,7 @@ SymConst => {
},
Cmp => {
irn_flags => "R|F",
irn_flags => [ "rematerializable", "modify_flags" ],
emit => '. cmp %S0, %SO',
mode => $mode_flags,
attr_type => "arm_cmp_attr_t",
......@@ -391,7 +391,7 @@ Cmp => {
},
Tst => {
irn_flags => "R|F",
irn_flags => [ "rematerializable", "modify_flags" ],
emit => '. tst %S0, %SO',
mode => $mode_flags,
attr_type => "arm_cmp_attr_t",
......@@ -399,7 +399,7 @@ Tst => {
},
B => {
op_flags => "L|X|Y",
op_flags => [ "labeled", "cfopcode", "forking" ],
state => "pinned",
mode => "mode_T",
reg_req => { in => [ "flags" ], out => [ "none", "none" ] },
......@@ -410,14 +410,14 @@ B => {
Jmp => {
state => "pinned",
op_flags => "X",
irn_flags => "J",
op_flags => [ "cfopcode" ],
irn_flags => [ "simple_jump" ],
reg_req => { out => [ "none" ] },
mode => "mode_X",
},
SwitchJmp => {
op_flags => "L|X|Y",
op_flags => [ "labeled", "cfopcode", "forking" ],
state => "pinned",
mode => "mode_T",
attr => "int n_projs, long def_proj_num",
......@@ -428,7 +428,7 @@ SwitchJmp => {
},
Ldr => {
op_flags => "L|F",
op_flags => [ "labeled", "fragile" ],
state => "exc_pinned",
ins => [ "ptr", "mem" ],
outs => [ "res", "M" ],
......@@ -439,7 +439,7 @@ Ldr => {
},
Str => {
op_flags => "L|F",
op_flags => [ "labeled", "fragile" ],
state => "exc_pinned",
ins => [ "ptr", "val", "mem" ],
outs => [ "mem" ],
......@@ -451,8 +451,8 @@ Str => {
},
StoreStackM4Inc => {
op_flags => "L|F",
irn_flags => "R",
op_flags => [ "labeled", "fragile" ],
irn_flags => [ "rematerializable" ],
state => "exc_pinned",
reg_req => { in => [ "sp", "gp", "gp", "gp", "gp", "none" ], out => [ "sp:I|S", "none" ] },
emit => '. stmfd %S0!, {%S1, %S2, %S3, %S4}',
......@@ -460,8 +460,8 @@ StoreStackM4Inc => {
},
LoadStackM3Epilogue => {
op_flags => "L|F",
irn_flags => "R",
op_flags => [ "labeled", "fragile" ],
irn_flags => [ "rematerializable" ],
state => "exc_pinned",
reg_req => { in => [ "sp", "none" ], out => [ "r11:I", "sp:I|S", "pc:I", "none" ] },
emit => '. ldmfd %S0, {%D0, %D1, %D2}',
......@@ -471,7 +471,7 @@ LoadStackM3Epilogue => {
Adf => {
irn_flags => "R",
irn_flags => [ "rematerializable" ],
reg_req => { in => [ "fpa", "fpa" ], out => [ "fpa" ] },
emit => '. adf%AM %D0, %S0, %S1',
attr_type => "arm_farith_attr_t",
......@@ -480,7 +480,7 @@ Adf => {
},
Muf => {
irn_flags => "R",
irn_flags => [ "rematerializable" ],
reg_req => { in => [ "fpa", "fpa" ], out => [ "fpa" ] },
emit =>'. muf%AM %D0, %S0, %S1',
attr_type => "arm_farith_attr_t",
......@@ -489,7 +489,7 @@ Muf => {
},
Suf => {
irn_flags => "R",
irn_flags => [ "rematerializable" ],
reg_req => { in => [ "fpa", "fpa" ], out => [ "fpa" ] },
emit => '. suf%AM %D0, %S0, %S1',
attr_type => "arm_farith_attr_t",
......@@ -507,7 +507,7 @@ Dvf => {
},
Mvf => {
irn_flags => "R",
irn_flags => [ "rematerializable" ],
reg_req => { in => [ "fpa" ], out => [ "fpa" ] },
emit => '. mvf%AM %S0, %D0',
attr_type => "arm_farith_attr_t",
......@@ -516,7 +516,7 @@ Mvf => {
},
FltX => {
irn_flags => "R",
irn_flags => [ "rematerializable" ],
reg_req => { in => [ "gp" ], out => [ "fpa" ] },
emit => '. flt%AM %D0, %S0',
attr_type => "arm_farith_attr_t",
......@@ -525,7 +525,7 @@ FltX => {
},
Cmfe => {
irn_flags => "R|F",
irn_flags => [ "rematerializable", "modify_flags" ],
mode => $mode_flags,
attr_type => "arm_cmp_attr_t",
attr => "bool ins_permuted",
......@@ -535,7 +535,7 @@ Cmfe => {
},
Ldf => {
op_flags => "L|F",
op_flags => [ "labeled", "fragile" ],
state => "exc_pinned",
ins => [ "ptr", "mem" ],
outs => [ "res", "M" ],
......@@ -546,7 +546,7 @@ Ldf => {
},
Stf => {
op_flags => "L|F",
op_flags => [ "labeled", "fragile" ],
state => "exc_pinned",
ins => [ "ptr", "val", "mem" ],
outs => [ "M" ],
......@@ -561,8 +561,8 @@ Stf => {
# floating point constants
#
fConst => {
op_flags => "c",
irn_flags => "R",
op_flags => [ "constlike" ],
irn_flags => [ "rematerializable"</