summaryrefslogtreecommitdiffstats
path: root/meta-microblaze/recipes-devtools/gcc/gcc-13/0019-Update-ashlsi3-movsf-patterns-This-patch-removes-the.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-microblaze/recipes-devtools/gcc/gcc-13/0019-Update-ashlsi3-movsf-patterns-This-patch-removes-the.patch')
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-13/0019-Update-ashlsi3-movsf-patterns-This-patch-removes-the.patch75
1 files changed, 75 insertions, 0 deletions
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-13/0019-Update-ashlsi3-movsf-patterns-This-patch-removes-the.patch b/meta-microblaze/recipes-devtools/gcc/gcc-13/0019-Update-ashlsi3-movsf-patterns-This-patch-removes-the.patch
new file mode 100644
index 00000000..0f388f70
--- /dev/null
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-13/0019-Update-ashlsi3-movsf-patterns-This-patch-removes-the.patch
@@ -0,0 +1,75 @@
1From a969ab3f04de077eca6d928dd651e3c6b042367d Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Tue, 17 Jan 2017 18:18:41 +0530
4Subject: [PATCH 19/54] Update ashlsi3 & movsf patterns This patch removes the
5 use of HOST_WIDE_INT_PRINT_HEX macro in print_operand of
6 ashlsi3_with_mul_nodelay,ashlsi3_with_mul_delay and movsf_internal patterns
7 beacuse HOST_WIDE_INT_PRINT_HEX is generating 64-bit value which our
8 instruction doesn't support so using gen_int_mode function
9
10Signed-off-by :Nagaraju Mekala <nmekala@xilix.com>
11 :Ajit Agarwal <ajitkum@xilinx.com>
12
13ChangeLog:
142016-01-07 Nagaraju Mekala <nmekala@xilix.com>
15 Ajit Agarwal <ajitkum@xilinx.com>
16
17 *microblaze.md (ashlsi3_with_mul_nodelay,
18 ashlsi3_with_mul_delay,
19 movsf_internal):
20 Updated the patterns to use gen_int_mode function
21 *microblaze.cc (print_operand):
22 updated the 'F' case to use "unsinged int" instead
23 of HOST_WIDE_INT_PRINT_HEX
24
25Conflicts:
26 gcc/config/microblaze/microblaze.c
27---
28 gcc/config/microblaze/microblaze.cc | 2 +-
29 gcc/config/microblaze/microblaze.md | 10 ++++++++--
30 2 files changed, 9 insertions(+), 3 deletions(-)
31
32diff --git a/gcc/config/microblaze/microblaze.cc b/gcc/config/microblaze/microblaze.cc
33index 3fb402b87d4..ff64e0ca342 100644
34--- a/gcc/config/microblaze/microblaze.cc
35+++ b/gcc/config/microblaze/microblaze.cc
36@@ -2474,7 +2474,7 @@ print_operand (FILE * file, rtx op, int letter)
37 unsigned long value_long;
38 REAL_VALUE_TO_TARGET_SINGLE (*CONST_DOUBLE_REAL_VALUE (op),
39 value_long);
40- fprintf (file, "0x%lx", value_long);
41+ fprintf (file, "0x%08x", (unsigned int) value_long);
42 }
43 else
44 {
45diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md
46index 498926a4a75..0448101de8a 100644
47--- a/gcc/config/microblaze/microblaze.md
48+++ b/gcc/config/microblaze/microblaze.md
49@@ -1368,7 +1368,10 @@
50 (match_operand:SI 2 "immediate_operand" "I")))]
51 "!TARGET_SOFT_MUL
52 && ((1 << INTVAL (operands[2])) <= 32767 && (1 << INTVAL (operands[2])) >= -32768)"
53- "muli\t%0,%1,%m2"
54+ {
55+ operands[2] = gen_int_mode (1 << INTVAL (operands[2]), SImode);
56+ return "muli\t%0,%1,%2";
57+ }
58 ;; This MUL will not generate an imm. Can go into a delay slot.
59 [(set_attr "type" "arith")
60 (set_attr "mode" "SI")
61@@ -1380,7 +1383,10 @@
62 (ashift:SI (match_operand:SI 1 "register_operand" "d")
63 (match_operand:SI 2 "immediate_operand" "I")))]
64 "!TARGET_SOFT_MUL"
65- "muli\t%0,%1,%m2"
66+ {
67+ operands[2] = gen_int_mode (1 << INTVAL (operands[2]), SImode);
68+ return "muli\t%0,%1,%2";
69+ }
70 ;; This MUL will generate an IMM. Cannot go into a delay slot
71 [(set_attr "type" "no_delay_arith")
72 (set_attr "mode" "SI")
73--
742.34.1
75