-#---------------------------------------------------#
-# __ _ #
-# / _| | | #
-# | |_ _ __ __ _ _ __ ___ __| | ___ ___ #
-# | _| '_ \ / _` | | '_ \ / _ \ / _` |/ _ \/ __| #
-# | | | |_) | (_| | | | | | (_) | (_| | __/\__ \ #
-# |_| | .__/ \__,_| |_| |_|\___/ \__,_|\___||___/ #
-# | | #
-# |_| #
-#---------------------------------------------------#
-
-# commutative operations
-
-fpaAdf => {
- op_flags => "C",
- irn_flags => "R",
- comment => "construct FPA Add: Add(a, b) = Add(b, a) = a + b",
- reg_req => { "in" => [ "fpa", "fpa" ], "out" => [ "fpa" ] },
- emit => '. adf%M %D0, %S0, %S1',
-},
-
-fpaAdf_i => {
- irn_flags => "R",
- comment => "construct FPA Add: Add(a, b) = Add(b, a) = a + b",
- attr => "long imm",
- init_attr => 'ARM_SET_FPA_IMM(attr); attr->imm_value = imm;',
- cmp_attr => 'return attr_a->imm_value != attr_b->imm_value;',
- reg_req => { "in" => [ "fpa" ], "out" => [ "fpa" ] },
- emit => '. adf%M %D0, %S0, %C',
-},
-
-fpaMuf => {
- op_flags => "C",
- irn_flags => "R",
- comment => "construct FPA Mul: Mul(a, b) = Mul(b, a) = a * b",
- reg_req => { "in" => [ "fpa", "fpa" ], "out" => [ "fpa" ] },
- emit =>'. muf%M %D0, %S0, %S1',
-},
-
-fpaMuf_i => {
- irn_flags => "R",
- comment => "construct FPA Mul: Mul(a, b) = Mul(b, a) = a * b",
- attr => "long imm",
- init_attr => 'ARM_SET_FPA_IMM(attr); attr->imm_value = imm;',
- cmp_attr => 'return attr_a->imm_value != attr_b->imm_value;',
- reg_req => { "in" => [ "fpa" ], "out" => [ "fpa" ] },
- emit => '. muf%M %D0, %S0, %C',
-},
-
-fpaFml => {
- op_flags => "C",
- irn_flags => "R",
- comment => "construct FPA Fast Mul: Mul(a, b) = Mul(b, a) = a * b",
- reg_req => { "in" => [ "fpa", "fpa" ], "out" => [ "fpa" ] },
- emit =>'. fml%M %D0, %S0, %S1',
-},
-
-fpaMax => {
- op_flags => "C",
- irn_flags => "R",
- comment => "construct FPA Max: Max(a, b) = Max(b, a) = a > b ? a : b",
- reg_req => { "in" => [ "fpa", "fpa" ], "out" => [ "fpa" ] },
- emit =>'. fmax %S0, %S1, %D0',
-},
-
-fpaMin => {
- op_flags => "C",
- irn_flags => "R",
- comment => "construct FPA Min: Min(a, b) = Min(b, a) = a < b ? a : b",
- reg_req => { "in" => [ "fpa", "fpa" ], "out" => [ "fpa" ] },
- emit =>'. fmin %S0, %S1, %D0',
-},
-
-# not commutative operations
-
-fpaSuf => {
- irn_flags => "R",
- comment => "construct FPA Sub: Sub(a, b) = a - b",
- reg_req => { "in" => [ "fpa", "fpa" ], "out" => [ "fpa" ] },
- emit => '. suf%M %D0, %S0, %S1'
-},
-
-fpaSuf_i => {
- irn_flags => "R",
- comment => "construct FPA Sub: Sub(a, b) = a - b",
- attr => "long imm",
- init_attr => 'ARM_SET_FPA_IMM(attr); attr->imm_value = imm;',
- cmp_attr => 'return attr_a->imm_value != attr_b->imm_value;',
- reg_req => { "in" => [ "fpa" ], "out" => [ "fpa" ] },
- emit => '. suf%M %D0, %S0, %C'
-},
-
-fpaRsf => {
- irn_flags => "R",
- comment => "construct FPA reverse Sub: Sub(a, b) = b - a",
- reg_req => { "in" => [ "fpa", "fpa" ], "out" => [ "fpa" ] },
- emit => '. rsf%M %D0, %S0, %S1'
-},
-
-fpaRsf_i => {
- irn_flags => "R",
- comment => "construct FPA reverse Sub: Sub(a, b) = b - a",
- attr => "long imm",
- init_attr => 'ARM_SET_FPA_IMM(attr); attr->imm_value = imm;',
- cmp_attr => 'return attr_a->imm_value != attr_b->imm_value;',
- reg_req => { "in" => [ "fpa" ], "out" => [ "fpa" ] },
- emit => '. rsf%M %D0, %S0, %C'
-},