|
191 | 191 | ;; Instruction types and attributes
|
192 | 192 | ;; -------------------------------------------------------------------
|
193 | 193 |
|
194 |
| -(define_attr "type" "abs, add, addl, and, andl, asl, asll, asr, asrl, |
195 |
| -bl, block, bmsk, branch, branchcc, bset, bsetl, bxor, bxorl, compare, |
196 |
| -div, jl, jump, ld, lsr, lsrl, max, maxl, min, minl, move, neg, nop, |
197 |
| -norm, normh, norml, not, notl, or, orl, rem, reml, remu, remul, |
198 |
| -return, ror, setcc, sex, st, sub, subl, swape, swapel, udiv, udivl, |
199 |
| -unknown, xor, xorl" |
| 194 | +(define_attr "type" "abs, add, addhl, addl, and, andl, asl, asll, asr, |
| 195 | +asrl, bl, block, bmsk, branch, branchcc, bset, bsetl, bxor, bxorl, |
| 196 | +compare, div, jl, jump, ld, lsr, lsrl, max, maxl, min, minl, move, |
| 197 | +neg, nop, norm, normh, norml, not, notl, or, orl, rem, reml, remu, |
| 198 | +remul, return, ror, setcc, sex, st, sub, subl, swape, swapel, udiv, |
| 199 | +udivl, unknown, xor, xorl" |
200 | 200 | (const_string "unknown"))
|
201 | 201 |
|
202 | 202 | (define_attr "iscompact" "yes,no,maybe" (const_string "no"))
|
@@ -409,14 +409,30 @@ unknown, xor, xorl"
|
409 | 409 |
|
410 | 410 | (define_insn "*movdi_lo_sum_iori"
|
411 | 411 | [(set (match_operand:DI 0 "register_operand" "=q, r, h, r")
|
412 |
| - (lo_sum:DI (match_operand:DI 1 "register_operand" "0, r, 0, r") |
| 412 | + (lo_sum:DI (match_operand:DI 1 "register_operand" "0, 0, 0, r") |
413 | 413 | (match_operand:DI 2 "immediate_operand" "q,S12S0,SymIm,SymIm")))]
|
414 | 414 | ""
|
415 | 415 | "orl%?\\t%0,%1,%L2"
|
416 | 416 | [(set_attr "type" "or")
|
417 | 417 | (set_attr "iscompact" "yes,no,yes,no")
|
418 | 418 | (set_attr "length" "2,4,6,8")])
|
419 | 419 |
|
| 420 | +(define_insn "*adddi_high" |
| 421 | + [(set (match_operand:DI 0 "register_operand" "= qh, r, r,r, r") |
| 422 | + (plus:DI (match_operand:DI 1 "register_operand" " 0, 0, r,r, r") |
| 423 | + (high:DI |
| 424 | + (match_operand:DI 2 "nonmemory_operand" "S32S0,S12S0,U06S0,r,S32S0"))))] |
| 425 | + "" |
| 426 | + "@ |
| 427 | + addhl_s\\t%0,%1,%2 |
| 428 | + addhl\\t%0,%1,%2 |
| 429 | + addhl\\t%0,%1,%2 |
| 430 | + addhl\\t%0,%1,%2 |
| 431 | + addhl\\t%0,%1,%2" |
| 432 | + [(set_attr "type" "addhl") |
| 433 | + (set_attr "iscompact" "yes,no,no,no,no") |
| 434 | + (set_attr "length" "6,4,4,4,8")]) |
| 435 | + |
420 | 436 | ;; -------------------------------------------------------------------
|
421 | 437 | ;; Subroutine calls and sibcalls
|
422 | 438 | ;; -------------------------------------------------------------------
|
|
0 commit comments