diff options
author | Jeff Law <law@gcc.gnu.org> | 1992-10-01 11:06:29 -0600 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1992-10-01 11:06:29 -0600 |
commit | 9c36061e487695a08080999ba6761c4a58cc41a0 (patch) | |
tree | 8e638d247fb066eabd4e84fec121f1a63e9fd014 /gcc | |
parent | caba9473d7381b3ba3f5c9415027f115ac4f2779 (diff) | |
download | gcc-9c36061e487695a08080999ba6761c4a58cc41a0.zip gcc-9c36061e487695a08080999ba6761c4a58cc41a0.tar.gz gcc-9c36061e487695a08080999ba6761c4a58cc41a0.tar.bz2 |
pa.md (add high part and dp register): Split into two patterns, one for normal code, one for kernels.
* pa.md (add high part and dp register): Split into two patterns,
one for normal code, one for kernels. Kernel version only allows
"r1" as the destination register.
From-SVN: r2298
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/pa/pa.md | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md index f2651c5..6e72606 100644 --- a/gcc/config/pa/pa.md +++ b/gcc/config/pa/pa.md @@ -751,13 +751,23 @@ [(set (match_operand:SI 0 "register_operand" "=a,&?*r") (plus:SI (match_operand:SI 1 "register_operand" "r,r") (high:SI (match_operand 2 "" ""))))] - "" + "!TARGET_KERNEL" "@ addil L'%G2,%1 ldil L'%G2,%0\;add %0,%1,%0" [(set_attr "type" "binary,binary") (set_attr "length" "1,2")]) +(define_insn "" + [(set (match_operand:SI 0 "register_operand" "=a") + (plus:SI (match_operand:SI 1 "register_operand" "r") + (high:SI (match_operand 2 "" ""))))] + "TARGET_KERNEL" + "@ + addil L'%G2,%1" + [(set_attr "type" "binary") + (set_attr "length" "1")]) + (define_split [(set (match_operand:SI 0 "register_operand" "") (plus:SI (match_operand:SI 1 "register_operand" "") |