summaryrefslogtreecommitdiffstats
path: root/meta-microblaze/recipes-devtools/gcc/gcc-13/0053-Add-Zero_extended-instructions.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-microblaze/recipes-devtools/gcc/gcc-13/0053-Add-Zero_extended-instructions.patch')
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-13/0053-Add-Zero_extended-instructions.patch58
1 files changed, 58 insertions, 0 deletions
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-13/0053-Add-Zero_extended-instructions.patch b/meta-microblaze/recipes-devtools/gcc/gcc-13/0053-Add-Zero_extended-instructions.patch
new file mode 100644
index 00000000..52017a9d
--- /dev/null
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-13/0053-Add-Zero_extended-instructions.patch
@@ -0,0 +1,58 @@
1From fbf853f0b9571529dcc72fc53adf4a35abd3e050 Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Tue, 13 Sep 2022 16:45:41 +0530
4Subject: [PATCH 53/54] Add Zero_extended instructions
5
6 Due to latest changes in GCC-10.2 MB64 perforamance has reduced
7 We have added zero_extended instructions to get rid of left shift
8 and right shift loops
9
10 [CR/TSR]: TSR-974519
11
12 Signed-off-by: Nagaraju Mekala<nmekala@xilinx.com>
13 Mahesh Bodapati<mbodapat@xilinx.com>
14---
15 gcc/config/microblaze/microblaze.md | 27 +++++++++++++++++++++++++++
16 1 file changed, 27 insertions(+)
17
18diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md
19index f41474feca6..aff98604db7 100644
20--- a/gcc/config/microblaze/microblaze.md
21+++ b/gcc/config/microblaze/microblaze.md
22@@ -1191,6 +1191,33 @@
23 (set_attr "mode" "SI,SI,SI")
24 (set_attr "length" "4,4,8")])
25
26+(define_insn "zero_extendhidi2"
27+ [(set (match_operand:DI 0 "register_operand" "=d")
28+ (zero_extend:DI (match_operand:HI 1 "register_operand" "d")))]
29+ "TARGET_MB_64"
30+ "andli\t%0,%1,0xffff"
31+ [(set_attr "type" "no_delay_arith")
32+ (set_attr "mode" "DI")
33+ (set_attr "length" "8")])
34+
35+(define_insn "zero_extendsidi2"
36+ [(set (match_operand:DI 0 "register_operand" "=d")
37+ (zero_extend:DI (match_operand:SI 1 "register_operand" "d")))]
38+ "TARGET_MB_64"
39+ "andli\t%0,%1,0xffffffff"
40+ [(set_attr "type" "no_delay_arith")
41+ (set_attr "mode" "DI")
42+ (set_attr "length" "8")])
43+
44+(define_insn "zero_extendqidi2"
45+ [(set (match_operand:DI 0 "register_operand" "=d")
46+ (zero_extend:DI (match_operand:QI 1 "register_operand" "d")))]
47+ "TARGET_MB_64"
48+ "andli\t%0,%1,0x00ff"
49+ [(set_attr "type" "no_delay_arith")
50+ (set_attr "mode" "DI")
51+ (set_attr "length" "8")])
52+
53 ;;----------------------------------------------------------------
54 ;; Sign extension
55 ;;----------------------------------------------------------------
56--
572.34.1
58