diff options
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.patch | 58 |
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 @@ | |||
1 | From fbf853f0b9571529dcc72fc53adf4a35abd3e050 Mon Sep 17 00:00:00 2001 | ||
2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | ||
3 | Date: Tue, 13 Sep 2022 16:45:41 +0530 | ||
4 | Subject: [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 | |||
18 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md | ||
19 | index 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 | -- | ||
57 | 2.34.1 | ||
58 | |||