constructors => \%binop_operand_constructors,
},
-Slr => {
+Srl => {
irn_flags => [ "rematerializable" ],
mode => $mode_gp,
emit => '. srl %S0, %R1I, %D0',
attr => "ir_mode *fp_mode",
ins => [ "left", "right" ],
outs => [ "res", "M" ],
- constructors => \%float_binop_constructors,
+ constructors => {
+ s => {
+ reg_req => { in => [ "fp", "fp" ], out => [ "fp", "none" ] },
+ },
+ d => {
+ reg_req => { in => [ "fp:a|2", "fp:a|2" ], out => [ "fp:a|2", "none" ] },
+ },
+ q => {
+ reg_req => { in => [ "fp:a|4", "fp:a|4" ], out => [ "fp:a|4", "none" ] },
+ }
+ },
},
fneg => {
fitof => {
irn_flags => [ "rematerializable" ],
- reg_req => { in => [ "gp" ], out => [ "fp" ] },
emit => '. fito%FPM %S0, %D0',
attr_type => "sparc_fp_attr_t",
attr => "ir_mode *fp_mode",
constructors => {
s => {
- reg_req => { in => [ "gp" ], out => [ "fp" ] },
+ reg_req => { in => [ "fp" ], out => [ "fp" ] },
mode => $mode_fp,
},
d => {
- reg_req => { in => [ "gp" ], out => [ "fp:a|2" ] },
+ reg_req => { in => [ "fp" ], out => [ "fp:a|2" ] },
mode => $mode_fp2,
},
q => {
- reg_req => { in => [ "gp" ], out => [ "fp:a|4" ] },
+ reg_req => { in => [ "fp" ], out => [ "fp:a|4" ] },
mode => $mode_fp4,
},
},
fftoi => {
irn_flags => [ "rematerializable" ],
- reg_req => { in => [ "fp" ], out => [ "gp" ] },
- emit => '. f%FPM.toi %S0, %D0',
+ emit => '. f%FPM%.toi %S0, %D0',
attr_type => "sparc_fp_attr_t",
attr => "ir_mode *fp_mode",
mode => $mode_gp,
constructors => {
s => {
- reg_req => { in => [ "gp" ], out => [ "gp" ] },
+ reg_req => { in => [ "fp" ], out => [ "fp" ] },
},
d => {
- reg_req => { in => [ "fp:a|2" ], out => [ "gp" ] },
+ reg_req => { in => [ "fp:a|2" ], out => [ "fp" ] },
},
q => {
- reg_req => { in => [ "fp:a|4" ], out => [ "gp" ] },
+ reg_req => { in => [ "fp:a|4" ], out => [ "fp" ] },
},
},
},
attr_type => "sparc_load_store_attr_t",
attr => "ir_mode *ls_mode, ir_entity *entity, int32_t offset, bool is_frame_entity",
custominit => "init_sparc_load_store_attributes(res, ls_mode, entity, offset, is_frame_entity, false);",
- emit => '. st%FLSM %S1, [%S0%O1]',
+ emit => '. st%FLSM %S0, [%S1%O2]',
mode => 'mode_M',
},