summaryrefslogtreecommitdiffstats
path: root/meta-microblaze/recipes-devtools/gcc/gcc-13/0054-Fix-failure-with-gcc.c-torture-execute-ashrdi-1.c-Os.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-microblaze/recipes-devtools/gcc/gcc-13/0054-Fix-failure-with-gcc.c-torture-execute-ashrdi-1.c-Os.patch')
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-13/0054-Fix-failure-with-gcc.c-torture-execute-ashrdi-1.c-Os.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-13/0054-Fix-failure-with-gcc.c-torture-execute-ashrdi-1.c-Os.patch b/meta-microblaze/recipes-devtools/gcc/gcc-13/0054-Fix-failure-with-gcc.c-torture-execute-ashrdi-1.c-Os.patch
new file mode 100644
index 00000000..ec8bc0cf
--- /dev/null
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-13/0054-Fix-failure-with-gcc.c-torture-execute-ashrdi-1.c-Os.patch
@@ -0,0 +1,42 @@
1From 79d007fea870a3b8d72faa90238cee2cdfaf5c85 Mon Sep 17 00:00:00 2001
2From: Gopi Kumar Bulusu <gopi@sankhya.com>
3Date: Fri, 28 Jun 2024 12:18:38 +0530
4Subject: [PATCH 54/54] Fix failure with gcc.c-torture/execute/ashrdi-1.c -Os
5 execution test
6
7The following tests fail with -Os option because a shift instruction
8in a branch delay slot gets replaced with multiple instructions when
9the processor has no barrel shifter. This fix addresses the problem
10by marking the responsible instruction pattern as type multi preventing
11it from being placed in a delay slot.
12
13> gcc.c-torture/execute/ashrdi-1.c -Os execution test
14> gcc.c-torture/execute/pr40057.c -Os execution test
15> gcc.c-torture/execute/pr79121.c -Os execution test
16> gcc.c-torture/execute/pr82524.c -Os execution test
17> c-c++-common/torture/vector-compare-1.c -Os execution test
18> gcc.dg/torture/vec-cvt-1.c -Os execution test
19
20These tests pass with this fix.
21
22Signed-off-by: Gopi Kumar Bulusu <gopi@sankhya.com>
23---
24 gcc/config/microblaze/microblaze.md | 2 +-
25 1 file changed, 1 insertion(+), 1 deletion(-)
26
27diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md
28index aff98604db7..0e3981390c8 100644
29--- a/gcc/config/microblaze/microblaze.md
30+++ b/gcc/config/microblaze/microblaze.md
31@@ -2286,7 +2286,7 @@ else
32 output_asm_insn ("bneid\t%3,.-4", operands);
33 return "sra\t%0,%0";
34 }
35- [(set_attr "type" "arith")
36+ [(set_attr "type" "multi")
37 (set_attr "mode" "SI")
38 (set_attr "length" "20")]
39 )
40--
412.34.1
42