+my %binopcc_operand_constructors = (
+ imm => {
+ attr => "ir_entity *immediate_entity, int32_t immediate_value",
+ custominit => "sparc_set_attr_imm(res, immediate_entity, immediate_value);",
+ reg_req => { in => [ "gp" ], out => [ "gp", "flags" ] },
+ ins => [ "left" ],
+ },
+ reg => {
+ reg_req => { in => [ "gp", "gp" ], out => [ "gp", "flags" ] },
+ ins => [ "left", "right" ],
+ },
+);
+
+my %binopx_operand_constructors = (
+ imm => {
+ attr => "ir_entity *immediate_entity, int32_t immediate_value",
+ custominit => "sparc_set_attr_imm(res, immediate_entity, immediate_value);",
+ reg_req => { in => [ "gp", "flags" ], out => [ "gp" ] },
+ ins => [ "left", "carry" ],
+ },
+ reg => {
+ reg_req => { in => [ "gp", "gp", "flags" ], out => [ "gp" ] },
+ ins => [ "left", "right", "carry" ],
+ },
+);
+
+