aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/csky
diff options
context:
space:
mode:
authorGeng Qi <gengqi@linux.alibaba.com>2021-05-25 18:45:25 +0800
committerXianmiao Qu <xianmiao_qu@c-sky.com>2021-05-26 10:05:18 +0800
commit94079e642d95ba4bcb75354d6cd628a473a94479 (patch)
tree779faf1ac9a00a71332bd536cdd178dbf1d601a0 /gcc/config/csky
parent1fd76b24306ed4df4cf9e797d900699ed59ce7f7 (diff)
downloadgcc-94079e642d95ba4bcb75354d6cd628a473a94479.zip
gcc-94079e642d95ba4bcb75354d6cd628a473a94479.tar.gz
gcc-94079e642d95ba4bcb75354d6cd628a473a94479.tar.bz2
C-SKY: Add instruction "ld.bs".
gcc/ * config/csky/csky.md (cskyv2_sextend_ldbs): New. gcc/testsuite/ * gcc.target/csky/ldbs.c: New.
Diffstat (limited to 'gcc/config/csky')
-rw-r--r--gcc/config/csky/csky.md10
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/config/csky/csky.md b/gcc/config/csky/csky.md
index c27d627..b980d4c 100644
--- a/gcc/config/csky/csky.md
+++ b/gcc/config/csky/csky.md
@@ -1533,6 +1533,7 @@
}"
)
+;; hi -> si
(define_insn "extendhisi2"
[(set (match_operand:SI 0 "register_operand" "=r")
(sign_extend:SI (match_operand:HI 1 "register_operand" "r")))]
@@ -1557,6 +1558,15 @@
"sextb %0, %1"
)
+(define_insn "*cskyv2_sextend_ldbs"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (sign_extend:SI (match_operand:QI 1 "csky_simple_mem_operand" "m")))]
+ "CSKY_ISA_FEATURE (E2)"
+ "ld.bs\t%0, %1"
+ [(set_attr "length" "4")
+ (set_attr "type" "load")]
+)
+
;; qi -> hi
(define_insn "extendqihi2"
[(set (match_operand:HI 0 "register_operand" "=r")