|
1048 | 1048 | (const_string "alu_shift_reg")))]
|
1049 | 1049 | )
|
1050 | 1050 |
|
| 1051 | +(define_insn "*subsi3_carryin_shift_alt" |
| 1052 | + [(set (match_operand:SI 0 "s_register_operand" "=r") |
| 1053 | + (minus:SI (minus:SI |
| 1054 | + (match_operand:SI 1 "s_register_operand" "r") |
| 1055 | + (match_operand:SI 5 "arm_borrow_operation" "")) |
| 1056 | + (match_operator:SI 2 "shift_operator" |
| 1057 | + [(match_operand:SI 3 "s_register_operand" "r") |
| 1058 | + (match_operand:SI 4 "reg_or_int_operand" "rM")])))] |
| 1059 | + "TARGET_32BIT" |
| 1060 | + "sbc%?\\t%0, %1, %3%S2" |
| 1061 | + [(set_attr "conds" "use") |
| 1062 | + (set_attr "predicable" "yes") |
| 1063 | + (set (attr "type") (if_then_else (match_operand 4 "const_int_operand" "") |
| 1064 | + (const_string "alu_shift_imm") |
| 1065 | + (const_string "alu_shift_reg")))] |
| 1066 | +) |
| 1067 | + |
1051 | 1068 | (define_insn "*rsbsi3_carryin_shift"
|
1052 | 1069 | [(set (match_operand:SI 0 "s_register_operand" "=r")
|
1053 | 1070 | (minus:SI (minus:SI
|
|
1065 | 1082 | (const_string "alu_shift_reg")))]
|
1066 | 1083 | )
|
1067 | 1084 |
|
| 1085 | +(define_insn "*rsbsi3_carryin_shift_alt" |
| 1086 | + [(set (match_operand:SI 0 "s_register_operand" "=r") |
| 1087 | + (minus:SI (minus:SI |
| 1088 | + (match_operator:SI 2 "shift_operator" |
| 1089 | + [(match_operand:SI 3 "s_register_operand" "r") |
| 1090 | + (match_operand:SI 4 "reg_or_int_operand" "rM")]) |
| 1091 | + (match_operand:SI 5 "arm_borrow_operation" "")) |
| 1092 | + (match_operand:SI 1 "s_register_operand" "r")))] |
| 1093 | + "TARGET_ARM" |
| 1094 | + "rsc%?\\t%0, %1, %3%S2" |
| 1095 | + [(set_attr "conds" "use") |
| 1096 | + (set_attr "predicable" "yes") |
| 1097 | + (set (attr "type") (if_then_else (match_operand 4 "const_int_operand" "") |
| 1098 | + (const_string "alu_shift_imm") |
| 1099 | + (const_string "alu_shift_reg")))] |
| 1100 | +) |
| 1101 | + |
1068 | 1102 | ; transform ((x << y) - 1) to ~(~(x-1) << y) Where X is a constant.
|
1069 | 1103 | (define_split
|
1070 | 1104 | [(set (match_operand:SI 0 "s_register_operand" "")
|
|
0 commit comments