diff options
Diffstat (limited to 'meta-microblaze/recipes-devtools/gcc/gcc-10/0039-Fix-various-issues.patch')
-rw-r--r-- | meta-microblaze/recipes-devtools/gcc/gcc-10/0039-Fix-various-issues.patch | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0039-Fix-various-issues.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0039-Fix-various-issues.patch new file mode 100644 index 00000000..c9d4b8c7 --- /dev/null +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0039-Fix-various-issues.patch | |||
@@ -0,0 +1,72 @@ | |||
1 | From 0405777c25bb8110ebfd8ea69c7df062a4c03d6b Mon Sep 17 00:00:00 2001 | ||
2 | From: Nagaraju Mekala <nmekala@xilix.com> | ||
3 | Date: Tue, 11 Sep 2018 14:58:00 +0530 | ||
4 | Subject: [PATCH 39/58] Fix various issues | ||
5 | |||
6 | Fixed issues like: | ||
7 | 1 Interrupt alignment issue | ||
8 | 2 Sign extension issue | ||
9 | --- | ||
10 | gcc/config/microblaze/microblaze.c | 16 ++++++++++------ | ||
11 | gcc/config/microblaze/microblaze.md | 2 +- | ||
12 | 2 files changed, 11 insertions(+), 7 deletions(-) | ||
13 | |||
14 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c | ||
15 | index cba5d86225c..b94902b8fbb 100644 | ||
16 | --- a/gcc/config/microblaze/microblaze.c | ||
17 | +++ b/gcc/config/microblaze/microblaze.c | ||
18 | @@ -2307,9 +2307,14 @@ compute_frame_size (HOST_WIDE_INT size) | ||
19 | |||
20 | total_size += gp_reg_size; | ||
21 | |||
22 | - /* Add 4 bytes for MSR. */ | ||
23 | + /* Add 4/8 bytes for MSR. */ | ||
24 | if (microblaze_is_interrupt_variant ()) | ||
25 | - total_size += 4; | ||
26 | + { | ||
27 | + if (TARGET_MB_64) | ||
28 | + total_size += 8; | ||
29 | + else | ||
30 | + total_size += 4; | ||
31 | + } | ||
32 | |||
33 | /* No space to be allocated for link register in leaf functions with no other | ||
34 | stack requirements. */ | ||
35 | @@ -2594,7 +2599,6 @@ print_operand (FILE * file, rtx op, int letter) | ||
36 | else if (letter == 'h' || letter == 'j') | ||
37 | { | ||
38 | long val[2]; | ||
39 | - int val1[2]; | ||
40 | long l[2]; | ||
41 | if (code == CONST_DOUBLE) | ||
42 | { | ||
43 | @@ -2609,10 +2613,10 @@ print_operand (FILE * file, rtx op, int letter) | ||
44 | } | ||
45 | else if (code == CONST_INT || code == CONST)// || code == SYMBOL_REF ||code == LABEL_REF) | ||
46 | { | ||
47 | - val1[0] = (INTVAL (op) & 0xffffffff00000000LL) >> 32; | ||
48 | - val1[1] = INTVAL (op) & 0x00000000ffffffffLL; | ||
49 | + val[0] = (INTVAL (op) & 0xffffffff00000000LL) >> 32; | ||
50 | + val[1] = INTVAL (op) & 0x00000000ffffffffLL; | ||
51 | } | ||
52 | - fprintf (file, "0x%8.8lx", (letter == 'h') ? val1[0] : val1[1]); | ||
53 | + fprintf (file, "0x%8.8lx", (letter == 'h') ? val[0] : val[1]); | ||
54 | } | ||
55 | else if (code == CONST_DOUBLE) | ||
56 | { | ||
57 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md | ||
58 | index 1a8853056d7..7cc26e7d786 100644 | ||
59 | --- a/gcc/config/microblaze/microblaze.md | ||
60 | +++ b/gcc/config/microblaze/microblaze.md | ||
61 | @@ -1096,7 +1096,7 @@ | ||
62 | case 1: | ||
63 | case 2: | ||
64 | { | ||
65 | - output_asm_insn ("ll%i1\t%0,%1", operands); | ||
66 | + output_asm_insn ("lw%i1\t%0,%1", operands); | ||
67 | return "sextl32\t%0,%0"; | ||
68 | } | ||
69 | } | ||
70 | -- | ||
71 | 2.17.1 | ||
72 | |||