aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorClaudiu Zissulescu <claziss@gmail.com>2023-08-29 09:00:09 +0300
committerClaudiu Zissulescu <claziss@gmail.com>2023-08-31 07:55:19 +0300
commit7ed0732273a65caa747f1cbf5f0443ee536116db (patch)
tree5ea9dc1e9f207011582f8b12aeda08a83398e999 /gcc
parent68ec7d752d07ecdc7475b0021da28d9645cd8516 (diff)
downloadgcc-7ed0732273a65caa747f1cbf5f0443ee536116db.zip
gcc-7ed0732273a65caa747f1cbf5f0443ee536116db.tar.gz
gcc-7ed0732273a65caa747f1cbf5f0443ee536116db.tar.bz2
arc: Honor SWAP option for lsl16 instruction
The LSL16 instruction is only available if SWAP (-mswap) option is turned on. gcc/ChangeLog: * config/arc/arc.cc (arc_split_mov_const): Use LSL16 only when SWAP option is enabled. * config/arc/arc.md (ashlsi2_cnt16): Likewise. Signed-off-by: Claudiu Zissulescu <claziss@gmail.com>
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/arc/arc.cc2
-rw-r--r--gcc/config/arc/arc.md2
2 files changed, 2 insertions, 2 deletions
diff --git a/gcc/config/arc/arc.cc b/gcc/config/arc/arc.cc
index 266ba8b..8ee7387 100644
--- a/gcc/config/arc/arc.cc
+++ b/gcc/config/arc/arc.cc
@@ -11647,7 +11647,7 @@ arc_split_mov_const (rtx *operands)
}
/* 3. Check if we can just shift by 16 to fit into the u6 of LSL16. */
- if (TARGET_BARREL_SHIFTER && TARGET_V2
+ if (TARGET_SWAP && TARGET_V2
&& ((ival & ~0x3f0000) == 0))
{
shimm = (ival >> 16) & 0x3f;
diff --git a/gcc/config/arc/arc.md b/gcc/config/arc/arc.md
index 1f122d9..a4e77a2 100644
--- a/gcc/config/arc/arc.md
+++ b/gcc/config/arc/arc.md
@@ -5991,7 +5991,7 @@ archs4x, archs4xd"
[(set (match_operand:SI 0 "register_operand" "=r")
(ashift:SI (match_operand:SI 1 "nonmemory_operand" "rL")
(const_int 16)))]
- "TARGET_BARREL_SHIFTER && TARGET_V2"
+ "TARGET_SWAP && TARGET_V2"
"lsl16\\t%0,%1"
[(set_attr "type" "shift")
(set_attr "iscompact" "false")