|
593 | 593 | ; The iscompact attribute allows the epilogue expander to know for which |
594 | 594 | ; insns it should lengthen the return insn. |
595 | 595 | (define_insn "*movqi_insn" |
596 | | - [(set (match_operand:QI 0 "move_dest_operand" "=Rcq,Rcq#q, w, W, w, w,???w, w,Rcq, S,!*x,r,m,???m") |
597 | | - (match_operand:QI 1 "move_src_operand" " cL, cP,Rcq#q,WCm1,cL, I,?Rac,?i, T,Rcq,Usd,m,c,?Rac"))] |
| 596 | + [(set (match_operand:QI 0 "move_dest_operand" "=Rcq,Rcq#q, w, h, w, w,???w, w,Rcq, S,!*x,r,m,???m") |
| 597 | + (match_operand:QI 1 "move_src_operand" " cL, cP,Rcq#q,hCm1,cL, I,?Rac,?i, T,Rcq,Usd,m,c,?Rac"))] |
598 | 598 | "register_operand (operands[0], QImode) |
599 | 599 | || register_operand (operands[1], QImode)" |
600 | 600 | "@ |
|
624 | 624 | "if (prepare_move_operands (operands, HImode)) DONE;") |
625 | 625 |
|
626 | 626 | (define_insn "*movhi_insn" |
627 | | - [(set (match_operand:HI 0 "move_dest_operand" "=Rcq,Rcq#q, w, W, w,w,???w,Rcq#q, w,Rcq, S,r,m,???m,VUsc,VUsc") |
628 | | - (match_operand:HI 1 "move_src_operand" "cL, cP,Rcq#q,WCm1,cL,I,?Rac, ?i,?i, T,Rcq,m,c,?Rac, Cm3, i"))] |
| 627 | + [(set (match_operand:HI 0 "move_dest_operand" "=Rcq,Rcq#q, w, h, w,w,???w,Rcq#q, w,Rcq, S,r,m,???m,VUsc,VUsc") |
| 628 | + (match_operand:HI 1 "move_src_operand" "cL, cP,Rcq#q,hCm1,cL,I,?Rac, ?i,?i, T,Rcq,m,c,?Rac, Cm3, i"))] |
629 | 629 | "register_operand (operands[0], HImode) |
630 | 630 | || register_operand (operands[1], HImode) |
631 | 631 | || (CONSTANT_P (operands[1]) |
|
670 | 670 | ; insns it should lengthen the return insn. |
671 | 671 | ; N.B. operand 1 of alternative 7 expands into pcl,symbol@gotpc . |
672 | 672 | (define_insn "*movsi_insn" ; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
673 | | - [(set (match_operand:SI 0 "move_dest_operand" "=Rcq,Rcq#q, w, W, w,w, w,???w, ?w, w,Rcq#q, w,Rcq, S, Us<,RcqRck,!*x,!*Rsd,!*Rcd, r,Usd, m,???m,VUsc,VUsc") |
674 | | - (match_operand:SI 1 "move_src_operand" "cL, cP,Rcq#q,WCm1,cL,I,Crr,?Rac,Cpc,Clb, ?Cal,?Cal,Uts,Rcq,RcqRck, Us>,Usd, Usd, Ucd, m,!*x, c,?Rac, Cm3, C32"))] |
| 673 | + [(set (match_operand:SI 0 "move_dest_operand" "=Rcq,Rcq#q, w, h, w,w, w,???w, ?w, w,Rcq#q, w,Rcq, S, Us<,RcqRck,!*x,!*Rsd,!*Rcd, r,Usd, m,???m,VUsc,VUsc") |
| 674 | + (match_operand:SI 1 "move_src_operand" "cL, cP,Rcq#q,hCm1,cL,I,Crr,?Rac,Cpc,Clb, ?Cal,?Cal,Uts,Rcq,RcqRck, Us>,Usd, Usd, Ucd, m,!*x, c,?Rac, Cm3, C32"))] |
675 | 675 | "register_operand (operands[0], SImode) |
676 | 676 | || register_operand (operands[1], SImode) |
677 | 677 | || (CONSTANT_P (operands[1]) |
|
1046 | 1046 | "if (prepare_move_operands (operands, SFmode)) DONE;") |
1047 | 1047 |
|
1048 | 1048 | (define_insn "*movsf_insn" |
1049 | | - [(set (match_operand:SF 0 "move_dest_operand" "= W,w,w,r,m") |
1050 | | - (match_operand:SF 1 "move_src_operand" "WCm1,c,E,m,c"))] |
| 1049 | + [(set (match_operand:SF 0 "move_dest_operand" "= h,w,w,r,m") |
| 1050 | + (match_operand:SF 1 "move_src_operand" "hCm1,c,E,m,c"))] |
1051 | 1051 | "(register_operand (operands[0], SFmode) |
1052 | 1052 | || register_operand (operands[1], SFmode)) |
1053 | 1053 | && !(register_operand (operands[1], SFmode) && REGNO(operands[1]) == 58)" |
|
1650 | 1650 | ; register class 'W' instead of 'w'. |
1651 | 1651 | (define_insn_and_split "*addsi3_mixed" |
1652 | 1652 | ;; 0 1 2 3 4 5 6 7 8 9 a b c d e f 10 11 12 |
1653 | | - [(set (match_operand:SI 0 "dest_reg_operand" "=Rcq#q,Rcq, W,!*Rsd,Rcq,Rcb,Rcq, Rcqq,Rcqq,Rcw,Rcw, Rcw, W, W,W, W,Rcqq,Rcw, W") |
| 1653 | + [(set (match_operand:SI 0 "dest_reg_operand" "=Rcq#q,Rcq, h,!*Rsd,Rcq,Rcb,Rcq, Rcqq,Rcqq,Rcw,Rcw, Rcw, W, W,W, W,Rcqq,Rcw, W") |
1654 | 1654 | (plus:SI (match_operand:SI 1 "register_operand" "%0, c, 0, Rcqq, 0, 0,Rcb, Rcqq, 0, 0, c, 0, c, c,0, 0, 0, 0, c") |
1655 | 1655 | (match_operand:SI 2 "nonmemory_operand" "cL, 0, Cm1, L,CL2,Csp,CM4,RcqqK, cO, cL, 0,cCca,cLCmL,Cca,I,C2a, Cal,Cal,Cal")))] |
1656 | 1656 | "" |
|
3319 | 3319 | ;; modifed cc user if second, but not first operand is a compact register. |
3320 | 3320 | (define_insn "cmpsi_cc_insn_mixed" |
3321 | 3321 | [(set (reg:CC CC_REG) |
3322 | | - (compare:CC (match_operand:SI 0 "register_operand" "Rcq#q, W, c, c, qRcq, c") |
| 3322 | + (compare:CC (match_operand:SI 0 "register_operand" "Rcq#q, h, c, c, qRcq, c") |
3323 | 3323 | (match_operand:SI 1 "nonmemory_operand" " cO,Cm1,cI,cL, Cal, Cal")))] |
3324 | 3324 | "" |
3325 | 3325 | "cmp%? %0,%B1%&" |
|
3405 | 3405 |
|
3406 | 3406 | (define_insn "*cmpsi_cc_c_insn" |
3407 | 3407 | [(set (reg:CC_C CC_REG) |
3408 | | - (compare:CC_C (match_operand:SI 0 "register_operand" "Rcqq, W, c,Rcqq, c") |
| 3408 | + (compare:CC_C (match_operand:SI 0 "register_operand" "Rcqq, h, c,Rcqq, c") |
3409 | 3409 | (match_operand:SI 1 "nonmemory_operand" " cO,Cm1,cI, Cal,Cal")))] |
3410 | 3410 | "" |
3411 | 3411 | "cmp%? %0,%S1%&" |
|
3502 | 3502 | [(cond_exec |
3503 | 3503 | (ne (match_operand:CC_Z 2 "cc_use_register" "Rcc, Rcc, Rcc,Rcc, Rcc,Rcc") (const_int 0)) |
3504 | 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")))] |
| 3505 | + (match_operand:SI 1 "nonmemory_operand" "C_0, h, ?Cal, Lc,?Rac,?Cal")))] |
3506 | 3506 | "" |
3507 | 3507 | "@ |
3508 | 3508 | * current_insn_predicate = 0; return \"sub%?.ne %0,%0,%0%&\"; |
|
0 commit comments