diff options
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.patch | 42 |
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 @@ | |||
| 1 | From 79d007fea870a3b8d72faa90238cee2cdfaf5c85 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Gopi Kumar Bulusu <gopi@sankhya.com> | ||
| 3 | Date: Fri, 28 Jun 2024 12:18:38 +0530 | ||
| 4 | Subject: [PATCH 54/54] Fix failure with gcc.c-torture/execute/ashrdi-1.c -Os | ||
| 5 | execution test | ||
| 6 | |||
| 7 | The following tests fail with -Os option because a shift instruction | ||
| 8 | in a branch delay slot gets replaced with multiple instructions when | ||
| 9 | the processor has no barrel shifter. This fix addresses the problem | ||
| 10 | by marking the responsible instruction pattern as type multi preventing | ||
| 11 | it 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 | |||
| 20 | These tests pass with this fix. | ||
| 21 | |||
| 22 | Signed-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 | |||
| 27 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md | ||
| 28 | index 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 | -- | ||
| 41 | 2.34.1 | ||
| 42 | |||
