aboutsummaryrefslogtreecommitdiffstats
path: root/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-8/0045-Fixed-issues-like.patch
blob: 8c0bde713a0eed32390444ad46ba6bfa1d1a1301 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
From 654582846ebf847b52e769eb6e015c8e486461d6 Mon Sep 17 00:00:00 2001
From: Nagaraju Mekala <nmekala@xilix.com>
Date: Tue, 11 Sep 2018 14:58:00 +0530
Subject: [PATCH 45/54] Fixed issues like: 1 Interrupt alignment issue 2 Sign
 extension issue

---
 gcc/config/microblaze/microblaze.c  | 16 ++++++++++------
 gcc/config/microblaze/microblaze.md |  2 +-
 2 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c
index fab79d9..6b6ca61 100644
--- a/gcc/config/microblaze/microblaze.c
+++ b/gcc/config/microblaze/microblaze.c
@@ -2241,9 +2241,14 @@ compute_frame_size (HOST_WIDE_INT size)
 
   total_size += gp_reg_size;
 
-  /* Add 4 bytes for MSR.  */
+  /* Add 4/8 bytes for MSR.  */
   if (microblaze_is_interrupt_variant ())
-    total_size += 4;
+    {
+      if (TARGET_MB_64)
+        total_size += 8;
+      else
+        total_size += 4;
+    }
 
   /* No space to be allocated for link register in leaf functions with no other
      stack requirements.  */
@@ -2527,7 +2532,6 @@ print_operand (FILE * file, rtx op, int letter)
   else if (letter == 'h' || letter == 'j')
     {
       long val[2];
-      int val1[2];
       long l[2];
       if (code == CONST_DOUBLE)
 	{
@@ -2542,10 +2546,10 @@ print_operand (FILE * file, rtx op, int letter)
 	}
       else if (code == CONST_INT || code == CONST)// || code == SYMBOL_REF ||code == LABEL_REF)
         {
-	  val1[0] = (INTVAL (op) & 0xffffffff00000000LL) >> 32;
-	  val1[1] = INTVAL (op) & 0x00000000ffffffffLL;
+	  val[0] = (INTVAL (op) & 0xffffffff00000000LL) >> 32;
+	  val[1] = INTVAL (op) & 0x00000000ffffffffLL;
         }
-      fprintf (file, "0x%8.8lx", (letter == 'h') ? val1[0] : val1[1]);
+      fprintf (file, "0x%8.8lx", (letter == 'h') ? val[0] : val[1]);
     }
   else if (code == CONST_DOUBLE)
     {
diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md
index 53ea401..3a6943b 100644
--- a/gcc/config/microblaze/microblaze.md
+++ b/gcc/config/microblaze/microblaze.md
@@ -1094,7 +1094,7 @@
       case 1:
       case 2:
         {
-          output_asm_insn ("ll%i1\t%0,%1", operands);
+          output_asm_insn ("lw%i1\t%0,%1", operands);
           return "sextl32\t%0,%0";
         }
     } 
-- 
2.7.4