|
247 | 247 | - get_attr_length (insn)"))) |
248 | 248 |
|
249 | 249 | ; for ARCv2 we need to disable/enable different instruction alternatives |
250 | | -(define_attr "cpu_facility" "standard,arcv1,em,cd" |
| 250 | +(define_attr "cpu_facility" "standard,arcv1,em,cd,dis" |
251 | 251 | (const_string "standard")) |
252 | 252 |
|
253 | 253 | ; We should consider all the instructions enabled until otherwise |
|
265 | 265 | (not (and (match_test "TARGET_V2") |
266 | 266 | (match_test "TARGET_CODE_DENSITY")))) |
267 | 267 | (const_string "no") |
| 268 | + |
| 269 | + (eq_attr "cpu_facility" "dis") |
| 270 | + (const_string "no") |
268 | 271 | ] |
269 | 272 | (const_string "yes"))) |
270 | 273 |
|
|
3497 | 3500 | ; cond_exec patterns |
3498 | 3501 | (define_insn "*movsi_ne" |
3499 | 3502 | [(cond_exec |
3500 | | - (ne (match_operand:CC_Z 2 "cc_use_register" "Rcc,Rcc,Rcc") (const_int 0)) |
3501 | | - (set (match_operand:SI 0 "dest_reg_operand" "=Rcq#q,w,w") |
3502 | | - (match_operand:SI 1 "nonmemory_operand" "C_0,Lc,?Cal")))] |
| 3503 | + (ne (match_operand:CC_Z 2 "cc_use_register" "Rcc, Rcc, Rcc,Rcc, Rcc,Rcc") (const_int 0)) |
| 3504 | + (set (match_operand:SI 0 "dest_reg_operand" "=Rcq#q,Rcq#q,Rcq#q, w,???w,w") |
| 3505 | + (match_operand:SI 1 "nonmemory_operand" "C_0, W, ?Cal, Lc,?Rac,?Cal")))] |
3503 | 3506 | "" |
3504 | 3507 | "@ |
3505 | 3508 | * current_insn_predicate = 0; return \"sub%?.ne %0,%0,%0%&\"; |
| 3509 | + mov_s.ne %0,%1 |
| 3510 | + mov_s.ne %0,%1 |
| 3511 | + mov.ne %0,%1 |
3506 | 3512 | mov.ne %0,%1 |
3507 | 3513 | mov.ne %0,%S1" |
3508 | | - [(set_attr "type" "cmove,cmove,cmove") |
3509 | | - (set_attr "iscompact" "true,false,false") |
3510 | | - (set_attr "length" "2,4,8")]) |
| 3514 | + [(set_attr "type" "cmove,cmove,cmove,cmove,cmove,cmove") |
| 3515 | + (set_attr "iscompact" "true,true,true_limm,false,false,false") |
| 3516 | + (set_attr "length" "2,2,6,4,4,8") |
| 3517 | + (set_attr "cpu_facility" "*,dis,dis,*,*,*")]) |
3511 | 3518 |
|
3512 | 3519 | (define_insn "*movsi_cond_exec" |
3513 | 3520 | [(cond_exec |
|
0 commit comments