diff options
| author | Mark Hatle <mark.hatle@kernel.crashing.org> | 2020-08-13 15:25:54 -0500 |
|---|---|---|
| committer | Mark Hatle <mark.hatle@kernel.crashing.org> | 2020-08-14 11:56:34 -0500 |
| commit | 276f2a014483170cfbcbf391c6350426e0a19fdc (patch) | |
| tree | b68a8b36c7d5df81fa6adff396e1f255715dc0b2 /meta-microblaze/recipes-devtools/gcc/gcc-10 | |
| parent | 559d46390c65d34c14b56a7f8690b1ac705430ac (diff) | |
| download | meta-xilinx-276f2a014483170cfbcbf391c6350426e0a19fdc.tar.gz | |
meta-microblaze: toolchains
Resync the microblaze toolchain items to match the latest YP master version.
binutils and gdb are based on the same patch set, but the release version
are based on slightly different sources, thus the patches are a bit
different.
Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org>
Diffstat (limited to 'meta-microblaze/recipes-devtools/gcc/gcc-10')
74 files changed, 723 insertions, 2295 deletions
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0001-LOCAL-Testsuite-builtins-tests-require-fpic.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0001-LOCAL-Testsuite-builtins-tests-require-fpic.patch index 28247daa..af5a65cb 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0001-LOCAL-Testsuite-builtins-tests-require-fpic.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0001-LOCAL-Testsuite-builtins-tests-require-fpic.patch | |||
| @@ -1,35 +1,29 @@ | |||
| 1 | From 23e6126392ab228c1d6483c02ffc32b15f00777e Mon Sep 17 00:00:00 2001 | 1 | From d2ebb14b318166dd91fe35bf3531d758dcbc995a Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Wed, 11 Jan 2017 13:13:57 +0530 | 3 | Date: Wed, 11 Jan 2017 13:13:57 +0530 |
| 4 | Subject: [PATCH 01/63] LOCAL]: Testsuite - builtins tests require fpic | 4 | Subject: [PATCH 01/58] [LOCAL]: Testsuite - builtins tests require fpic |
| 5 | Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com> | ||
| 6 | 5 | ||
| 7 | Conflicts: | 6 | Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com> |
| 8 | |||
| 9 | gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp | ||
| 10 | --- | 7 | --- |
| 11 | gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp | 8 ++++++++ | 8 | gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp | 5 +++++ |
| 12 | 1 file changed, 8 insertions(+) | 9 | 1 file changed, 5 insertions(+) |
| 13 | 10 | ||
| 14 | diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp b/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp | 11 | diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp b/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp |
| 15 | index acb9eac..363ce07 100644 | 12 | index 594c9297958..4103d43748d 100644 |
| 16 | --- a/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp | 13 | --- a/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp |
| 17 | +++ b/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp | 14 | +++ b/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp |
| 18 | @@ -48,6 +48,14 @@ if { [istarget *-*-eabi*] | 15 | @@ -48,6 +48,11 @@ if { [istarget *-*-eabi*] |
| 19 | lappend additional_flags "-Wl,--allow-multiple-definition" | 16 | lappend additional_flags "-Wl,--allow-multiple-definition" |
| 20 | } | 17 | } |
| 21 | 18 | ||
| 22 | +<<<<<<< HEAD | ||
| 23 | +======= | ||
| 24 | +if [istarget "microblaze*-*-linux*"] { | 19 | +if [istarget "microblaze*-*-linux*"] { |
| 25 | + lappend additional_flags "-Wl,-zmuldefs" | 20 | + lappend additional_flags "-Wl,-zmuldefs" |
| 26 | + lappend additional_flags "-fPIC" | 21 | + lappend additional_flags "-fPIC" |
| 27 | +} | 22 | +} |
| 28 | + | 23 | + |
| 29 | +>>>>>>> 6ef6e5b... [LOCAL]: Testsuite - builtins tests require fpic | ||
| 30 | foreach src [lsort [find $srcdir/$subdir *.c]] { | 24 | foreach src [lsort [find $srcdir/$subdir *.c]] { |
| 31 | if {![string match *-lib.c $src] && [runtest_file_p $runtests $src]} { | 25 | if {![string match *-lib.c $src] && [runtest_file_p $runtests $src]} { |
| 32 | c-torture-execute [list $src \ | 26 | c-torture-execute [list $src \ |
| 33 | -- | 27 | -- |
| 34 | 2.7.4 | 28 | 2.17.1 |
| 35 | 29 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0002-LOCAL-Quick-fail-g-.dg-opt-memcpy1.C.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0002-LOCAL-Quick-fail-g-.dg-opt-memcpy1.C.patch index 8e4a2a32..976896da 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0002-LOCAL-Quick-fail-g-.dg-opt-memcpy1.C.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0002-LOCAL-Quick-fail-g-.dg-opt-memcpy1.C.patch | |||
| @@ -1,10 +1,11 @@ | |||
| 1 | From e9c8884f473eae307945ceabaa1ff03278236c23 Mon Sep 17 00:00:00 2001 | 1 | From 54394232ffbaa9474f8a78c6882f08a48842242e Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Wed, 11 Jan 2017 14:31:10 +0530 | 3 | Date: Wed, 11 Jan 2017 14:31:10 +0530 |
| 4 | Subject: [PATCH 02/63] [LOCAL]: Quick fail g++.dg/opt/memcpy1.C This | 4 | Subject: [PATCH 02/58] [LOCAL]: Quick fail g++.dg/opt/memcpy1.C |
| 5 | particular testcase fails with a timeout. Instead, fail it at compile-time | 5 | |
| 6 | for microblaze. This speeds up the testsuite without removing it from the | 6 | This particular testcase fails with a timeout. Instead, fail it |
| 7 | FAIL reports. | 7 | at compile-time for microblaze. This speeds up the testsuite without |
| 8 | removing it from the FAIL reports. | ||
| 8 | 9 | ||
| 9 | Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com> | 10 | Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com> |
| 10 | --- | 11 | --- |
| @@ -12,7 +13,7 @@ Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com> | |||
| 12 | 1 file changed, 4 insertions(+) | 13 | 1 file changed, 4 insertions(+) |
| 13 | 14 | ||
| 14 | diff --git a/gcc/testsuite/g++.dg/opt/memcpy1.C b/gcc/testsuite/g++.dg/opt/memcpy1.C | 15 | diff --git a/gcc/testsuite/g++.dg/opt/memcpy1.C b/gcc/testsuite/g++.dg/opt/memcpy1.C |
| 15 | index 3862756..db9f990 100644 | 16 | index 3862756083d..db9f990f781 100644 |
| 16 | --- a/gcc/testsuite/g++.dg/opt/memcpy1.C | 17 | --- a/gcc/testsuite/g++.dg/opt/memcpy1.C |
| 17 | +++ b/gcc/testsuite/g++.dg/opt/memcpy1.C | 18 | +++ b/gcc/testsuite/g++.dg/opt/memcpy1.C |
| 18 | @@ -4,6 +4,10 @@ | 19 | @@ -4,6 +4,10 @@ |
| @@ -27,5 +28,5 @@ index 3862756..db9f990 100644 | |||
| 27 | typedef uint8_t uint8; | 28 | typedef uint8_t uint8; |
| 28 | __extension__ typedef __SIZE_TYPE__ size_t; | 29 | __extension__ typedef __SIZE_TYPE__ size_t; |
| 29 | -- | 30 | -- |
| 30 | 2.7.4 | 31 | 2.17.1 |
| 31 | 32 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0003-LOCAL-Testsuite-explicitly-add-fivopts-for-tests-tha.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0003-LOCAL-Testsuite-explicitly-add-fivopts-for-tests-tha.patch index ef994457..8e6d22db 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0003-LOCAL-Testsuite-explicitly-add-fivopts-for-tests-tha.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0003-LOCAL-Testsuite-explicitly-add-fivopts-for-tests-tha.patch | |||
| @@ -1,14 +1,12 @@ | |||
| 1 | From fb4b4d4ecba04859d52a653d7c453df92014dc38 Mon Sep 17 00:00:00 2001 | 1 | From f0a446bcb453630d8116b30f542aee79407228ea Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Wed, 11 Jan 2017 15:28:38 +0530 | 3 | Date: Wed, 11 Jan 2017 15:28:38 +0530 |
| 4 | Subject: [PATCH 03/63] [LOCAL]: Testsuite - explicitly add -fivopts for tests | 4 | Subject: [PATCH 03/58] [LOCAL]: Testsuite - explicitly add -fivopts for tests |
| 5 | that depend on it (test gcc/testsuite/gcc.dg/tree-ssa/ivopts-lt.c doesnt | 5 | that depend on it |
| 6 | exist in 4.6 branch) | ||
| 7 | 6 | ||
| 8 | Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com> | 7 | (test gcc/testsuite/gcc.dg/tree-ssa/ivopts-lt.c doesnt exist in 4.6 branch) |
| 9 | 8 | ||
| 10 | Conflicts: | 9 | Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com> |
| 11 | gcc/testsuite/gcc.dg/tree-ssa/pr19210-1.c | ||
| 12 | --- | 10 | --- |
| 13 | gcc/testsuite/g++.dg/tree-ssa/ivopts-2.C | 2 +- | 11 | gcc/testsuite/g++.dg/tree-ssa/ivopts-2.C | 2 +- |
| 14 | gcc/testsuite/g++.dg/tree-ssa/ivopts-3.C | 2 +- | 12 | gcc/testsuite/g++.dg/tree-ssa/ivopts-3.C | 2 +- |
| @@ -21,7 +19,7 @@ Conflicts: | |||
| 21 | 8 files changed, 8 insertions(+), 8 deletions(-) | 19 | 8 files changed, 8 insertions(+), 8 deletions(-) |
| 22 | 20 | ||
| 23 | diff --git a/gcc/testsuite/g++.dg/tree-ssa/ivopts-2.C b/gcc/testsuite/g++.dg/tree-ssa/ivopts-2.C | 21 | diff --git a/gcc/testsuite/g++.dg/tree-ssa/ivopts-2.C b/gcc/testsuite/g++.dg/tree-ssa/ivopts-2.C |
| 24 | index 438db88..ede883e 100644 | 22 | index 438db882043..ede883eb284 100644 |
| 25 | --- a/gcc/testsuite/g++.dg/tree-ssa/ivopts-2.C | 23 | --- a/gcc/testsuite/g++.dg/tree-ssa/ivopts-2.C |
| 26 | +++ b/gcc/testsuite/g++.dg/tree-ssa/ivopts-2.C | 24 | +++ b/gcc/testsuite/g++.dg/tree-ssa/ivopts-2.C |
| 27 | @@ -1,5 +1,5 @@ | 25 | @@ -1,5 +1,5 @@ |
| @@ -32,7 +30,7 @@ index 438db88..ede883e 100644 | |||
| 32 | void test (int *b, int *e, int stride) | 30 | void test (int *b, int *e, int stride) |
| 33 | { | 31 | { |
| 34 | diff --git a/gcc/testsuite/g++.dg/tree-ssa/ivopts-3.C b/gcc/testsuite/g++.dg/tree-ssa/ivopts-3.C | 32 | diff --git a/gcc/testsuite/g++.dg/tree-ssa/ivopts-3.C b/gcc/testsuite/g++.dg/tree-ssa/ivopts-3.C |
| 35 | index 07ff1b7..a09710c 100644 | 33 | index cbb6c850baa..34248021c23 100644 |
| 36 | --- a/gcc/testsuite/g++.dg/tree-ssa/ivopts-3.C | 34 | --- a/gcc/testsuite/g++.dg/tree-ssa/ivopts-3.C |
| 37 | +++ b/gcc/testsuite/g++.dg/tree-ssa/ivopts-3.C | 35 | +++ b/gcc/testsuite/g++.dg/tree-ssa/ivopts-3.C |
| 38 | @@ -1,5 +1,5 @@ | 36 | @@ -1,5 +1,5 @@ |
| @@ -43,7 +41,7 @@ index 07ff1b7..a09710c 100644 | |||
| 43 | class MinimalVec3 | 41 | class MinimalVec3 |
| 44 | { | 42 | { |
| 45 | diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c | 43 | diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c |
| 46 | index bda2516..22c8a5d 100644 | 44 | index bda25167353..22c8a5dcffe 100644 |
| 47 | --- a/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c | 45 | --- a/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c |
| 48 | +++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c | 46 | +++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c |
| 49 | @@ -1,7 +1,7 @@ | 47 | @@ -1,7 +1,7 @@ |
| @@ -56,7 +54,7 @@ index bda2516..22c8a5d 100644 | |||
| 56 | 54 | ||
| 57 | /* Size of this structure should be sufficiently weird so that no memory | 55 | /* Size of this structure should be sufficiently weird so that no memory |
| 58 | diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c | 56 | diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c |
| 59 | index f0770ab..65d74c8 100644 | 57 | index f0770abdbbc..65d74c8e620 100644 |
| 60 | --- a/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c | 58 | --- a/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c |
| 61 | +++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c | 59 | +++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c |
| 62 | @@ -1,7 +1,7 @@ | 60 | @@ -1,7 +1,7 @@ |
| @@ -69,7 +67,7 @@ index f0770ab..65d74c8 100644 | |||
| 69 | 67 | ||
| 70 | /* Size of this structure should be sufficiently weird so that no memory | 68 | /* Size of this structure should be sufficiently weird so that no memory |
| 71 | diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-5.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-5.c | 69 | diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-5.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-5.c |
| 72 | index 5f42857..9bc86ee 100644 | 70 | index 5f42857fe13..9bc86ee0d23 100644 |
| 73 | --- a/gcc/testsuite/gcc.dg/tree-ssa/loop-5.c | 71 | --- a/gcc/testsuite/gcc.dg/tree-ssa/loop-5.c |
| 74 | +++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-5.c | 72 | +++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-5.c |
| 75 | @@ -1,7 +1,7 @@ | 73 | @@ -1,7 +1,7 @@ |
| @@ -82,7 +80,7 @@ index 5f42857..9bc86ee 100644 | |||
| 82 | void foo(long); | 80 | void foo(long); |
| 83 | 81 | ||
| 84 | diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr19210-1.c b/gcc/testsuite/gcc.dg/tree-ssa/pr19210-1.c | 82 | diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr19210-1.c b/gcc/testsuite/gcc.dg/tree-ssa/pr19210-1.c |
| 85 | index 50d86a0..1e3eacd 100644 | 83 | index 50d86a00485..1e3eacd33d1 100644 |
| 86 | --- a/gcc/testsuite/gcc.dg/tree-ssa/pr19210-1.c | 84 | --- a/gcc/testsuite/gcc.dg/tree-ssa/pr19210-1.c |
| 87 | +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr19210-1.c | 85 | +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr19210-1.c |
| 88 | @@ -1,5 +1,5 @@ | 86 | @@ -1,5 +1,5 @@ |
| @@ -93,7 +91,7 @@ index 50d86a0..1e3eacd 100644 | |||
| 93 | 91 | ||
| 94 | void | 92 | void |
| 95 | diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr19590.c b/gcc/testsuite/gcc.dg/tree-ssa/pr19590.c | 93 | diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr19590.c b/gcc/testsuite/gcc.dg/tree-ssa/pr19590.c |
| 96 | index 2c6cfc6..648e6e6 100644 | 94 | index 2c6cfc6f831..648e6e67e80 100644 |
| 97 | --- a/gcc/testsuite/gcc.dg/tree-ssa/pr19590.c | 95 | --- a/gcc/testsuite/gcc.dg/tree-ssa/pr19590.c |
| 98 | +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr19590.c | 96 | +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr19590.c |
| 99 | @@ -1,5 +1,5 @@ | 97 | @@ -1,5 +1,5 @@ |
| @@ -104,7 +102,7 @@ index 2c6cfc6..648e6e6 100644 | |||
| 104 | void vnum_test8(int *data) | 102 | void vnum_test8(int *data) |
| 105 | { | 103 | { |
| 106 | diff --git a/gcc/testsuite/gcc.dg/tree-ssa/reassoc-19.c b/gcc/testsuite/gcc.dg/tree-ssa/reassoc-19.c | 104 | diff --git a/gcc/testsuite/gcc.dg/tree-ssa/reassoc-19.c b/gcc/testsuite/gcc.dg/tree-ssa/reassoc-19.c |
| 107 | index e911bfc..5d3e7e0 100644 | 105 | index e911bfcd521..5d3e7e0801a 100644 |
| 108 | --- a/gcc/testsuite/gcc.dg/tree-ssa/reassoc-19.c | 106 | --- a/gcc/testsuite/gcc.dg/tree-ssa/reassoc-19.c |
| 109 | +++ b/gcc/testsuite/gcc.dg/tree-ssa/reassoc-19.c | 107 | +++ b/gcc/testsuite/gcc.dg/tree-ssa/reassoc-19.c |
| 110 | @@ -1,5 +1,5 @@ | 108 | @@ -1,5 +1,5 @@ |
| @@ -115,5 +113,5 @@ index e911bfc..5d3e7e0 100644 | |||
| 115 | /* Slightly changed testcase from PR middle-end/40815. */ | 113 | /* Slightly changed testcase from PR middle-end/40815. */ |
| 116 | void bar(char*, char*, int); | 114 | void bar(char*, char*, int); |
| 117 | -- | 115 | -- |
| 118 | 2.7.4 | 116 | 2.17.1 |
| 119 | 117 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0004-LOCAL-For-dejagnu-static-testing-on-qemu-suppress-wa.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0004-LOCAL-For-dejagnu-static-testing-on-qemu-suppress-wa.patch index a575b518..4974462c 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0004-LOCAL-For-dejagnu-static-testing-on-qemu-suppress-wa.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0004-LOCAL-For-dejagnu-static-testing-on-qemu-suppress-wa.patch | |||
| @@ -1,35 +1,30 @@ | |||
| 1 | From 38022a87b01cf2e36b605d4f6d0faab22a0d2f44 Mon Sep 17 00:00:00 2001 | 1 | From f8809fdebc3ef3927695c84224d3446fa13447d6 Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Wed, 11 Jan 2017 15:46:28 +0530 | 3 | Date: Wed, 11 Jan 2017 15:46:28 +0530 |
| 4 | Subject: [PATCH 04/63] [LOCAL]: For dejagnu static testing on qemu, suppress | 4 | Subject: [PATCH 04/58] [LOCAL]: For dejagnu static testing on qemu, suppress |
| 5 | warnings about multiple definitions from the test function and libc in line | 5 | warnings |
| 6 | with method used by powerpc. Dynamic linking and using a qemu binary which | 6 | |
| 7 | understands sysroot resolves all test failures with builtins | 7 | about multiple definitions from the test function and libc in line |
| 8 | with method used by powerpc. Dynamic linking and using a qemu binary | ||
| 9 | which understands sysroot resolves all test failures with builtins | ||
| 8 | 10 | ||
| 9 | Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com> | 11 | Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com> |
| 10 | --- | 12 | --- |
| 11 | gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp | 4 ---- | 13 | gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp | 1 - |
| 12 | 1 file changed, 4 deletions(-) | 14 | 1 file changed, 1 deletion(-) |
| 13 | 15 | ||
| 14 | diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp b/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp | 16 | diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp b/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp |
| 15 | index 363ce07..56b1a9a 100644 | 17 | index 4103d43748d..d7c9b281d01 100644 |
| 16 | --- a/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp | 18 | --- a/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp |
| 17 | +++ b/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp | 19 | +++ b/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp |
| 18 | @@ -48,14 +48,10 @@ if { [istarget *-*-eabi*] | 20 | @@ -50,7 +50,6 @@ if { [istarget *-*-eabi*] |
| 19 | lappend additional_flags "-Wl,--allow-multiple-definition" | ||
| 20 | } | ||
| 21 | 21 | ||
| 22 | -<<<<<<< HEAD | ||
| 23 | -======= | ||
| 24 | if [istarget "microblaze*-*-linux*"] { | 22 | if [istarget "microblaze*-*-linux*"] { |
| 25 | lappend additional_flags "-Wl,-zmuldefs" | 23 | lappend additional_flags "-Wl,-zmuldefs" |
| 26 | - lappend additional_flags "-fPIC" | 24 | - lappend additional_flags "-fPIC" |
| 27 | } | 25 | } |
| 28 | 26 | ||
| 29 | ->>>>>>> 6ef6e5b... [LOCAL]: Testsuite - builtins tests require fpic | ||
| 30 | foreach src [lsort [find $srcdir/$subdir *.c]] { | 27 | foreach src [lsort [find $srcdir/$subdir *.c]] { |
| 31 | if {![string match *-lib.c $src] && [runtest_file_p $runtests $src]} { | ||
| 32 | c-torture-execute [list $src \ | ||
| 33 | -- | 28 | -- |
| 34 | 2.7.4 | 29 | 2.17.1 |
| 35 | 30 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0005-Patch-testsuite-Add-MicroBlaze-to-target-supports-fo.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0005-Patch-testsuite-Add-MicroBlaze-to-target-supports-fo.patch index 18fd6dec..c21492e8 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0005-Patch-testsuite-Add-MicroBlaze-to-target-supports-fo.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0005-Patch-testsuite-Add-MicroBlaze-to-target-supports-fo.patch | |||
| @@ -1,8 +1,8 @@ | |||
| 1 | From a7dfb5f158f16f88b30aabe903c4fb088889eeef Mon Sep 17 00:00:00 2001 | 1 | From 802078fa3e76ea7fdb29f3baf1d4d9baae42bc0b Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Wed, 11 Jan 2017 15:50:35 +0530 | 3 | Date: Wed, 11 Jan 2017 15:50:35 +0530 |
| 4 | Subject: [PATCH 05/63] [Patch, testsuite]: Add MicroBlaze to target-supports | 4 | Subject: [PATCH 05/58] [Patch, testsuite]: Add MicroBlaze to target-supports |
| 5 | for atomic buil. .tin tests | 5 | for atomic builtin tests |
| 6 | 6 | ||
| 7 | MicroBlaze added to supported targets for atomic builtin tests. | 7 | MicroBlaze added to supported targets for atomic builtin tests. |
| 8 | 8 | ||
| @@ -19,10 +19,10 @@ Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com> | |||
| 19 | 1 file changed, 1 insertion(+) | 19 | 1 file changed, 1 insertion(+) |
| 20 | 20 | ||
| 21 | diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp | 21 | diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp |
| 22 | index cda0f3d..0a69659e 100644 | 22 | index 13761491e63..d2f65dac32c 100644 |
| 23 | --- a/gcc/testsuite/lib/target-supports.exp | 23 | --- a/gcc/testsuite/lib/target-supports.exp |
| 24 | +++ b/gcc/testsuite/lib/target-supports.exp | 24 | +++ b/gcc/testsuite/lib/target-supports.exp |
| 25 | @@ -6829,6 +6829,7 @@ proc check_effective_target_sync_int_long { } { | 25 | @@ -7581,6 +7581,7 @@ proc check_effective_target_sync_int_long { } { |
| 26 | && [check_effective_target_arm_acq_rel]) | 26 | && [check_effective_target_arm_acq_rel]) |
| 27 | || [istarget bfin*-*linux*] | 27 | || [istarget bfin*-*linux*] |
| 28 | || [istarget hppa*-*linux*] | 28 | || [istarget hppa*-*linux*] |
| @@ -31,5 +31,5 @@ index cda0f3d..0a69659e 100644 | |||
| 31 | || [istarget powerpc*-*-*] | 31 | || [istarget powerpc*-*-*] |
| 32 | || [istarget crisv32-*-*] || [istarget cris-*-*] | 32 | || [istarget crisv32-*-*] || [istarget cris-*-*] |
| 33 | -- | 33 | -- |
| 34 | 2.7.4 | 34 | 2.17.1 |
| 35 | 35 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0005-Testsuite-explicitly-add-fivopts-for-tests-that-depe.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0005-Testsuite-explicitly-add-fivopts-for-tests-that-depe.patch deleted file mode 100644 index b428d121..00000000 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0005-Testsuite-explicitly-add-fivopts-for-tests-that-depe.patch +++ /dev/null | |||
| @@ -1,118 +0,0 @@ | |||
| 1 | From 7f0a129701ce9809d79ea4618f3293062bd24bbf Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | ||
| 3 | Date: Sat, 26 Aug 2017 19:21:18 -0700 | ||
| 4 | Subject: [PATCH] Testsuite - explicitly add -fivopts for tests that depend on | ||
| 5 | it | ||
| 6 | |||
| 7 | Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com> | ||
| 8 | Signed-off-by: Mahesh Bodapati <mbodapat@xilinx.com> | ||
| 9 | Signed-off-by: Manjukumar Matha <manjukumar.harthikote-matha@xilinx.com> | ||
| 10 | Upstream-Status: Pending | ||
| 11 | --- | ||
| 12 | gcc/testsuite/g++.dg/tree-ssa/ivopts-2.C | 2 +- | ||
| 13 | gcc/testsuite/g++.dg/tree-ssa/ivopts-3.C | 2 +- | ||
| 14 | gcc/testsuite/gcc.dg/tree-ssa/loop-2.c | 2 +- | ||
| 15 | gcc/testsuite/gcc.dg/tree-ssa/loop-4.c | 2 +- | ||
| 16 | gcc/testsuite/gcc.dg/tree-ssa/loop-5.c | 2 +- | ||
| 17 | gcc/testsuite/gcc.dg/tree-ssa/pr19210-1.c | 2 +- | ||
| 18 | gcc/testsuite/gcc.dg/tree-ssa/pr19590.c | 2 +- | ||
| 19 | gcc/testsuite/gcc.dg/tree-ssa/reassoc-19.c | 2 +- | ||
| 20 | 8 files changed, 8 insertions(+), 8 deletions(-) | ||
| 21 | |||
| 22 | diff --git a/gcc/testsuite/g++.dg/tree-ssa/ivopts-2.C b/gcc/testsuite/g++.dg/tree-ssa/ivopts-2.C | ||
| 23 | index 438db88204..ede883eb28 100644 | ||
| 24 | --- a/gcc/testsuite/g++.dg/tree-ssa/ivopts-2.C | ||
| 25 | +++ b/gcc/testsuite/g++.dg/tree-ssa/ivopts-2.C | ||
| 26 | @@ -1,5 +1,5 @@ | ||
| 27 | /* { dg-do compile { target { i?86-*-* x86_64-*-* } } } */ | ||
| 28 | -/* { dg-options "-O2 -fdump-tree-ivopts-details" } */ | ||
| 29 | +/* { dg-options "-O2 -fivopts -fdump-tree-ivopts-details" } */ | ||
| 30 | |||
| 31 | void test (int *b, int *e, int stride) | ||
| 32 | { | ||
| 33 | diff --git a/gcc/testsuite/g++.dg/tree-ssa/ivopts-3.C b/gcc/testsuite/g++.dg/tree-ssa/ivopts-3.C | ||
| 34 | index eb72581390..02f3ea4a7d 100644 | ||
| 35 | --- a/gcc/testsuite/g++.dg/tree-ssa/ivopts-3.C | ||
| 36 | +++ b/gcc/testsuite/g++.dg/tree-ssa/ivopts-3.C | ||
| 37 | @@ -1,5 +1,5 @@ | ||
| 38 | // { dg-do compile } | ||
| 39 | -// { dg-options "-O2 -fdump-tree-ivopts-details" } | ||
| 40 | +// { dg-options "-O2 -fivopts -fdump-tree-ivopts-details" } | ||
| 41 | |||
| 42 | class MinimalVec3 | ||
| 43 | { | ||
| 44 | diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c | ||
| 45 | index bda2516735..22c8a5dcff 100644 | ||
| 46 | --- a/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c | ||
| 47 | +++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c | ||
| 48 | @@ -1,7 +1,7 @@ | ||
| 49 | /* A test for strength reduction and induction variable elimination. */ | ||
| 50 | |||
| 51 | /* { dg-do compile } */ | ||
| 52 | -/* { dg-options "-O1 -fdump-tree-optimized" } */ | ||
| 53 | +/* { dg-options "-O1 -fivopts -fdump-tree-optimized" } */ | ||
| 54 | /* { dg-require-effective-target size32plus } */ | ||
| 55 | |||
| 56 | /* Size of this structure should be sufficiently weird so that no memory | ||
| 57 | diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c | ||
| 58 | index f0770abdbb..65d74c8e62 100644 | ||
| 59 | --- a/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c | ||
| 60 | +++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c | ||
| 61 | @@ -1,7 +1,7 @@ | ||
| 62 | /* A test for strength reduction and induction variable elimination. */ | ||
| 63 | |||
| 64 | /* { dg-do compile } */ | ||
| 65 | -/* { dg-options "-O1 -fdump-tree-optimized" } */ | ||
| 66 | +/* { dg-options "-O1 -fivopts -fdump-tree-optimized" } */ | ||
| 67 | /* { dg-require-effective-target size32plus } */ | ||
| 68 | |||
| 69 | /* Size of this structure should be sufficiently weird so that no memory | ||
| 70 | diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-5.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-5.c | ||
| 71 | index 5f42857fe1..9bc86ee0d2 100644 | ||
| 72 | --- a/gcc/testsuite/gcc.dg/tree-ssa/loop-5.c | ||
| 73 | +++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-5.c | ||
| 74 | @@ -1,7 +1,7 @@ | ||
| 75 | /* A test for induction variable merging. */ | ||
| 76 | |||
| 77 | /* { dg-do compile } */ | ||
| 78 | -/* { dg-options "-O1 -fdump-tree-optimized" } */ | ||
| 79 | +/* { dg-options "-O1 -fivopts -fdump-tree-optimized" } */ | ||
| 80 | |||
| 81 | void foo(long); | ||
| 82 | |||
| 83 | diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr19210-1.c b/gcc/testsuite/gcc.dg/tree-ssa/pr19210-1.c | ||
| 84 | index 3c8ee06016..db192a657f 100644 | ||
| 85 | --- a/gcc/testsuite/gcc.dg/tree-ssa/pr19210-1.c | ||
| 86 | +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr19210-1.c | ||
| 87 | @@ -1,5 +1,5 @@ | ||
| 88 | /* { dg-do compile } */ | ||
| 89 | -/* { dg-options "-O2 -Wunsafe-loop-optimizations" } */ | ||
| 90 | +/* { dg-options "-O2 -fivopts -Wunsafe-loop-optimizations" } */ | ||
| 91 | extern void g(void); | ||
| 92 | |||
| 93 | void | ||
| 94 | diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr19590.c b/gcc/testsuite/gcc.dg/tree-ssa/pr19590.c | ||
| 95 | index 2c6cfc6f83..648e6e67e8 100644 | ||
| 96 | --- a/gcc/testsuite/gcc.dg/tree-ssa/pr19590.c | ||
| 97 | +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr19590.c | ||
| 98 | @@ -1,5 +1,5 @@ | ||
| 99 | /* { dg-do compile } */ | ||
| 100 | -/* { dg-options "-O2 -fdump-tree-ivopts" } */ | ||
| 101 | +/* { dg-options "-O2 -fivopts -fdump-tree-ivopts" } */ | ||
| 102 | |||
| 103 | void vnum_test8(int *data) | ||
| 104 | { | ||
| 105 | diff --git a/gcc/testsuite/gcc.dg/tree-ssa/reassoc-19.c b/gcc/testsuite/gcc.dg/tree-ssa/reassoc-19.c | ||
| 106 | index e911bfcd52..5d3e7e0801 100644 | ||
| 107 | --- a/gcc/testsuite/gcc.dg/tree-ssa/reassoc-19.c | ||
| 108 | +++ b/gcc/testsuite/gcc.dg/tree-ssa/reassoc-19.c | ||
| 109 | @@ -1,5 +1,5 @@ | ||
| 110 | /* { dg-do compile } */ | ||
| 111 | -/* { dg-options "-Os -fdump-tree-optimized" } */ | ||
| 112 | +/* { dg-options "-Os -fivopts -fdump-tree-optimized" } */ | ||
| 113 | |||
| 114 | /* Slightly changed testcase from PR middle-end/40815. */ | ||
| 115 | void bar(char*, char*, int); | ||
| 116 | -- | ||
| 117 | 2.14.2 | ||
| 118 | |||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0006-Patch-testsuite-Update-MicroBlaze-strings-test.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0006-Patch-testsuite-Update-MicroBlaze-strings-test.patch index e4a86dc4..9c8cce92 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0006-Patch-testsuite-Update-MicroBlaze-strings-test.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0006-Patch-testsuite-Update-MicroBlaze-strings-test.patch | |||
| @@ -1,8 +1,9 @@ | |||
| 1 | From e23b1a424cfd852f7a33f29c0b80d867ca533c3b Mon Sep 17 00:00:00 2001 | 1 | From 8c24cb4f95f46793ac7500a5d6181d93f2b0d2c5 Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Wed, 11 Jan 2017 16:20:01 +0530 | 3 | Date: Wed, 11 Jan 2017 16:20:01 +0530 |
| 4 | Subject: [PATCH 06/63] [Patch, testsuite]: Update MicroBlaze strings test for | 4 | Subject: [PATCH 06/58] [Patch, testsuite]: Update MicroBlaze strings test |
| 5 | new scan-assembly output resulting in use of $LC label | 5 | |
| 6 | for new scan-assembly output resulting in use of $LC label | ||
| 6 | 7 | ||
| 7 | ChangeLog/testsuite | 8 | ChangeLog/testsuite |
| 8 | 9 | ||
| @@ -17,7 +18,7 @@ Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com> | |||
| 17 | 1 file changed, 4 insertions(+), 2 deletions(-) | 18 | 1 file changed, 4 insertions(+), 2 deletions(-) |
| 18 | 19 | ||
| 19 | diff --git a/gcc/testsuite/gcc.target/microblaze/others/strings1.c b/gcc/testsuite/gcc.target/microblaze/others/strings1.c | 20 | diff --git a/gcc/testsuite/gcc.target/microblaze/others/strings1.c b/gcc/testsuite/gcc.target/microblaze/others/strings1.c |
| 20 | index 7a63faf..0403b7b 100644 | 21 | index 7a63faf79f2..0403b7bdca9 100644 |
| 21 | --- a/gcc/testsuite/gcc.target/microblaze/others/strings1.c | 22 | --- a/gcc/testsuite/gcc.target/microblaze/others/strings1.c |
| 22 | +++ b/gcc/testsuite/gcc.target/microblaze/others/strings1.c | 23 | +++ b/gcc/testsuite/gcc.target/microblaze/others/strings1.c |
| 23 | @@ -1,13 +1,15 @@ | 24 | @@ -1,13 +1,15 @@ |
| @@ -39,5 +40,5 @@ index 7a63faf..0403b7b 100644 | |||
| 39 | somefunc (string2); | 40 | somefunc (string2); |
| 40 | } | 41 | } |
| 41 | -- | 42 | -- |
| 42 | 2.7.4 | 43 | 2.17.1 |
| 43 | 44 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0007-Patch-testsuite-Allow-MicroBlaze-.weakext-pattern-in.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0007-Patch-testsuite-Allow-MicroBlaze-.weakext-pattern-in.patch index 8c43de05..4d1e2017 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0007-Patch-testsuite-Allow-MicroBlaze-.weakext-pattern-in.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0007-Patch-testsuite-Allow-MicroBlaze-.weakext-pattern-in.patch | |||
| @@ -1,9 +1,11 @@ | |||
| 1 | From c210044f15df2433438b6b74e5c2bcf79458c2e4 Mon Sep 17 00:00:00 2001 | 1 | From 38ece4b2dc5d34c1b88b6ea8dd8e62a0986f8f6c Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Thu, 12 Jan 2017 16:14:15 +0530 | 3 | Date: Thu, 12 Jan 2017 16:14:15 +0530 |
| 4 | Subject: [PATCH 07/63] [Patch, testsuite]: Allow MicroBlaze .weakext pattern | 4 | Subject: [PATCH 07/58] [Patch, testsuite]: Allow MicroBlaze .weakext pattern |
| 5 | in regex match Extend regex pattern to include optional ext at the end of | 5 | in regex match |
| 6 | .weak to match the MicroBlaze weak label .weakext | 6 | |
| 7 | Extend regex pattern to include optional ext at the end of | ||
| 8 | .weak to match the MicroBlaze weak label .weakext | ||
| 7 | 9 | ||
| 8 | ChangeLog/testsuite | 10 | ChangeLog/testsuite |
| 9 | 11 | ||
| @@ -25,7 +27,7 @@ Conflicts: | |||
| 25 | 3 files changed, 4 insertions(+), 4 deletions(-) | 27 | 3 files changed, 4 insertions(+), 4 deletions(-) |
| 26 | 28 | ||
| 27 | diff --git a/gcc/testsuite/g++.dg/abi/rtti3.C b/gcc/testsuite/g++.dg/abi/rtti3.C | 29 | diff --git a/gcc/testsuite/g++.dg/abi/rtti3.C b/gcc/testsuite/g++.dg/abi/rtti3.C |
| 28 | index 0cc7d3e..f284cd9 100644 | 30 | index 0cc7d3e79d0..f284cd9255c 100644 |
| 29 | --- a/gcc/testsuite/g++.dg/abi/rtti3.C | 31 | --- a/gcc/testsuite/g++.dg/abi/rtti3.C |
| 30 | +++ b/gcc/testsuite/g++.dg/abi/rtti3.C | 32 | +++ b/gcc/testsuite/g++.dg/abi/rtti3.C |
| 31 | @@ -3,8 +3,8 @@ | 33 | @@ -3,8 +3,8 @@ |
| @@ -40,7 +42,7 @@ index 0cc7d3e..f284cd9 100644 | |||
| 40 | // { dg-final { scan-assembler-not ".weak_definition\[ \t\]_?_ZTIPP1A" { target { *-*-darwin* } } } } | 42 | // { dg-final { scan-assembler-not ".weak_definition\[ \t\]_?_ZTIPP1A" { target { *-*-darwin* } } } } |
| 41 | 43 | ||
| 42 | diff --git a/gcc/testsuite/g++.dg/abi/thunk3.C b/gcc/testsuite/g++.dg/abi/thunk3.C | 44 | diff --git a/gcc/testsuite/g++.dg/abi/thunk3.C b/gcc/testsuite/g++.dg/abi/thunk3.C |
| 43 | index f2347f7..dcec8a7 100644 | 45 | index f2347f79ecd..dcec8a771a1 100644 |
| 44 | --- a/gcc/testsuite/g++.dg/abi/thunk3.C | 46 | --- a/gcc/testsuite/g++.dg/abi/thunk3.C |
| 45 | +++ b/gcc/testsuite/g++.dg/abi/thunk3.C | 47 | +++ b/gcc/testsuite/g++.dg/abi/thunk3.C |
| 46 | @@ -1,5 +1,5 @@ | 48 | @@ -1,5 +1,5 @@ |
| @@ -51,7 +53,7 @@ index f2347f7..dcec8a7 100644 | |||
| 51 | 53 | ||
| 52 | struct Base | 54 | struct Base |
| 53 | diff --git a/gcc/testsuite/g++.dg/abi/thunk4.C b/gcc/testsuite/g++.dg/abi/thunk4.C | 55 | diff --git a/gcc/testsuite/g++.dg/abi/thunk4.C b/gcc/testsuite/g++.dg/abi/thunk4.C |
| 54 | index 6e8f124..d1d34fe 100644 | 56 | index 6e8f124bc5e..d1d34fe1e4a 100644 |
| 55 | --- a/gcc/testsuite/g++.dg/abi/thunk4.C | 57 | --- a/gcc/testsuite/g++.dg/abi/thunk4.C |
| 56 | +++ b/gcc/testsuite/g++.dg/abi/thunk4.C | 58 | +++ b/gcc/testsuite/g++.dg/abi/thunk4.C |
| 57 | @@ -1,6 +1,6 @@ | 59 | @@ -1,6 +1,6 @@ |
| @@ -63,5 +65,5 @@ index 6e8f124..d1d34fe 100644 | |||
| 63 | 65 | ||
| 64 | struct Base | 66 | struct Base |
| 65 | -- | 67 | -- |
| 66 | 2.7.4 | 68 | 2.17.1 |
| 67 | 69 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0008-Patch-testsuite-Add-MicroBlaze-to-check_profiling_av.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0008-Patch-testsuite-Add-MicroBlaze-to-check_profiling_av.patch index d02be316..f96d7d57 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0008-Patch-testsuite-Add-MicroBlaze-to-check_profiling_av.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0008-Patch-testsuite-Add-MicroBlaze-to-check_profiling_av.patch | |||
| @@ -1,10 +1,11 @@ | |||
| 1 | From 283d8576d2599b3c38814e7c70e3f36ed51df9da Mon Sep 17 00:00:00 2001 | 1 | From bc5f423bcfa24aa8c15548379bfc6b3f49e57c15 Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Thu, 12 Jan 2017 16:34:27 +0530 | 3 | Date: Thu, 12 Jan 2017 16:34:27 +0530 |
| 4 | Subject: [PATCH 08/63] [Patch, testsuite]: Add MicroBlaze to | 4 | Subject: [PATCH 08/58] [Patch, testsuite]: Add MicroBlaze to |
| 5 | check_profiling_available Testsuite, add microblaze*-*-* target in | 5 | check_profiling_available |
| 6 | check_profiling_available inline with other archs setting | 6 | |
| 7 | profiling_available_saved to 0 | 7 | Testsuite, add microblaze*-*-* target in check_profiling_available |
| 8 | inline with other archs setting profiling_available_saved to 0 | ||
| 8 | 9 | ||
| 9 | Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com> | 10 | Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com> |
| 10 | --- | 11 | --- |
| @@ -12,10 +13,10 @@ Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com> | |||
| 12 | 1 file changed, 1 insertion(+) | 13 | 1 file changed, 1 insertion(+) |
| 13 | 14 | ||
| 14 | diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp | 15 | diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp |
| 15 | index 0a69659e..d47819c 100644 | 16 | index d2f65dac32c..d949fbd8464 100644 |
| 16 | --- a/gcc/testsuite/lib/target-supports.exp | 17 | --- a/gcc/testsuite/lib/target-supports.exp |
| 17 | +++ b/gcc/testsuite/lib/target-supports.exp | 18 | +++ b/gcc/testsuite/lib/target-supports.exp |
| 18 | @@ -678,6 +678,7 @@ proc check_profiling_available { test_what } { | 19 | @@ -707,6 +707,7 @@ proc check_profiling_available { test_what } { |
| 19 | || [istarget m68k-*-elf] | 20 | || [istarget m68k-*-elf] |
| 20 | || [istarget m68k-*-uclinux*] | 21 | || [istarget m68k-*-uclinux*] |
| 21 | || [istarget mips*-*-elf*] | 22 | || [istarget mips*-*-elf*] |
| @@ -24,5 +25,5 @@ index 0a69659e..d47819c 100644 | |||
| 24 | || [istarget mn10300-*-elf*] | 25 | || [istarget mn10300-*-elf*] |
| 25 | || [istarget moxie-*-elf*] | 26 | || [istarget moxie-*-elf*] |
| 26 | -- | 27 | -- |
| 27 | 2.7.4 | 28 | 2.17.1 |
| 28 | 29 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0009-Patch-microblaze-Fix-atomic-side-effects.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0009-Patch-microblaze-Fix-atomic-side-effects.patch index ae24c080..45d93cee 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0009-Patch-microblaze-Fix-atomic-side-effects.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0009-Patch-microblaze-Fix-atomic-side-effects.patch | |||
| @@ -1,11 +1,12 @@ | |||
| 1 | From 1905061b279e6fe5fd9861fc490fd4075edac4a8 Mon Sep 17 00:00:00 2001 | 1 | From eeeb8ecda7cb71c033c850ce36162c92c7d0b781 Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Thu, 12 Jan 2017 16:41:43 +0530 | 3 | Date: Thu, 12 Jan 2017 16:41:43 +0530 |
| 4 | Subject: [PATCH 09/63] [Patch, microblaze]: Fix atomic side effects. In | 4 | Subject: [PATCH 09/58] [Patch, microblaze]: Fix atomic side effects. |
| 5 | atomic_compare_and_swapsi, add side effects to prevent incorrect assumptions | 5 | |
| 6 | during optimization. Previously, the outputs were considered unused; this | 6 | In atomic_compare_and_swapsi, add side effects to prevent incorrect |
| 7 | generated assembly code with undefined side effects after invocation of the | 7 | assumptions during optimization. Previously, the outputs were |
| 8 | atomic. | 8 | considered unused; this generated assembly code with |
| 9 | undefined side effects after invocation of the atomic. | ||
| 9 | 10 | ||
| 10 | Signed-off-by: Kirk Meyer <kirk.meyer@sencore.com> | 11 | Signed-off-by: Kirk Meyer <kirk.meyer@sencore.com> |
| 11 | Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com> | 12 | Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com> |
| @@ -18,7 +19,7 @@ Conflicts: | |||
| 18 | 2 files changed, 16 insertions(+), 8 deletions(-) | 19 | 2 files changed, 16 insertions(+), 8 deletions(-) |
| 19 | 20 | ||
| 20 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md | 21 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md |
| 21 | index 183afff..7a40c53 100644 | 22 | index 7049acd1dcd..eba2776ae56 100644 |
| 22 | --- a/gcc/config/microblaze/microblaze.md | 23 | --- a/gcc/config/microblaze/microblaze.md |
| 23 | +++ b/gcc/config/microblaze/microblaze.md | 24 | +++ b/gcc/config/microblaze/microblaze.md |
| 24 | @@ -43,6 +43,9 @@ | 25 | @@ -43,6 +43,9 @@ |
| @@ -32,7 +33,7 @@ index 183afff..7a40c53 100644 | |||
| 32 | 33 | ||
| 33 | (define_c_enum "unspec" [ | 34 | (define_c_enum "unspec" [ |
| 34 | diff --git a/gcc/config/microblaze/sync.md b/gcc/config/microblaze/sync.md | 35 | diff --git a/gcc/config/microblaze/sync.md b/gcc/config/microblaze/sync.md |
| 35 | index 6f16ca6..bebab5c 100644 | 36 | index 76f530b9d3b..24cd67e1fdb 100644 |
| 36 | --- a/gcc/config/microblaze/sync.md | 37 | --- a/gcc/config/microblaze/sync.md |
| 37 | +++ b/gcc/config/microblaze/sync.md | 38 | +++ b/gcc/config/microblaze/sync.md |
| 38 | @@ -18,14 +18,19 @@ | 39 | @@ -18,14 +18,19 @@ |
| @@ -64,5 +65,5 @@ index 6f16ca6..bebab5c 100644 | |||
| 64 | "" | 65 | "" |
| 65 | { | 66 | { |
| 66 | -- | 67 | -- |
| 67 | 2.7.4 | 68 | 2.17.1 |
| 68 | 69 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0010-Patch-microblaze-Fix-atomic-boolean-return-value.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0010-Patch-microblaze-Fix-atomic-boolean-return-value.patch index 07a43177..48f77215 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0010-Patch-microblaze-Fix-atomic-boolean-return-value.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0010-Patch-microblaze-Fix-atomic-boolean-return-value.patch | |||
| @@ -1,9 +1,11 @@ | |||
| 1 | From 65bc1969bd652df4bf9d01d30547a947da293550 Mon Sep 17 00:00:00 2001 | 1 | From 834448fc3493be56cc6a4f6b504569142f7f6070 Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Thu, 12 Jan 2017 16:45:45 +0530 | 3 | Date: Thu, 12 Jan 2017 16:45:45 +0530 |
| 4 | Subject: [PATCH 10/63] [Patch, microblaze]: Fix atomic boolean return value. | 4 | Subject: [PATCH 10/58] [Patch, microblaze]: Fix atomic boolean return value. |
| 5 | In atomic_compare_and_swapsi, fix boolean return value. Previously, it | 5 | |
| 6 | contained zero if successful and non-zero if unsuccessful. | 6 | In atomic_compare_and_swapsi, fix boolean return value. |
| 7 | Previously, it contained zero if successful and non-zero | ||
| 8 | if unsuccessful. | ||
| 7 | 9 | ||
| 8 | Signed-off-by: Kirk Meyer <kirk.meyer@sencore.com> | 10 | Signed-off-by: Kirk Meyer <kirk.meyer@sencore.com> |
| 9 | Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com> | 11 | Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com> |
| @@ -12,7 +14,7 @@ Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com> | |||
| 12 | 1 file changed, 4 insertions(+), 3 deletions(-) | 14 | 1 file changed, 4 insertions(+), 3 deletions(-) |
| 13 | 15 | ||
| 14 | diff --git a/gcc/config/microblaze/sync.md b/gcc/config/microblaze/sync.md | 16 | diff --git a/gcc/config/microblaze/sync.md b/gcc/config/microblaze/sync.md |
| 15 | index bebab5c..72eac09 100644 | 17 | index 24cd67e1fdb..76c3616c992 100644 |
| 16 | --- a/gcc/config/microblaze/sync.md | 18 | --- a/gcc/config/microblaze/sync.md |
| 17 | +++ b/gcc/config/microblaze/sync.md | 19 | +++ b/gcc/config/microblaze/sync.md |
| 18 | @@ -34,15 +34,16 @@ | 20 | @@ -34,15 +34,16 @@ |
| @@ -36,5 +38,5 @@ index bebab5c..72eac09 100644 | |||
| 36 | } | 38 | } |
| 37 | ) | 39 | ) |
| 38 | -- | 40 | -- |
| 39 | 2.7.4 | 41 | 2.17.1 |
| 40 | 42 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0011-Patch-microblaze-Fix-the-Microblaze-crash-with-msmal.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0011-Patch-microblaze-Fix-the-Microblaze-crash-with-msmal.patch index b9ba239f..e60e6f2f 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0011-Patch-microblaze-Fix-the-Microblaze-crash-with-msmal.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0011-Patch-microblaze-Fix-the-Microblaze-crash-with-msmal.patch | |||
| @@ -1,13 +1,14 @@ | |||
| 1 | From 4e4409f10b450ec9254e69445ffeb8d116906d16 Mon Sep 17 00:00:00 2001 | 1 | From 19457459592123c41c3ce9e084e165525e4d7bb0 Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Thu, 12 Jan 2017 16:50:17 +0530 | 3 | Date: Thu, 12 Jan 2017 16:50:17 +0530 |
| 4 | Subject: [PATCH 11/63] [Patch, microblaze]: Fix the Microblaze crash with | 4 | Subject: [PATCH 11/58] [Patch, microblaze]: Fix the Microblaze crash with |
| 5 | msmall-divides flag Compiler is crashing when we use msmall-divides and | 5 | msmall-divides flag |
| 6 | mxl-barrel-shift flag. This is because when use above flags | 6 | |
| 7 | microblaze_expand_divide function will be called for division operation. In | 7 | Compiler is crashing when we use msmall-divides and mxl-barrel-shift flag. |
| 8 | microblaze_expand_divide function we are using sub_reg but MicroBlaze doesn't | 8 | This is because when use above flags microblaze_expand_divide function will be |
| 9 | have subreg register due to this compiler was crashing. Changed the logic to | 9 | called for division operation. In microblaze_expand_divide function we are |
| 10 | avoid sub_reg call | 10 | using sub_reg but MicroBlaze doesn't have subreg register due to this compiler |
| 11 | was crashing. Changed the logic to avoid sub_reg call | ||
| 11 | 12 | ||
| 12 | Signed-off-by:Nagaraju Mekala <nmekala@xilix.com> | 13 | Signed-off-by:Nagaraju Mekala <nmekala@xilix.com> |
| 13 | --- | 14 | --- |
| @@ -15,10 +16,10 @@ Signed-off-by:Nagaraju Mekala <nmekala@xilix.com> | |||
| 15 | 1 file changed, 1 insertion(+), 2 deletions(-) | 16 | 1 file changed, 1 insertion(+), 2 deletions(-) |
| 16 | 17 | ||
| 17 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c | 18 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c |
| 18 | index 55c1bec..ae45038 100644 | 19 | index a0f81b71391..0186171c04c 100644 |
| 19 | --- a/gcc/config/microblaze/microblaze.c | 20 | --- a/gcc/config/microblaze/microblaze.c |
| 20 | +++ b/gcc/config/microblaze/microblaze.c | 21 | +++ b/gcc/config/microblaze/microblaze.c |
| 21 | @@ -3715,8 +3715,7 @@ microblaze_expand_divide (rtx operands[]) | 22 | @@ -3709,8 +3709,7 @@ microblaze_expand_divide (rtx operands[]) |
| 22 | mem_rtx = gen_rtx_MEM (QImode, | 23 | mem_rtx = gen_rtx_MEM (QImode, |
| 23 | gen_rtx_PLUS (Pmode, regt1, div_table_rtx)); | 24 | gen_rtx_PLUS (Pmode, regt1, div_table_rtx)); |
| 24 | 25 | ||
| @@ -29,5 +30,5 @@ index 55c1bec..ae45038 100644 | |||
| 29 | JUMP_LABEL (jump) = div_end_label; | 30 | JUMP_LABEL (jump) = div_end_label; |
| 30 | LABEL_NUSES (div_end_label) = 1; | 31 | LABEL_NUSES (div_end_label) = 1; |
| 31 | -- | 32 | -- |
| 32 | 2.7.4 | 33 | 2.17.1 |
| 33 | 34 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0012-Patch-microblaze-Added-ashrsi3_with_size_opt.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0012-Patch-microblaze-Added-ashrsi3_with_size_opt.patch index fc47bae6..b9e39928 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0012-Patch-microblaze-Added-ashrsi3_with_size_opt.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0012-Patch-microblaze-Added-ashrsi3_with_size_opt.patch | |||
| @@ -1,10 +1,11 @@ | |||
| 1 | From 6dbeb53f0185dd587ece39d624d193768633a7ab Mon Sep 17 00:00:00 2001 | 1 | From 9da28a01ffb778fc5cb5df27332cef21f890a63f Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Thu, 12 Jan 2017 16:52:56 +0530 | 3 | Date: Thu, 12 Jan 2017 16:52:56 +0530 |
| 4 | Subject: [PATCH 12/63] [Patch, microblaze]: Added ashrsi3_with_size_opt Added | 4 | Subject: [PATCH 12/58] [Patch, microblaze]: Added ashrsi3_with_size_opt |
| 5 | ashrsi3_with_size_opt pattern to optimize the sra instructions when the -Os | 5 | |
| 6 | optimization is used. lshrsi3_with_size_opt is being removed as it has | 6 | Added ashrsi3_with_size_opt pattern to optimize the sra instructions |
| 7 | conflicts with unsigned int variables | 7 | when the -Os optimization is used. lshrsi3_with_size_opt is |
| 8 | being removed as it has conflicts with unsigned int variables | ||
| 8 | 9 | ||
| 9 | Signed-off-by:Nagaraju Mekala <nmekala@xilix.com> | 10 | Signed-off-by:Nagaraju Mekala <nmekala@xilix.com> |
| 10 | --- | 11 | --- |
| @@ -12,7 +13,7 @@ Signed-off-by:Nagaraju Mekala <nmekala@xilix.com> | |||
| 12 | 1 file changed, 21 insertions(+) | 13 | 1 file changed, 21 insertions(+) |
| 13 | 14 | ||
| 14 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md | 15 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md |
| 15 | index 7a40c53..3d2636e 100644 | 16 | index eba2776ae56..187ad522dcc 100644 |
| 16 | --- a/gcc/config/microblaze/microblaze.md | 17 | --- a/gcc/config/microblaze/microblaze.md |
| 17 | +++ b/gcc/config/microblaze/microblaze.md | 18 | +++ b/gcc/config/microblaze/microblaze.md |
| 18 | @@ -1508,6 +1508,27 @@ | 19 | @@ -1508,6 +1508,27 @@ |
| @@ -44,5 +45,5 @@ index 7a40c53..3d2636e 100644 | |||
| 44 | [(set (match_operand:SI 0 "register_operand" "=&d") | 45 | [(set (match_operand:SI 0 "register_operand" "=&d") |
| 45 | (ashiftrt:SI (match_operand:SI 1 "register_operand" "d") | 46 | (ashiftrt:SI (match_operand:SI 1 "register_operand" "d") |
| 46 | -- | 47 | -- |
| 47 | 2.7.4 | 48 | 2.17.1 |
| 48 | 49 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0013-Patch-microblaze-Fixed-missing-save-of-r18-in-fast_i.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0013-Patch-microblaze-Fixed-missing-save-of-r18-in-fast_i.patch deleted file mode 100644 index 3b4b4c70..00000000 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0013-Patch-microblaze-Fixed-missing-save-of-r18-in-fast_i.patch +++ /dev/null | |||
| @@ -1,41 +0,0 @@ | |||
| 1 | From 53ab5a3fec283aeb9d2efeb632d423b774192e65 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | ||
| 3 | Date: Thu, 12 Jan 2017 17:50:03 +0530 | ||
| 4 | Subject: [PATCH 13/63] [Patch, microblaze]: Fixed missing save of r18 in | ||
| 5 | fast_interrupt. Register 18 is used as a clobber register, and must be stored | ||
| 6 | when entering a fast_interrupt. Before this fix, register 18 was only saved | ||
| 7 | if it was used directly in the interrupt function. | ||
| 8 | |||
| 9 | However, if the fast_interrupt function called a function that used | ||
| 10 | r18, the register would not be saved, and thus be mangled | ||
| 11 | upon returning from the interrupt. | ||
| 12 | |||
| 13 | Changelog | ||
| 14 | |||
| 15 | 2014-02-27 Klaus Petersen <klauspetersen@gmail.com> | ||
| 16 | |||
| 17 | * gcc/config/microblaze/microblaze.c: Check for fast_interrupt in | ||
| 18 | microblaze_must_save_register. | ||
| 19 | |||
| 20 | Signed-off-by: Klaus Petersen <klauspetersen@gmail.com> | ||
| 21 | Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com> | ||
| 22 | --- | ||
| 23 | gcc/config/microblaze/microblaze.c | 2 +- | ||
| 24 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
| 25 | |||
| 26 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c | ||
| 27 | index ae45038..c834b49 100644 | ||
| 28 | --- a/gcc/config/microblaze/microblaze.c | ||
| 29 | +++ b/gcc/config/microblaze/microblaze.c | ||
| 30 | @@ -2043,7 +2043,7 @@ microblaze_must_save_register (int regno) | ||
| 31 | { | ||
| 32 | if (df_regs_ever_live_p (regno) | ||
| 33 | || regno == MB_ABI_MSR_SAVE_REG | ||
| 34 | - || (interrupt_handler | ||
| 35 | + || ((interrupt_handler || fast_interrupt) | ||
| 36 | && (regno == MB_ABI_ASM_TEMP_REGNUM | ||
| 37 | || regno == MB_ABI_EXCEPTION_RETURN_ADDR_REGNUM))) | ||
| 38 | return 1; | ||
| 39 | -- | ||
| 40 | 2.7.4 | ||
| 41 | |||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0014-Patch-microblaze-Use-bralid-for-profiler-calls.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0013-Patch-microblaze-Use-bralid-for-profiler-calls.patch index 889a1e69..36af2652 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0014-Patch-microblaze-Use-bralid-for-profiler-calls.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0013-Patch-microblaze-Use-bralid-for-profiler-calls.patch | |||
| @@ -1,15 +1,15 @@ | |||
| 1 | From cbf1854e3569122ee1143e6716ff68275c26aced Mon Sep 17 00:00:00 2001 | 1 | From 07a5c8b22a1cef99b2d4570ea080c503260161e4 Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Tue, 17 Jan 2017 10:57:19 +0530 | 3 | Date: Tue, 17 Jan 2017 10:57:19 +0530 |
| 4 | Subject: [PATCH 14/63] [Patch, microblaze]: Use bralid for profiler calls | 4 | Subject: [PATCH 13/58] [Patch, microblaze]: Use bralid for profiler calls |
| 5 | Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com> | ||
| 6 | 5 | ||
| 6 | Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com> | ||
| 7 | --- | 7 | --- |
| 8 | gcc/config/microblaze/microblaze.h | 2 +- | 8 | gcc/config/microblaze/microblaze.h | 2 +- |
| 9 | 1 file changed, 1 insertion(+), 1 deletion(-) | 9 | 1 file changed, 1 insertion(+), 1 deletion(-) |
| 10 | 10 | ||
| 11 | diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h | 11 | diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h |
| 12 | index fa0806e..0a435b8 100644 | 12 | index dc112f5301f..8aa3f155790 100644 |
| 13 | --- a/gcc/config/microblaze/microblaze.h | 13 | --- a/gcc/config/microblaze/microblaze.h |
| 14 | +++ b/gcc/config/microblaze/microblaze.h | 14 | +++ b/gcc/config/microblaze/microblaze.h |
| 15 | @@ -486,7 +486,7 @@ typedef struct microblaze_args | 15 | @@ -486,7 +486,7 @@ typedef struct microblaze_args |
| @@ -22,5 +22,5 @@ index fa0806e..0a435b8 100644 | |||
| 22 | } | 22 | } |
| 23 | 23 | ||
| 24 | -- | 24 | -- |
| 25 | 2.7.4 | 25 | 2.17.1 |
| 26 | 26 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0015-Patch-microblaze-Disable-fivopts-by-default.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0014-Patch-microblaze-Disable-fivopts-by-default.patch index 0ada80eb..51563ecb 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0015-Patch-microblaze-Disable-fivopts-by-default.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0014-Patch-microblaze-Disable-fivopts-by-default.patch | |||
| @@ -1,8 +1,9 @@ | |||
| 1 | From 604cae83ce9d2942568178966f69614acbbcbefd Mon Sep 17 00:00:00 2001 | 1 | From 616f16089f0b01ab02008d7291df0972a99782e0 Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Tue, 17 Jan 2017 11:10:21 +0530 | 3 | Date: Tue, 17 Jan 2017 11:10:21 +0530 |
| 4 | Subject: [PATCH 15/63] [Patch, microblaze]: Disable fivopts by default Turn | 4 | Subject: [PATCH 14/58] [Patch, microblaze]: Disable fivopts by default |
| 5 | off ivopts by default. Interferes with cse. | 5 | |
| 6 | Turn off ivopts by default. Interferes with cse. | ||
| 6 | 7 | ||
| 7 | Changelog | 8 | Changelog |
| 8 | 9 | ||
| @@ -18,7 +19,7 @@ Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com> | |||
| 18 | 1 file changed, 9 insertions(+) | 19 | 1 file changed, 9 insertions(+) |
| 19 | 20 | ||
| 20 | diff --git a/gcc/common/config/microblaze/microblaze-common.c b/gcc/common/config/microblaze/microblaze-common.c | 21 | diff --git a/gcc/common/config/microblaze/microblaze-common.c b/gcc/common/config/microblaze/microblaze-common.c |
| 21 | index c30bdef..9b6ef21 100644 | 22 | index 4391f939626..0b9d5a1b453 100644 |
| 22 | --- a/gcc/common/config/microblaze/microblaze-common.c | 23 | --- a/gcc/common/config/microblaze/microblaze-common.c |
| 23 | +++ b/gcc/common/config/microblaze/microblaze-common.c | 24 | +++ b/gcc/common/config/microblaze/microblaze-common.c |
| 24 | @@ -24,6 +24,15 @@ | 25 | @@ -24,6 +24,15 @@ |
| @@ -38,5 +39,5 @@ index c30bdef..9b6ef21 100644 | |||
| 38 | #define TARGET_DEFAULT_TARGET_FLAGS TARGET_DEFAULT | 39 | #define TARGET_DEFAULT_TARGET_FLAGS TARGET_DEFAULT |
| 39 | 40 | ||
| 40 | -- | 41 | -- |
| 41 | 2.7.4 | 42 | 2.17.1 |
| 42 | 43 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0016-Patch-microblaze-Removed-moddi3-routinue.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0015-Patch-microblaze-Removed-moddi3-routinue.patch index 87bc1668..e7fb9393 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0016-Patch-microblaze-Removed-moddi3-routinue.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0015-Patch-microblaze-Removed-moddi3-routinue.patch | |||
| @@ -1,28 +1,29 @@ | |||
| 1 | From 14ddb3217fbb84c48903124ec6a3614b4707630d Mon Sep 17 00:00:00 2001 | 1 | From c2a6652176751bc95e2f990179e90cfe58026feb Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Thu, 12 Jan 2017 17:36:16 +0530 | 3 | Date: Thu, 12 Jan 2017 17:36:16 +0530 |
| 4 | Subject: [PATCH 16/63] [Patch, microblaze]: Removed moddi3 routinue Using the | 4 | Subject: [PATCH 15/58] [Patch, microblaze]: Removed moddi3 routinue |
| 5 | default moddi3 function as the existing implementation has many bugs | 5 | |
| 6 | Using the default moddi3 function as the existing implementation has many bugs | ||
| 6 | 7 | ||
| 7 | Signed-off-by:Nagaraju <nmekala@xilix.com> | 8 | Signed-off-by:Nagaraju <nmekala@xilix.com> |
| 8 | 9 | ||
| 9 | Conflicts: | 10 | Conflicts: |
| 10 | libgcc/config/microblaze/moddi3.S | 11 | libgcc/config/microblaze/moddi3.S |
| 11 | --- | 12 | --- |
| 12 | libgcc/config/microblaze/moddi3.S | 121 ---------------------------------- | 13 | libgcc/config/microblaze/moddi3.S | 121 -------------------------- |
| 13 | libgcc/config/microblaze/t-microblaze | 3 +- | 14 | libgcc/config/microblaze/t-microblaze | 3 +- |
| 14 | 2 files changed, 1 insertion(+), 123 deletions(-) | 15 | 2 files changed, 1 insertion(+), 123 deletions(-) |
| 15 | delete mode 100644 libgcc/config/microblaze/moddi3.S | 16 | delete mode 100644 libgcc/config/microblaze/moddi3.S |
| 16 | 17 | ||
| 17 | diff --git a/libgcc/config/microblaze/moddi3.S b/libgcc/config/microblaze/moddi3.S | 18 | diff --git a/libgcc/config/microblaze/moddi3.S b/libgcc/config/microblaze/moddi3.S |
| 18 | deleted file mode 100644 | 19 | deleted file mode 100644 |
| 19 | index abfe4fc..0000000 | 20 | index d0e24fdb89d..00000000000 |
| 20 | --- a/libgcc/config/microblaze/moddi3.S | 21 | --- a/libgcc/config/microblaze/moddi3.S |
| 21 | +++ /dev/null | 22 | +++ /dev/null |
| 22 | @@ -1,121 +0,0 @@ | 23 | @@ -1,121 +0,0 @@ |
| 23 | -################################### | 24 | -################################### |
| 24 | -# | 25 | -# |
| 25 | -# Copyright (C) 2009-2019 Free Software Foundation, Inc. | 26 | -# Copyright (C) 2009-2020 Free Software Foundation, Inc. |
| 26 | -# | 27 | -# |
| 27 | -# Contributed by Michael Eager <eager@eagercon.com>. | 28 | -# Contributed by Michael Eager <eager@eagercon.com>. |
| 28 | -# | 29 | -# |
| @@ -142,7 +143,7 @@ index abfe4fc..0000000 | |||
| 142 | - .end __moddi3 | 143 | - .end __moddi3 |
| 143 | - | 144 | - |
| 144 | diff --git a/libgcc/config/microblaze/t-microblaze b/libgcc/config/microblaze/t-microblaze | 145 | diff --git a/libgcc/config/microblaze/t-microblaze b/libgcc/config/microblaze/t-microblaze |
| 145 | index 96959f0..8d954a4 100644 | 146 | index 96959f0292b..8d954a49575 100644 |
| 146 | --- a/libgcc/config/microblaze/t-microblaze | 147 | --- a/libgcc/config/microblaze/t-microblaze |
| 147 | +++ b/libgcc/config/microblaze/t-microblaze | 148 | +++ b/libgcc/config/microblaze/t-microblaze |
| 148 | @@ -1,8 +1,7 @@ | 149 | @@ -1,8 +1,7 @@ |
| @@ -156,5 +157,5 @@ index 96959f0..8d954a4 100644 | |||
| 156 | $(srcdir)/config/microblaze/muldi3_hard.S \ | 157 | $(srcdir)/config/microblaze/muldi3_hard.S \ |
| 157 | $(srcdir)/config/microblaze/mulsi3.S \ | 158 | $(srcdir)/config/microblaze/mulsi3.S \ |
| 158 | -- | 159 | -- |
| 159 | 2.7.4 | 160 | 2.17.1 |
| 160 | 161 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0017-Patch-microblaze-Add-INIT_PRIORITY-support.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0016-Patch-microblaze-Add-INIT_PRIORITY-support.patch index ca1c2d1c..13c3ccd9 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0017-Patch-microblaze-Add-INIT_PRIORITY-support.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0016-Patch-microblaze-Add-INIT_PRIORITY-support.patch | |||
| @@ -1,8 +1,9 @@ | |||
| 1 | From 032e50c1b267306338cff4d136db88f08350de72 Mon Sep 17 00:00:00 2001 | 1 | From 9a4253a92a5e1811693ea1707b5fc272908ec556 Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Tue, 17 Jan 2017 14:41:58 +0530 | 3 | Date: Tue, 17 Jan 2017 14:41:58 +0530 |
| 4 | Subject: [PATCH 17/63] [Patch, microblaze]: Add INIT_PRIORITY support Added | 4 | Subject: [PATCH 16/58] [Patch, microblaze]: Add INIT_PRIORITY support |
| 5 | TARGET_ASM_CONSTRUCTOR and TARGET_ASM_DESTRUCTOR macros. | 5 | |
| 6 | Added TARGET_ASM_CONSTRUCTOR and TARGET_ASM_DESTRUCTOR macros. | ||
| 6 | 7 | ||
| 7 | These macros allows users to control the order of initialization | 8 | These macros allows users to control the order of initialization |
| 8 | of objects defined at namespace scope with the init_priority | 9 | of objects defined at namespace scope with the init_priority |
| @@ -22,14 +23,14 @@ Changelog | |||
| 22 | Signed-off-by:nagaraju <nmekala@xilix.com> | 23 | Signed-off-by:nagaraju <nmekala@xilix.com> |
| 23 | Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com> | 24 | Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com> |
| 24 | --- | 25 | --- |
| 25 | gcc/config/microblaze/microblaze.c | 53 ++++++++++++++++++++++++++++++++++++++ | 26 | gcc/config/microblaze/microblaze.c | 53 ++++++++++++++++++++++++++++++ |
| 26 | 1 file changed, 53 insertions(+) | 27 | 1 file changed, 53 insertions(+) |
| 27 | 28 | ||
| 28 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c | 29 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c |
| 29 | index c834b49..c54b96b 100644 | 30 | index 0186171c04c..9eae5515c60 100644 |
| 30 | --- a/gcc/config/microblaze/microblaze.c | 31 | --- a/gcc/config/microblaze/microblaze.c |
| 31 | +++ b/gcc/config/microblaze/microblaze.c | 32 | +++ b/gcc/config/microblaze/microblaze.c |
| 32 | @@ -2642,6 +2642,53 @@ print_operand_address (FILE * file, rtx addr) | 33 | @@ -2634,6 +2634,53 @@ print_operand_address (FILE * file, rtx addr) |
| 33 | } | 34 | } |
| 34 | } | 35 | } |
| 35 | 36 | ||
| @@ -83,7 +84,7 @@ index c834b49..c54b96b 100644 | |||
| 83 | /* Emit either a label, .comm, or .lcomm directive, and mark that the symbol | 84 | /* Emit either a label, .comm, or .lcomm directive, and mark that the symbol |
| 84 | is used, so that we don't emit an .extern for it in | 85 | is used, so that we don't emit an .extern for it in |
| 85 | microblaze_asm_file_end. */ | 86 | microblaze_asm_file_end. */ |
| 86 | @@ -3981,6 +4028,12 @@ microblaze_starting_frame_offset (void) | 87 | @@ -3975,6 +4022,12 @@ microblaze_starting_frame_offset (void) |
| 87 | #undef TARGET_ATTRIBUTE_TABLE | 88 | #undef TARGET_ATTRIBUTE_TABLE |
| 88 | #define TARGET_ATTRIBUTE_TABLE microblaze_attribute_table | 89 | #define TARGET_ATTRIBUTE_TABLE microblaze_attribute_table |
| 89 | 90 | ||
| @@ -97,5 +98,5 @@ index c834b49..c54b96b 100644 | |||
| 97 | #define TARGET_IN_SMALL_DATA_P microblaze_elf_in_small_data_p | 98 | #define TARGET_IN_SMALL_DATA_P microblaze_elf_in_small_data_p |
| 98 | 99 | ||
| 99 | -- | 100 | -- |
| 100 | 2.7.4 | 101 | 2.17.1 |
| 101 | 102 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0018-Patch-microblaze-Add-optimized-lshrsi3.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0017-Patch-microblaze-Add-optimized-lshrsi3.patch index de35f286..cfc06f74 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0018-Patch-microblaze-Add-optimized-lshrsi3.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0017-Patch-microblaze-Add-optimized-lshrsi3.patch | |||
| @@ -1,9 +1,11 @@ | |||
| 1 | From 6db9d068e32a424ac04c27e963d1e58cb3ef8bdf Mon Sep 17 00:00:00 2001 | 1 | From 27c27a8876152bac78059a1b2d5a6f0ac9b8cee2 Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Tue, 17 Jan 2017 15:23:57 +0530 | 3 | Date: Tue, 17 Jan 2017 15:23:57 +0530 |
| 4 | Subject: [PATCH 18/63] [Patch, microblaze]: Add optimized lshrsi3 When barrel | 4 | Subject: [PATCH 17/58] [Patch, microblaze]: Add optimized lshrsi3 |
| 5 | shifter is not present, the immediate value is greater than #5 and | 5 | |
| 6 | optimization is -OS, the compiler will generate shift operation using loop. | 6 | When barrel shifter is not present, the immediate value |
| 7 | is greater than #5 and optimization is -OS, the | ||
| 8 | compiler will generate shift operation using loop. | ||
| 7 | 9 | ||
| 8 | Changelog | 10 | Changelog |
| 9 | 11 | ||
| @@ -20,13 +22,13 @@ ChangeLog/testsuite | |||
| 20 | Signed-off-by:Nagaraju <nmekala@xilix.com> | 22 | Signed-off-by:Nagaraju <nmekala@xilix.com> |
| 21 | Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com> | 23 | Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com> |
| 22 | --- | 24 | --- |
| 23 | gcc/config/microblaze/microblaze.md | 21 +++++++++++++++++++++ | 25 | gcc/config/microblaze/microblaze.md | 21 +++++++++++++++++++ |
| 24 | .../gcc.target/microblaze/others/lshrsi_Os_1.c | 13 +++++++++++++ | 26 | .../microblaze/others/lshrsi_Os_1.c | 13 ++++++++++++ |
| 25 | 2 files changed, 34 insertions(+) | 27 | 2 files changed, 34 insertions(+) |
| 26 | create mode 100644 gcc/testsuite/gcc.target/microblaze/others/lshrsi_Os_1.c | 28 | create mode 100644 gcc/testsuite/gcc.target/microblaze/others/lshrsi_Os_1.c |
| 27 | 29 | ||
| 28 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md | 30 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md |
| 29 | index 3d2636e..aa2eda3 100644 | 31 | index 187ad522dcc..8f9baec826b 100644 |
| 30 | --- a/gcc/config/microblaze/microblaze.md | 32 | --- a/gcc/config/microblaze/microblaze.md |
| 31 | +++ b/gcc/config/microblaze/microblaze.md | 33 | +++ b/gcc/config/microblaze/microblaze.md |
| 32 | @@ -1618,6 +1618,27 @@ | 34 | @@ -1618,6 +1618,27 @@ |
| @@ -59,7 +61,7 @@ index 3d2636e..aa2eda3 100644 | |||
| 59 | (lshiftrt:SI (match_operand:SI 1 "register_operand" "d") | 61 | (lshiftrt:SI (match_operand:SI 1 "register_operand" "d") |
| 60 | diff --git a/gcc/testsuite/gcc.target/microblaze/others/lshrsi_Os_1.c b/gcc/testsuite/gcc.target/microblaze/others/lshrsi_Os_1.c | 62 | diff --git a/gcc/testsuite/gcc.target/microblaze/others/lshrsi_Os_1.c b/gcc/testsuite/gcc.target/microblaze/others/lshrsi_Os_1.c |
| 61 | new file mode 100644 | 63 | new file mode 100644 |
| 62 | index 0000000..32a3be7 | 64 | index 00000000000..32a3be7c76a |
| 63 | --- /dev/null | 65 | --- /dev/null |
| 64 | +++ b/gcc/testsuite/gcc.target/microblaze/others/lshrsi_Os_1.c | 66 | +++ b/gcc/testsuite/gcc.target/microblaze/others/lshrsi_Os_1.c |
| 65 | @@ -0,0 +1,13 @@ | 67 | @@ -0,0 +1,13 @@ |
| @@ -77,5 +79,5 @@ index 0000000..32a3be7 | |||
| 77 | +/* { dg-final { scan-assembler "bneid\tr18,.-4" } } */ | 79 | +/* { dg-final { scan-assembler "bneid\tr18,.-4" } } */ |
| 78 | +/* { dg-final { scan-assembler "\srl\tr(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),r(\[0-9]\|\[1-2]\[0-9]\|3\[0-1])" } } */ | 80 | +/* { dg-final { scan-assembler "\srl\tr(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),r(\[0-9]\|\[1-2]\[0-9]\|3\[0-1])" } } */ |
| 79 | -- | 81 | -- |
| 80 | 2.7.4 | 82 | 2.17.1 |
| 81 | 83 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0020-Patch-microblaze-Reducing-Stack-space-for-arguments.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0018-Patch-microblaze-Reducing-Stack-space-for-arguments.patch index b60a4e95..1f8decc7 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0020-Patch-microblaze-Reducing-Stack-space-for-arguments.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0018-Patch-microblaze-Reducing-Stack-space-for-arguments.patch | |||
| @@ -1,10 +1,11 @@ | |||
| 1 | From 372bbc75146166df9b82ca5e8f236971b7cef16e Mon Sep 17 00:00:00 2001 | 1 | From 59273a71f1f180456d87eb4a1a5f95fcc6d17003 Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Tue, 17 Jan 2017 16:42:44 +0530 | 3 | Date: Tue, 17 Jan 2017 16:42:44 +0530 |
| 4 | Subject: [PATCH 20/63] [Patch, microblaze]: Reducing Stack space for arguments | 4 | Subject: [PATCH 18/58] [Patch, microblaze]: Reducing Stack space for arguments |
| 5 | Currently in Microblaze target stack space for arguments in register is being | 5 | |
| 6 | allocated even if there are no arguments in the function. This patch will | 6 | Currently in Microblaze target stack space for arguments in register is being |
| 7 | optimize the extra 24 bytes that are being allocated. | 7 | allocated even if there are no arguments in the function. |
| 8 | This patch will optimize the extra 24 bytes that are being allocated. | ||
| 8 | 9 | ||
| 9 | Signed-off-by :Nagaraju Mekala <nmekala@xilix.com> | 10 | Signed-off-by :Nagaraju Mekala <nmekala@xilix.com> |
| 10 | :Ajit Agarwal <ajitkum@xilinx.com> | 11 | :Ajit Agarwal <ajitkum@xilinx.com> |
| @@ -17,12 +18,12 @@ ChangeLog: | |||
| 17 | *microblaze.c (REG_PARM_STACK_SPACE): Modify | 18 | *microblaze.c (REG_PARM_STACK_SPACE): Modify |
| 18 | --- | 19 | --- |
| 19 | gcc/config/microblaze/microblaze-protos.h | 1 + | 20 | gcc/config/microblaze/microblaze-protos.h | 1 + |
| 20 | gcc/config/microblaze/microblaze.c | 134 +++++++++++++++++++++++++++++- | 21 | gcc/config/microblaze/microblaze.c | 132 +++++++++++++++++++++- |
| 21 | gcc/config/microblaze/microblaze.h | 4 +- | 22 | gcc/config/microblaze/microblaze.h | 4 +- |
| 22 | 3 files changed, 136 insertions(+), 3 deletions(-) | 23 | 3 files changed, 134 insertions(+), 3 deletions(-) |
| 23 | 24 | ||
| 24 | diff --git a/gcc/config/microblaze/microblaze-protos.h b/gcc/config/microblaze/microblaze-protos.h | 25 | diff --git a/gcc/config/microblaze/microblaze-protos.h b/gcc/config/microblaze/microblaze-protos.h |
| 25 | index 1f5ca80..6647cbc 100644 | 26 | index 982b2abd2d4..96f7bb67f6c 100644 |
| 26 | --- a/gcc/config/microblaze/microblaze-protos.h | 27 | --- a/gcc/config/microblaze/microblaze-protos.h |
| 27 | +++ b/gcc/config/microblaze/microblaze-protos.h | 28 | +++ b/gcc/config/microblaze/microblaze-protos.h |
| 28 | @@ -59,6 +59,7 @@ extern int symbol_mentioned_p (rtx); | 29 | @@ -59,6 +59,7 @@ extern int symbol_mentioned_p (rtx); |
| @@ -34,17 +35,16 @@ index 1f5ca80..6647cbc 100644 | |||
| 34 | 35 | ||
| 35 | /* Declare functions in microblaze-c.c. */ | 36 | /* Declare functions in microblaze-c.c. */ |
| 36 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c | 37 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c |
| 37 | index c54b96b..0ce9d13 100644 | 38 | index 9eae5515c60..a4bdf66f045 100644 |
| 38 | --- a/gcc/config/microblaze/microblaze.c | 39 | --- a/gcc/config/microblaze/microblaze.c |
| 39 | +++ b/gcc/config/microblaze/microblaze.c | 40 | +++ b/gcc/config/microblaze/microblaze.c |
| 40 | @@ -2065,6 +2065,138 @@ microblaze_must_save_register (int regno) | 41 | @@ -2057,6 +2057,136 @@ microblaze_must_save_register (int regno) |
| 41 | return 0; | 42 | return 0; |
| 42 | } | 43 | } |
| 43 | 44 | ||
| 44 | +static bool | 45 | +static bool |
| 45 | +microblaze_parm_needs_stack (cumulative_args_t args_so_far, tree type) | 46 | +microblaze_parm_needs_stack (cumulative_args_t args_so_far, tree type) |
| 46 | +{ | 47 | +{ |
| 47 | + enum machine_mode mode; | ||
| 48 | + int unsignedp; | 48 | + int unsignedp; |
| 49 | + rtx entry_parm; | 49 | + rtx entry_parm; |
| 50 | + | 50 | + |
| @@ -65,37 +65,36 @@ index c54b96b..0ce9d13 100644 | |||
| 65 | + || microblaze_parm_needs_stack (args_so_far, TREE_TYPE (type))); | 65 | + || microblaze_parm_needs_stack (args_so_far, TREE_TYPE (type))); |
| 66 | + | 66 | + |
| 67 | + /* Handle transparent aggregates. */ | 67 | + /* Handle transparent aggregates. */ |
| 68 | + if ((TREE_CODE (type) == UNION_TYPE || TREE_CODE (type) == RECORD_TYPE) | 68 | + if ((TREE_CODE (type) == UNION_TYPE || TREE_CODE (type) == RECORD_TYPE) |
| 69 | + && TYPE_TRANSPARENT_AGGR (type)) | 69 | + && TYPE_TRANSPARENT_AGGR (type)) |
| 70 | + type = TREE_TYPE (first_field (type)); | 70 | + type = TREE_TYPE (first_field (type)); |
| 71 | + | 71 | + |
| 72 | + /* See if this arg was passed by invisible reference. */ | 72 | + /* See if this arg was passed by invisible reference. */ |
| 73 | + if (pass_by_reference (get_cumulative_args (args_so_far), | 73 | + function_arg_info arg (type, /*named=*/true); |
| 74 | + TYPE_MODE (type), type, true)) | 74 | + apply_pass_by_reference_rules (get_cumulative_args (args_so_far), arg); |
| 75 | + type = build_pointer_type (type); | ||
| 76 | + | 75 | + |
| 77 | + /* Find mode as it is passed by the ABI. */ | 76 | + /* Find mode as it is passed by the ABI. */ |
| 78 | + unsignedp = TYPE_UNSIGNED (type); | 77 | + unsignedp = TYPE_UNSIGNED (type); |
| 79 | + mode = promote_mode (type, TYPE_MODE (type), &unsignedp); | 78 | + arg.mode = promote_mode (arg.type, arg.mode, &unsignedp); |
| 80 | + | 79 | + |
| 81 | +/* If there is no incoming register, we need a stack. */ | 80 | + /* If there is no incoming register, we need a stack. */ |
| 82 | + entry_parm = microblaze_function_arg (args_so_far, mode, type, true); | 81 | + entry_parm = microblaze_function_arg (args_so_far, arg); |
| 83 | + if (entry_parm == NULL) | 82 | + if (entry_parm == NULL) |
| 84 | + return true; | 83 | + return true; |
| 85 | + | 84 | + |
| 86 | + /* Likewise if we need to pass both in registers and on the stack. */ | 85 | + /* Likewise if we need to pass both in registers and on the stack. */ |
| 87 | + if (GET_CODE (entry_parm) == PARALLEL | 86 | + if (GET_CODE (entry_parm) == PARALLEL |
| 88 | + && XEXP (XVECEXP (entry_parm, 0, 0), 0) == NULL_RTX) | 87 | + && XEXP (XVECEXP (entry_parm, 0, 0), 0) == NULL_RTX) |
| 89 | + return true; | 88 | + return true; |
| 90 | + | 89 | + |
| 91 | + /* Also true if we're partially in registers and partially not. */ | 90 | + /* Also true if we're partially in registers and partially not. */ |
| 92 | + if (function_arg_partial_bytes (args_so_far, mode, type, true) != 0) | 91 | + if (function_arg_partial_bytes (args_so_far, arg) != 0) |
| 93 | + return true; | 92 | + return true; |
| 94 | + | 93 | + |
| 95 | + /* Update info on where next arg arrives in registers. */ | 94 | + /* Update info on where next arg arrives in registers. */ |
| 96 | + microblaze_function_arg_advance (args_so_far, mode, type, true); | 95 | + microblaze_function_arg_advance (args_so_far, arg); |
| 97 | + return false; | 96 | + return false; |
| 98 | + } | 97 | +} |
| 99 | + | 98 | + |
| 100 | +static bool | 99 | +static bool |
| 101 | +microblaze_function_parms_need_stack (tree fun, bool incoming) | 100 | +microblaze_function_parms_need_stack (tree fun, bool incoming) |
| @@ -176,7 +175,7 @@ index c54b96b..0ce9d13 100644 | |||
| 176 | /* Return the bytes needed to compute the frame pointer from the current | 175 | /* Return the bytes needed to compute the frame pointer from the current |
| 177 | stack pointer. | 176 | stack pointer. |
| 178 | 177 | ||
| 179 | @@ -3411,7 +3543,7 @@ microblaze_asm_output_mi_thunk (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED, | 178 | @@ -3403,7 +3533,7 @@ microblaze_asm_output_mi_thunk (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED, |
| 180 | emit_insn (gen_indirect_jump (temp2)); | 179 | emit_insn (gen_indirect_jump (temp2)); |
| 181 | 180 | ||
| 182 | /* Run just enough of rest_of_compilation. This sequence was | 181 | /* Run just enough of rest_of_compilation. This sequence was |
| @@ -184,9 +183,9 @@ index c54b96b..0ce9d13 100644 | |||
| 184 | + "borrowed" from microblaze.c. */ | 183 | + "borrowed" from microblaze.c. */ |
| 185 | insn = get_insns (); | 184 | insn = get_insns (); |
| 186 | shorten_branches (insn); | 185 | shorten_branches (insn); |
| 187 | final_start_function (insn, file, 1); | 186 | assemble_start_function (thunk_fndecl, fnname); |
| 188 | diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h | 187 | diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h |
| 189 | index 0a435b8..346e47b 100644 | 188 | index 8aa3f155790..1e155e4041c 100644 |
| 190 | --- a/gcc/config/microblaze/microblaze.h | 189 | --- a/gcc/config/microblaze/microblaze.h |
| 191 | +++ b/gcc/config/microblaze/microblaze.h | 190 | +++ b/gcc/config/microblaze/microblaze.h |
| 192 | @@ -434,9 +434,9 @@ extern struct microblaze_frame_info current_frame_info; | 191 | @@ -434,9 +434,9 @@ extern struct microblaze_frame_info current_frame_info; |
| @@ -202,5 +201,5 @@ index 0a435b8..346e47b 100644 | |||
| 202 | #define STACK_BOUNDARY 32 | 201 | #define STACK_BOUNDARY 32 |
| 203 | 202 | ||
| 204 | -- | 203 | -- |
| 205 | 2.7.4 | 204 | 2.17.1 |
| 206 | 205 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0021-Patch-microblaze-Add-cbranchsi4_reg.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0019-Patch-microblaze-Add-cbranchsi4_reg.patch index c79f9552..b78a9814 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0021-Patch-microblaze-Add-cbranchsi4_reg.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0019-Patch-microblaze-Add-cbranchsi4_reg.patch | |||
| @@ -1,10 +1,11 @@ | |||
| 1 | From 1c226901aec38e2e824177418dcd82b6cd49ffca Mon Sep 17 00:00:00 2001 | 1 | From f43cb8572131074c7ce43a1d39c7ba6c85611e18 Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Tue, 17 Jan 2017 17:04:37 +0530 | 3 | Date: Tue, 17 Jan 2017 17:04:37 +0530 |
| 4 | Subject: [PATCH 21/63] [Patch, microblaze]: Add cbranchsi4_reg This patch | 4 | Subject: [PATCH 19/58] [Patch, microblaze]: Add cbranchsi4_reg |
| 5 | optimizes the generation of pcmpne/pcmpeq instruction if the compare | 5 | |
| 6 | instruction has no immediate values.For the immediate values the xor | 6 | This patch optimizes the generation of pcmpne/pcmpeq instruction if the |
| 7 | instruction is generated | 7 | compare instruction has no immediate values.For the immediate values the |
| 8 | xor instruction is generated | ||
| 8 | 9 | ||
| 9 | Signed-off-by: Nagaraju Mekala <nmekala@xilix.com> | 10 | Signed-off-by: Nagaraju Mekala <nmekala@xilix.com> |
| 10 | Signed-off-by: Ajit Agarwal <ajitkum@xilinx.com> | 11 | Signed-off-by: Ajit Agarwal <ajitkum@xilinx.com> |
| @@ -20,18 +21,17 @@ Conflicts: | |||
| 20 | 21 | ||
| 21 | gcc/config/microblaze/microblaze-protos.h | 22 | gcc/config/microblaze/microblaze-protos.h |
| 22 | --- | 23 | --- |
| 23 | gcc/config/microblaze/microblaze-protos.h | 2 +- | 24 | gcc/config/microblaze/microblaze-protos.h | 2 +- |
| 24 | gcc/testsuite/gcc.target/microblaze/isa/fcmp1.c | 2 +- | 25 | gcc/testsuite/gcc.target/microblaze/isa/fcmp1.c | 2 +- |
| 25 | gcc/testsuite/gcc.target/microblaze/isa/fcmp2.c | 2 +- | 26 | gcc/testsuite/gcc.target/microblaze/isa/fcmp2.c | 2 +- |
| 26 | gcc/testsuite/gcc.target/microblaze/isa/fcmp3.c | 2 +- | 27 | gcc/testsuite/gcc.target/microblaze/isa/fcmp3.c | 2 +- |
| 27 | gcc/testsuite/gcc.target/microblaze/isa/fcmp4.c | 2 +- | 28 | gcc/testsuite/gcc.target/microblaze/isa/fcmp4.c | 2 +- |
| 28 | gcc/testsuite/gcc.target/microblaze/isa/nofcmp.c | 14 +++++++------- | 29 | gcc/testsuite/gcc.target/microblaze/isa/nofcmp.c | 14 +++++++------- |
| 29 | gcc/testsuite/gcc.target/microblaze/isa/vanilla.c | 12 ++++++------ | 30 | gcc/testsuite/gcc.target/microblaze/isa/vanilla.c | 12 ++++++------ |
| 30 | gcc/testsuite/gcc.target/microblaze/others/builtin-trap.c | 2 +- | 31 | 7 files changed, 18 insertions(+), 18 deletions(-) |
| 31 | 8 files changed, 19 insertions(+), 19 deletions(-) | ||
| 32 | 32 | ||
| 33 | diff --git a/gcc/config/microblaze/microblaze-protos.h b/gcc/config/microblaze/microblaze-protos.h | 33 | diff --git a/gcc/config/microblaze/microblaze-protos.h b/gcc/config/microblaze/microblaze-protos.h |
| 34 | index 6647cbc..bdc9b69 100644 | 34 | index 96f7bb67f6c..76ffc682df2 100644 |
| 35 | --- a/gcc/config/microblaze/microblaze-protos.h | 35 | --- a/gcc/config/microblaze/microblaze-protos.h |
| 36 | +++ b/gcc/config/microblaze/microblaze-protos.h | 36 | +++ b/gcc/config/microblaze/microblaze-protos.h |
| 37 | @@ -33,7 +33,7 @@ extern int microblaze_expand_shift (rtx *); | 37 | @@ -33,7 +33,7 @@ extern int microblaze_expand_shift (rtx *); |
| @@ -44,7 +44,7 @@ index 6647cbc..bdc9b69 100644 | |||
| 44 | extern void microblaze_expand_conditional_branch_sf (rtx *); | 44 | extern void microblaze_expand_conditional_branch_sf (rtx *); |
| 45 | extern int microblaze_can_use_return_insn (void); | 45 | extern int microblaze_can_use_return_insn (void); |
| 46 | diff --git a/gcc/testsuite/gcc.target/microblaze/isa/fcmp1.c b/gcc/testsuite/gcc.target/microblaze/isa/fcmp1.c | 46 | diff --git a/gcc/testsuite/gcc.target/microblaze/isa/fcmp1.c b/gcc/testsuite/gcc.target/microblaze/isa/fcmp1.c |
| 47 | index 4041a24..ccc6a46 100644 | 47 | index 4041a241391..ccc6a461cd9 100644 |
| 48 | --- a/gcc/testsuite/gcc.target/microblaze/isa/fcmp1.c | 48 | --- a/gcc/testsuite/gcc.target/microblaze/isa/fcmp1.c |
| 49 | +++ b/gcc/testsuite/gcc.target/microblaze/isa/fcmp1.c | 49 | +++ b/gcc/testsuite/gcc.target/microblaze/isa/fcmp1.c |
| 50 | @@ -6,5 +6,5 @@ void float_func () | 50 | @@ -6,5 +6,5 @@ void float_func () |
| @@ -55,7 +55,7 @@ index 4041a24..ccc6a46 100644 | |||
| 55 | + f2 = f3; | 55 | + f2 = f3; |
| 56 | } | 56 | } |
| 57 | diff --git a/gcc/testsuite/gcc.target/microblaze/isa/fcmp2.c b/gcc/testsuite/gcc.target/microblaze/isa/fcmp2.c | 57 | diff --git a/gcc/testsuite/gcc.target/microblaze/isa/fcmp2.c b/gcc/testsuite/gcc.target/microblaze/isa/fcmp2.c |
| 58 | index 3902b83..1dd5fe6 100644 | 58 | index 3902b839db9..1dd5fe6c539 100644 |
| 59 | --- a/gcc/testsuite/gcc.target/microblaze/isa/fcmp2.c | 59 | --- a/gcc/testsuite/gcc.target/microblaze/isa/fcmp2.c |
| 60 | +++ b/gcc/testsuite/gcc.target/microblaze/isa/fcmp2.c | 60 | +++ b/gcc/testsuite/gcc.target/microblaze/isa/fcmp2.c |
| 61 | @@ -6,5 +6,5 @@ void float_func () | 61 | @@ -6,5 +6,5 @@ void float_func () |
| @@ -66,7 +66,7 @@ index 3902b83..1dd5fe6 100644 | |||
| 66 | + f2 = f3; | 66 | + f2 = f3; |
| 67 | } | 67 | } |
| 68 | diff --git a/gcc/testsuite/gcc.target/microblaze/isa/fcmp3.c b/gcc/testsuite/gcc.target/microblaze/isa/fcmp3.c | 68 | diff --git a/gcc/testsuite/gcc.target/microblaze/isa/fcmp3.c b/gcc/testsuite/gcc.target/microblaze/isa/fcmp3.c |
| 69 | index 8555974..d6f80fb 100644 | 69 | index 8555974dda5..d6f80fb0ec3 100644 |
| 70 | --- a/gcc/testsuite/gcc.target/microblaze/isa/fcmp3.c | 70 | --- a/gcc/testsuite/gcc.target/microblaze/isa/fcmp3.c |
| 71 | +++ b/gcc/testsuite/gcc.target/microblaze/isa/fcmp3.c | 71 | +++ b/gcc/testsuite/gcc.target/microblaze/isa/fcmp3.c |
| 72 | @@ -6,5 +6,5 @@ void float_func () | 72 | @@ -6,5 +6,5 @@ void float_func () |
| @@ -77,7 +77,7 @@ index 8555974..d6f80fb 100644 | |||
| 77 | + f1 = f2 + f3; | 77 | + f1 = f2 + f3; |
| 78 | } | 78 | } |
| 79 | diff --git a/gcc/testsuite/gcc.target/microblaze/isa/fcmp4.c b/gcc/testsuite/gcc.target/microblaze/isa/fcmp4.c | 79 | diff --git a/gcc/testsuite/gcc.target/microblaze/isa/fcmp4.c b/gcc/testsuite/gcc.target/microblaze/isa/fcmp4.c |
| 80 | index 79cc5f9..d117724 100644 | 80 | index 79cc5f9dd8e..d1177249552 100644 |
| 81 | --- a/gcc/testsuite/gcc.target/microblaze/isa/fcmp4.c | 81 | --- a/gcc/testsuite/gcc.target/microblaze/isa/fcmp4.c |
| 82 | +++ b/gcc/testsuite/gcc.target/microblaze/isa/fcmp4.c | 82 | +++ b/gcc/testsuite/gcc.target/microblaze/isa/fcmp4.c |
| 83 | @@ -5,5 +5,5 @@ void float_func(float f1, float f2, float f3) | 83 | @@ -5,5 +5,5 @@ void float_func(float f1, float f2, float f3) |
| @@ -88,7 +88,7 @@ index 79cc5f9..d117724 100644 | |||
| 88 | + f2 = f3; | 88 | + f2 = f3; |
| 89 | } | 89 | } |
| 90 | diff --git a/gcc/testsuite/gcc.target/microblaze/isa/nofcmp.c b/gcc/testsuite/gcc.target/microblaze/isa/nofcmp.c | 90 | diff --git a/gcc/testsuite/gcc.target/microblaze/isa/nofcmp.c b/gcc/testsuite/gcc.target/microblaze/isa/nofcmp.c |
| 91 | index ebfb170..7582297 100644 | 91 | index ebfb170ecee..75822977ef8 100644 |
| 92 | --- a/gcc/testsuite/gcc.target/microblaze/isa/nofcmp.c | 92 | --- a/gcc/testsuite/gcc.target/microblaze/isa/nofcmp.c |
| 93 | +++ b/gcc/testsuite/gcc.target/microblaze/isa/nofcmp.c | 93 | +++ b/gcc/testsuite/gcc.target/microblaze/isa/nofcmp.c |
| 94 | @@ -5,17 +5,17 @@ volatile float f1, f2, f3; | 94 | @@ -5,17 +5,17 @@ volatile float f1, f2, f3; |
| @@ -117,7 +117,7 @@ index ebfb170..7582297 100644 | |||
| 117 | 117 | ||
| 118 | } | 118 | } |
| 119 | diff --git a/gcc/testsuite/gcc.target/microblaze/isa/vanilla.c b/gcc/testsuite/gcc.target/microblaze/isa/vanilla.c | 119 | diff --git a/gcc/testsuite/gcc.target/microblaze/isa/vanilla.c b/gcc/testsuite/gcc.target/microblaze/isa/vanilla.c |
| 120 | index 1d6ba80..532c035 100644 | 120 | index 1d6ba807b12..532c035adfd 100644 |
| 121 | --- a/gcc/testsuite/gcc.target/microblaze/isa/vanilla.c | 121 | --- a/gcc/testsuite/gcc.target/microblaze/isa/vanilla.c |
| 122 | +++ b/gcc/testsuite/gcc.target/microblaze/isa/vanilla.c | 122 | +++ b/gcc/testsuite/gcc.target/microblaze/isa/vanilla.c |
| 123 | @@ -74,16 +74,16 @@ void float_cmp_func () | 123 | @@ -74,16 +74,16 @@ void float_cmp_func () |
| @@ -143,17 +143,6 @@ index 1d6ba80..532c035 100644 | |||
| 143 | + f1 = f3; | 143 | + f1 = f3; |
| 144 | 144 | ||
| 145 | } | 145 | } |
| 146 | diff --git a/gcc/testsuite/gcc.target/microblaze/others/builtin-trap.c b/gcc/testsuite/gcc.target/microblaze/others/builtin-trap.c | ||
| 147 | index fdcde1f..580b4db 100644 | ||
| 148 | --- a/gcc/testsuite/gcc.target/microblaze/others/builtin-trap.c | ||
| 149 | +++ b/gcc/testsuite/gcc.target/microblaze/others/builtin-trap.c | ||
| 150 | @@ -5,4 +5,4 @@ void trap () | ||
| 151 | __builtin_trap (); | ||
| 152 | } | ||
| 153 | |||
| 154 | -/* { dg-final { scan-assembler "brki\tr0,-1" } } */ | ||
| 155 | \ No newline at end of file | ||
| 156 | +/* { dg-final { scan-assembler "bri\t0" } } */ | ||
| 157 | -- | 146 | -- |
| 158 | 2.7.4 | 147 | 2.17.1 |
| 159 | 148 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0019-Patch-microblaze-Modified-trap-instruction.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0019-Patch-microblaze-Modified-trap-instruction.patch deleted file mode 100644 index dc9b61cf..00000000 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0019-Patch-microblaze-Modified-trap-instruction.patch +++ /dev/null | |||
| @@ -1,29 +0,0 @@ | |||
| 1 | From 614bacc058b94c7b12cd40fde1b19b4709870f3b Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | ||
| 3 | Date: Tue, 17 Jan 2017 15:42:15 +0530 | ||
| 4 | Subject: [PATCH 19/63] [Patch, microblaze]: Modified trap instruction The | ||
| 5 | instruction was wrongly written to brki r0,-1 it should be bri r0. Modified | ||
| 6 | with the correct instruction | ||
| 7 | |||
| 8 | Signed-off-by :Nagaraju Mekala <nmekala@xilix.com> | ||
| 9 | :Ajit Agarwal <ajitkum@xilinx.com> | ||
| 10 | --- | ||
| 11 | gcc/config/microblaze/microblaze.md | 2 +- | ||
| 12 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
| 13 | |||
| 14 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md | ||
| 15 | index aa2eda3..3c80760 100644 | ||
| 16 | --- a/gcc/config/microblaze/microblaze.md | ||
| 17 | +++ b/gcc/config/microblaze/microblaze.md | ||
| 18 | @@ -2348,7 +2348,7 @@ | ||
| 19 | (define_insn "trap" | ||
| 20 | [(trap_if (const_int 1) (const_int 0))] | ||
| 21 | "" | ||
| 22 | - "brki\tr0,-1" | ||
| 23 | + "bri\t0" | ||
| 24 | [(set_attr "type" "trap")] | ||
| 25 | ) | ||
| 26 | |||
| 27 | -- | ||
| 28 | 2.7.4 | ||
| 29 | |||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0022-Patch-microblaze-Inline-Expansion-of-fsqrt-builtin.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0020-Patch-microblaze-Inline-Expansion-of-fsqrt-builtin.patch index c3822d06..cc1c3d7e 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0022-Patch-microblaze-Inline-Expansion-of-fsqrt-builtin.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0020-Patch-microblaze-Inline-Expansion-of-fsqrt-builtin.patch | |||
| @@ -1,19 +1,22 @@ | |||
| 1 | From 791d65feae4f3cab47833579bc6f523e54194cbd Mon Sep 17 00:00:00 2001 | 1 | From 1bbf48097cf2da98e03139b499a5a74bc68e6abc Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Tue, 17 Jan 2017 17:11:04 +0530 | 3 | Date: Tue, 17 Jan 2017 17:11:04 +0530 |
| 4 | Subject: [PATCH 22/63] [Patch,microblaze]: Inline Expansion of fsqrt builtin. | 4 | Subject: [PATCH 20/58] [Patch,microblaze]: Inline Expansion of fsqrt builtin. |
| 5 | The changes are made in the patch for the inline expansion of the fsqrt | 5 | |
| 6 | builtin with fqrt instruction. The sqrt math function takes double as | 6 | The changes are made in the patch for the inline expansion of |
| 7 | argument and return double as argument. The pattern is selected while | 7 | the fsqrt builtin with fqrt instruction. The sqrt math function |
| 8 | expanding the unary op through expand_unop which passes DFmode and the DFmode | 8 | takes double as argument and return double as argument. The |
| 9 | pattern was not there returning zero. Thus the sqrt math function is not | 9 | pattern is selected while expanding the unary op through |
| 10 | inlined and expanded. The pattern with DFmode argument is added. Also the | 10 | expand_unop which passes DFmode and the DFmode pattern was |
| 11 | source and destination argument is not same the DF through two different | 11 | not there returning zero. Thus the sqrt math function is not |
| 12 | consecutive registers with lower 32 bit is the argument passed to sqrt and | 12 | inlined and expanded. The pattern with DFmode argument is added. |
| 13 | the higher 32 bit is zero. If the source and destinations are different the | 13 | Also the source and destination argument is not same the DF |
| 14 | DFmode 64 bits registers is not set properly giving the problem in runtime. | 14 | through two different consecutive registers with lower 32 bit |
| 15 | Such changes are taken care in the implementation of the pattern for DFmode | 15 | is the argument passed to sqrt and the higher 32 bit is zero. |
| 16 | for inline expansion of the sqrt. | 16 | If the source and destinations are different the DFmode 64 bits |
| 17 | registers is not set properly giving the problem in runtime. Such | ||
| 18 | changes are taken care in the implementation of the pattern for | ||
| 19 | DFmode for inline expansion of the sqrt. | ||
| 17 | 20 | ||
| 18 | ChangeLog: | 21 | ChangeLog: |
| 19 | 2015-06-16 Ajit Agarwal <ajitkum@xilinx.com> | 22 | 2015-06-16 Ajit Agarwal <ajitkum@xilinx.com> |
| @@ -29,7 +32,7 @@ Signed-off-by:Ajit Agarwal ajitkum@xilinx.com | |||
| 29 | 1 file changed, 14 insertions(+) | 32 | 1 file changed, 14 insertions(+) |
| 30 | 33 | ||
| 31 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md | 34 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md |
| 32 | index 3c80760..1fb5582 100644 | 35 | index 8f9baec826b..986d9c3aa25 100644 |
| 33 | --- a/gcc/config/microblaze/microblaze.md | 36 | --- a/gcc/config/microblaze/microblaze.md |
| 34 | +++ b/gcc/config/microblaze/microblaze.md | 37 | +++ b/gcc/config/microblaze/microblaze.md |
| 35 | @@ -451,6 +451,20 @@ | 38 | @@ -451,6 +451,20 @@ |
| @@ -54,5 +57,5 @@ index 3c80760..1fb5582 100644 | |||
| 54 | [(set (match_operand:SI 0 "register_operand" "=d") | 57 | [(set (match_operand:SI 0 "register_operand" "=d") |
| 55 | (fix:SI (match_operand:SF 1 "register_operand" "d")))] | 58 | (fix:SI (match_operand:SF 1 "register_operand" "d")))] |
| 56 | -- | 59 | -- |
| 57 | 2.7.4 | 60 | 2.17.1 |
| 58 | 61 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0023-Patch-OPT-Update-heuristics-for-loop-invariant-for-a.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0021-Patch-OPT-Update-heuristics-for-loop-invariant-for-a.patch index a314170f..b4d03172 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0023-Patch-OPT-Update-heuristics-for-loop-invariant-for-a.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0021-Patch-OPT-Update-heuristics-for-loop-invariant-for-a.patch | |||
| @@ -1,8 +1,8 @@ | |||
| 1 | From 2c4a1d46e4f1b2342f899d6741d09dbf7cc87aa2 Mon Sep 17 00:00:00 2001 | 1 | From fe7962c6cc54a5d5f80db90ccc06b8603ddeb74f Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Tue, 17 Jan 2017 17:33:31 +0530 | 3 | Date: Tue, 17 Jan 2017 17:33:31 +0530 |
| 4 | Subject: [PATCH 23/63] [Patch] OPT: Update heuristics for loop-invariant for | 4 | Subject: [PATCH 21/58] [Patch] OPT: Update heuristics for loop-invariant for |
| 5 | address arithme. .tic. | 5 | address arithmetic |
| 6 | 6 | ||
| 7 | The changes are made in the patch to update the heuristics | 7 | The changes are made in the patch to update the heuristics |
| 8 | for loop invariant for address arithmetic. The heuristics is | 8 | for loop invariant for address arithmetic. The heuristics is |
| @@ -26,7 +26,7 @@ Signed-off-by:Ajit Agarwal ajitkum@xilinx.com | |||
| 26 | 1 file changed, 2 insertions(+), 4 deletions(-) | 26 | 1 file changed, 2 insertions(+), 4 deletions(-) |
| 27 | 27 | ||
| 28 | diff --git a/gcc/loop-invariant.c b/gcc/loop-invariant.c | 28 | diff --git a/gcc/loop-invariant.c b/gcc/loop-invariant.c |
| 29 | index b880ead..fd7a019 100644 | 29 | index 37ae6549e56..f6385d6cf43 100644 |
| 30 | --- a/gcc/loop-invariant.c | 30 | --- a/gcc/loop-invariant.c |
| 31 | +++ b/gcc/loop-invariant.c | 31 | +++ b/gcc/loop-invariant.c |
| 32 | @@ -1465,10 +1465,8 @@ gain_for_invariant (struct invariant *inv, unsigned *regs_needed, | 32 | @@ -1465,10 +1465,8 @@ gain_for_invariant (struct invariant *inv, unsigned *regs_needed, |
| @@ -43,5 +43,5 @@ index b880ead..fd7a019 100644 | |||
| 43 | else if (ret < 0) | 43 | else if (ret < 0) |
| 44 | return -1; | 44 | return -1; |
| 45 | -- | 45 | -- |
| 46 | 2.7.4 | 46 | 2.17.1 |
| 47 | 47 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0024-PATCH-microblaze.md-Improve-adddi3-and-subdi3-insn-d.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0022-PATCH-microblaze.md-Improve-adddi3-and-subdi3-insn-d.patch index a786ba09..2e5afed8 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0024-PATCH-microblaze.md-Improve-adddi3-and-subdi3-insn-d.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0022-PATCH-microblaze.md-Improve-adddi3-and-subdi3-insn-d.patch | |||
| @@ -1,14 +1,17 @@ | |||
| 1 | From c2b64f2f7a06231d8da0a53c6761939583ac56da Mon Sep 17 00:00:00 2001 | 1 | From b066cb189302814fcd91b38f2f9da830a2c5b8fe Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Tue, 17 Jan 2017 18:07:24 +0530 | 3 | Date: Tue, 17 Jan 2017 18:07:24 +0530 |
| 4 | Subject: [PATCH 24/63] [PATCH] microblaze.md: Improve 'adddi3' and 'subdi3' | 4 | Subject: [PATCH 22/58] [PATCH] microblaze.md: Improve 'adddi3' and 'subdi3' |
| 5 | insn definitions Change adddi3 to handle DI immediates as the second operand, | 5 | insn definitions |
| 6 | this requires modification to the output template however reduces the need to | 6 | |
| 7 | specify seperate templates for 16-bit positive/negative immediate operands. | 7 | Change adddi3 to handle DI immediates as the second operand, this |
| 8 | The use of 32-bit immediates for the addi and addic instructions is handled | 8 | requires modification to the output template however reduces the need to |
| 9 | by the assembler, which will emit the imm instructions when required. This | 9 | specify seperate templates for 16-bit positive/negative immediate |
| 10 | conveniently handles the optimizable cases where the immediate constant value | 10 | operands. The use of 32-bit immediates for the addi and addic |
| 11 | does not need the higher half words of the operands upper/lower words. | 11 | instructions is handled by the assembler, which will emit the imm |
| 12 | instructions when required. This conveniently handles the optimizable | ||
| 13 | cases where the immediate constant value does not need the higher half | ||
| 14 | words of the operands upper/lower words. | ||
| 12 | 15 | ||
| 13 | Change the constraints of the subdi3 instruction definition such that it | 16 | Change the constraints of the subdi3 instruction definition such that it |
| 14 | does not match the second operand as an immediate value. This is because | 17 | does not match the second operand as an immediate value. This is because |
| @@ -23,7 +26,7 @@ Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> | |||
| 23 | 1 file changed, 6 insertions(+), 7 deletions(-) | 26 | 1 file changed, 6 insertions(+), 7 deletions(-) |
| 24 | 27 | ||
| 25 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md | 28 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md |
| 26 | index 1fb5582..216219b 100644 | 29 | index 986d9c3aa25..efd2c34e0b7 100644 |
| 27 | --- a/gcc/config/microblaze/microblaze.md | 30 | --- a/gcc/config/microblaze/microblaze.md |
| 28 | +++ b/gcc/config/microblaze/microblaze.md | 31 | +++ b/gcc/config/microblaze/microblaze.md |
| 29 | @@ -502,17 +502,16 @@ | 32 | @@ -502,17 +502,16 @@ |
| @@ -59,5 +62,5 @@ index 1fb5582..216219b 100644 | |||
| 59 | "rsub\t%L0,%L2,%L1\;rsubc\t%M0,%M2,%M1" | 62 | "rsub\t%L0,%L2,%L1\;rsubc\t%M0,%M2,%M1" |
| 60 | [(set_attr "type" "darith") | 63 | [(set_attr "type" "darith") |
| 61 | -- | 64 | -- |
| 62 | 2.7.4 | 65 | 2.17.1 |
| 63 | 66 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0025-Patch-microblaze-Update-ashlsi3-movsf-patterns.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0023-Patch-microblaze-Update-ashlsi3-movsf-patterns.patch index 98310b36..fa16749e 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0025-Patch-microblaze-Update-ashlsi3-movsf-patterns.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0023-Patch-microblaze-Update-ashlsi3-movsf-patterns.patch | |||
| @@ -1,11 +1,13 @@ | |||
| 1 | From c7e5c253b1e7800bc5ec8cc69850118ed938e22f Mon Sep 17 00:00:00 2001 | 1 | From 98018d020d9fbae38ea19627dec64d03d7f21fac Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Tue, 17 Jan 2017 18:18:41 +0530 | 3 | Date: Tue, 17 Jan 2017 18:18:41 +0530 |
| 4 | Subject: [PATCH 25/63] [Patch, microblaze]: Update ashlsi3 & movsf patterns | 4 | Subject: [PATCH 23/58] [Patch, microblaze]: Update ashlsi3 & movsf patterns |
| 5 | This patch removes the use of HOST_WIDE_INT_PRINT_HEX macro in print_operand | 5 | |
| 6 | of ashlsi3_with_mul_nodelay,ashlsi3_with_mul_delay and movsf_internal | 6 | This patch removes the use of HOST_WIDE_INT_PRINT_HEX macro in |
| 7 | patterns beacuse HOST_WIDE_INT_PRINT_HEX is generating 64-bit value which our | 7 | print_operand of ashlsi3_with_mul_nodelay,ashlsi3_with_mul_delay |
| 8 | instruction doesn't support so using gen_int_mode function | 8 | and movsf_internal patterns beacuse HOST_WIDE_INT_PRINT_HEX |
| 9 | is generating 64-bit value which our instruction doesn't support | ||
| 10 | so using gen_int_mode function | ||
| 9 | 11 | ||
| 10 | Signed-off-by :Nagaraju Mekala <nmekala@xilix.com> | 12 | Signed-off-by :Nagaraju Mekala <nmekala@xilix.com> |
| 11 | :Ajit Agarwal <ajitkum@xilinx.com> | 13 | :Ajit Agarwal <ajitkum@xilinx.com> |
| @@ -22,25 +24,11 @@ ChangeLog: | |||
| 22 | updated the 'F' case to use "unsinged int" instead | 24 | updated the 'F' case to use "unsinged int" instead |
| 23 | of HOST_WIDE_INT_PRINT_HEX | 25 | of HOST_WIDE_INT_PRINT_HEX |
| 24 | --- | 26 | --- |
| 25 | gcc/config/microblaze/microblaze.c | 2 +- | ||
| 26 | gcc/config/microblaze/microblaze.md | 10 ++++++++-- | 27 | gcc/config/microblaze/microblaze.md | 10 ++++++++-- |
| 27 | 2 files changed, 9 insertions(+), 3 deletions(-) | 28 | 1 file changed, 8 insertions(+), 2 deletions(-) |
| 28 | 29 | ||
| 29 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c | ||
| 30 | index 0ce9d13..7669668 100644 | ||
| 31 | --- a/gcc/config/microblaze/microblaze.c | ||
| 32 | +++ b/gcc/config/microblaze/microblaze.c | ||
| 33 | @@ -2608,7 +2608,7 @@ print_operand (FILE * file, rtx op, int letter) | ||
| 34 | unsigned long value_long; | ||
| 35 | REAL_VALUE_TO_TARGET_SINGLE (*CONST_DOUBLE_REAL_VALUE (op), | ||
| 36 | value_long); | ||
| 37 | - fprintf (file, HOST_WIDE_INT_PRINT_HEX, value_long); | ||
| 38 | + fprintf (file, "0x%08x", (unsigned int) value_long); | ||
| 39 | } | ||
| 40 | else | ||
| 41 | { | ||
| 42 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md | 30 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md |
| 43 | index 216219b..4bc209c 100644 | 31 | index efd2c34e0b7..be8bbda2bfb 100644 |
| 44 | --- a/gcc/config/microblaze/microblaze.md | 32 | --- a/gcc/config/microblaze/microblaze.md |
| 45 | +++ b/gcc/config/microblaze/microblaze.md | 33 | +++ b/gcc/config/microblaze/microblaze.md |
| 46 | @@ -1368,7 +1368,10 @@ | 34 | @@ -1368,7 +1368,10 @@ |
| @@ -68,5 +56,5 @@ index 216219b..4bc209c 100644 | |||
| 68 | [(set_attr "type" "no_delay_arith") | 56 | [(set_attr "type" "no_delay_arith") |
| 69 | (set_attr "mode" "SI") | 57 | (set_attr "mode" "SI") |
| 70 | -- | 58 | -- |
| 71 | 2.7.4 | 59 | 2.17.1 |
| 72 | 60 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0026-Patch-microblaze-8-stage-pipeline-for-microblaze.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0024-Patch-microblaze-8-stage-pipeline-for-microblaze.patch index ba80ce45..8e0eda3c 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0026-Patch-microblaze-8-stage-pipeline-for-microblaze.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0024-Patch-microblaze-8-stage-pipeline-for-microblaze.patch | |||
| @@ -1,9 +1,10 @@ | |||
| 1 | From c3b633b0ee8d228a7d70a02b574822aba9a0fd93 Mon Sep 17 00:00:00 2001 | 1 | From 3f98e90620e0ae6d76a1ba18e97389feb095c3e4 Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Tue, 17 Jan 2017 19:50:34 +0530 | 3 | Date: Tue, 17 Jan 2017 19:50:34 +0530 |
| 4 | Subject: [PATCH 26/63] [Patch, microblaze]: 8-stage pipeline for microblaze | 4 | Subject: [PATCH 24/58] [Patch, microblaze]: 8-stage pipeline for microblaze |
| 5 | This patch adds the support for the 8-stage pipeline. The new 8-stage | 5 | |
| 6 | pipeline reduces the latencies of float & integer division drastically | 6 | This patch adds the support for the 8-stage pipeline. The new 8-stage |
| 7 | pipeline reduces the latencies of float & integer division drastically | ||
| 7 | 8 | ||
| 8 | Signed-off-by :Nagaraju Mekala <nmekala@xilix.com> | 9 | Signed-off-by :Nagaraju Mekala <nmekala@xilix.com> |
| 9 | 10 | ||
| @@ -21,17 +22,36 @@ ChangeLog: | |||
| 21 | *microblaze.opt (mxl-frequency): New | 22 | *microblaze.opt (mxl-frequency): New |
| 22 | New flag added for 8-stage pipeline | 23 | New flag added for 8-stage pipeline |
| 23 | --- | 24 | --- |
| 24 | gcc/config/microblaze/microblaze.c | 13 ++++++ | 25 | gcc/config/microblaze/microblaze.c | 18 ++++++- |
| 25 | gcc/config/microblaze/microblaze.h | 3 +- | 26 | gcc/config/microblaze/microblaze.h | 3 +- |
| 26 | gcc/config/microblaze/microblaze.md | 79 +++++++++++++++++++++++++++++++++++- | 27 | gcc/config/microblaze/microblaze.md | 79 +++++++++++++++++++++++++++- |
| 27 | gcc/config/microblaze/microblaze.opt | 4 ++ | 28 | gcc/config/microblaze/microblaze.opt | 4 ++ |
| 28 | 4 files changed, 96 insertions(+), 3 deletions(-) | 29 | 4 files changed, 100 insertions(+), 4 deletions(-) |
| 29 | 30 | ||
| 30 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c | 31 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c |
| 31 | index 7669668..ae7d5dd 100644 | 32 | index a4bdf66f045..a3996119bd7 100644 |
| 32 | --- a/gcc/config/microblaze/microblaze.c | 33 | --- a/gcc/config/microblaze/microblaze.c |
| 33 | +++ b/gcc/config/microblaze/microblaze.c | 34 | +++ b/gcc/config/microblaze/microblaze.c |
| 34 | @@ -1848,6 +1848,19 @@ microblaze_option_override (void) | 35 | @@ -164,6 +164,9 @@ int microblaze_no_unsafe_delay; |
| 36 | /* Set to one if the targeted core has the CLZ insn. */ | ||
| 37 | int microblaze_has_clz = 0; | ||
| 38 | |||
| 39 | +/* Set to one if the targeted core has barrel-shift and cpu > 10.0 */ | ||
| 40 | +int microblaze_has_bitfield = 0; | ||
| 41 | + | ||
| 42 | /* Which CPU pipeline do we use. We haven't really standardized on a CPU | ||
| 43 | version having only a particular type of pipeline. There can still be | ||
| 44 | options on the CPU to scale pipeline features up or down. :( | ||
| 45 | @@ -1739,7 +1742,7 @@ microblaze_option_override (void) | ||
| 46 | register int i, start; | ||
| 47 | register int regno; | ||
| 48 | register machine_mode mode; | ||
| 49 | - int ver; | ||
| 50 | + int ver,ver_int; | ||
| 51 | |||
| 52 | microblaze_section_threshold = (global_options_set.x_g_switch_value | ||
| 53 | ? g_switch_value | ||
| 54 | @@ -1840,6 +1843,19 @@ microblaze_option_override (void) | ||
| 35 | "%<-mcpu=v8.30.a%>"); | 55 | "%<-mcpu=v8.30.a%>"); |
| 36 | TARGET_REORDER = 0; | 56 | TARGET_REORDER = 0; |
| 37 | } | 57 | } |
| @@ -52,7 +72,7 @@ index 7669668..ae7d5dd 100644 | |||
| 52 | if (TARGET_MULTIPLY_HIGH && TARGET_SOFT_MUL) | 72 | if (TARGET_MULTIPLY_HIGH && TARGET_SOFT_MUL) |
| 53 | error ("%<-mxl-multiply-high%> requires %<-mno-xl-soft-mul%>"); | 73 | error ("%<-mxl-multiply-high%> requires %<-mno-xl-soft-mul%>"); |
| 54 | diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h | 74 | diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h |
| 55 | index 346e47b..bf7f3b4 100644 | 75 | index 1e155e4041c..8b0db2c1718 100644 |
| 56 | --- a/gcc/config/microblaze/microblaze.h | 76 | --- a/gcc/config/microblaze/microblaze.h |
| 57 | +++ b/gcc/config/microblaze/microblaze.h | 77 | +++ b/gcc/config/microblaze/microblaze.h |
| 58 | @@ -27,7 +27,8 @@ | 78 | @@ -27,7 +27,8 @@ |
| @@ -66,7 +86,7 @@ index 346e47b..bf7f3b4 100644 | |||
| 66 | 86 | ||
| 67 | #define MICROBLAZE_MASK_NO_UNSAFE_DELAY 0x00000001 | 87 | #define MICROBLAZE_MASK_NO_UNSAFE_DELAY 0x00000001 |
| 68 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md | 88 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md |
| 69 | index 4bc209c..b7c16ac 100644 | 89 | index be8bbda2bfb..c407a81c51e 100644 |
| 70 | --- a/gcc/config/microblaze/microblaze.md | 90 | --- a/gcc/config/microblaze/microblaze.md |
| 71 | +++ b/gcc/config/microblaze/microblaze.md | 91 | +++ b/gcc/config/microblaze/microblaze.md |
| 72 | @@ -35,6 +35,7 @@ | 92 | @@ -35,6 +35,7 @@ |
| @@ -177,7 +197,7 @@ index 4bc209c..b7c16ac 100644 | |||
| 177 | (set_attr "length" "4")]) | 197 | (set_attr "length" "4")]) |
| 178 | 198 | ||
| 179 | diff --git a/gcc/config/microblaze/microblaze.opt b/gcc/config/microblaze/microblaze.opt | 199 | diff --git a/gcc/config/microblaze/microblaze.opt b/gcc/config/microblaze/microblaze.opt |
| 180 | index 2e46941..d23f376 100644 | 200 | index 725c2fab52a..a29c6f8df90 100644 |
| 181 | --- a/gcc/config/microblaze/microblaze.opt | 201 | --- a/gcc/config/microblaze/microblaze.opt |
| 182 | +++ b/gcc/config/microblaze/microblaze.opt | 202 | +++ b/gcc/config/microblaze/microblaze.opt |
| 183 | @@ -133,3 +133,7 @@ Data referenced by offset from start of text instead of GOT (with -fPIC/-fPIE). | 203 | @@ -133,3 +133,7 @@ Data referenced by offset from start of text instead of GOT (with -fPIC/-fPIE). |
| @@ -189,5 +209,5 @@ index 2e46941..d23f376 100644 | |||
| 189 | +Target Mask(AREA_OPTIMIZED_2) | 209 | +Target Mask(AREA_OPTIMIZED_2) |
| 190 | +Use 8 stage pipeline (frequency optimization) | 210 | +Use 8 stage pipeline (frequency optimization) |
| 191 | -- | 211 | -- |
| 192 | 2.7.4 | 212 | 2.17.1 |
| 193 | 213 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0027-Patch-rtl-Optimization-Better-register-pressure-esti.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0025-Patch-rtl-Optimization-Better-register-pressure-esti.patch index 330b5494..f1b793f3 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0027-Patch-rtl-Optimization-Better-register-pressure-esti.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0025-Patch-rtl-Optimization-Better-register-pressure-esti.patch | |||
| @@ -1,8 +1,8 @@ | |||
| 1 | From 650cbdea7bc810e2bd0ebc5eb5647ed513498670 Mon Sep 17 00:00:00 2001 | 1 | From eca67041b3d6e20663313732df0038d75fd2da8d Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Wed, 18 Jan 2017 11:08:40 +0530 | 3 | Date: Wed, 18 Jan 2017 11:08:40 +0530 |
| 4 | Subject: [PATCH 27/63] [Patch,rtl Optimization]: Better register pressure | 4 | Subject: [PATCH 25/58] [Patch,rtl Optimization]: Better register pressure |
| 5 | estimate for loop . .invariant code motion | 5 | estimate for loop invariant code motion |
| 6 | 6 | ||
| 7 | Calculate the loop liveness used for regs for calculating the register pressure | 7 | Calculate the loop liveness used for regs for calculating the register pressure |
| 8 | in the cost estimation. Loop liveness is based on the following properties. | 8 | in the cost estimation. Loop liveness is based on the following properties. |
| @@ -36,15 +36,15 @@ ChangeLog: | |||
| 36 | 36 | ||
| 37 | Signed-off-by:Ajit Agarwal ajitkum@xilinx.com. | 37 | Signed-off-by:Ajit Agarwal ajitkum@xilinx.com. |
| 38 | --- | 38 | --- |
| 39 | gcc/cfgloopanal.c | 4 +++- | 39 | gcc/cfgloopanal.c | 4 ++- |
| 40 | gcc/loop-invariant.c | 63 +++++++++++++++++++++++++++++++++++++++------------- | 40 | gcc/loop-invariant.c | 63 +++++++++++++++++++++++++++++++++----------- |
| 41 | 2 files changed, 50 insertions(+), 17 deletions(-) | 41 | 2 files changed, 50 insertions(+), 17 deletions(-) |
| 42 | 42 | ||
| 43 | diff --git a/gcc/cfgloopanal.c b/gcc/cfgloopanal.c | 43 | diff --git a/gcc/cfgloopanal.c b/gcc/cfgloopanal.c |
| 44 | index 6dbe96f..ec5cba2 100644 | 44 | index 0b33e8272a7..7be8606e4f0 100644 |
| 45 | --- a/gcc/cfgloopanal.c | 45 | --- a/gcc/cfgloopanal.c |
| 46 | +++ b/gcc/cfgloopanal.c | 46 | +++ b/gcc/cfgloopanal.c |
| 47 | @@ -411,7 +411,9 @@ estimate_reg_pressure_cost (unsigned n_new, unsigned n_old, bool speed, | 47 | @@ -418,7 +418,9 @@ estimate_reg_pressure_cost (unsigned n_new, unsigned n_old, bool speed, |
| 48 | if (regs_needed + target_res_regs <= available_regs) | 48 | if (regs_needed + target_res_regs <= available_regs) |
| 49 | return 0; | 49 | return 0; |
| 50 | 50 | ||
| @@ -56,7 +56,7 @@ index 6dbe96f..ec5cba2 100644 | |||
| 56 | them. */ | 56 | them. */ |
| 57 | cost = target_reg_cost [speed] * n_new; | 57 | cost = target_reg_cost [speed] * n_new; |
| 58 | diff --git a/gcc/loop-invariant.c b/gcc/loop-invariant.c | 58 | diff --git a/gcc/loop-invariant.c b/gcc/loop-invariant.c |
| 59 | index fd7a019..ad54297 100644 | 59 | index f6385d6cf43..8596b5c984d 100644 |
| 60 | --- a/gcc/loop-invariant.c | 60 | --- a/gcc/loop-invariant.c |
| 61 | +++ b/gcc/loop-invariant.c | 61 | +++ b/gcc/loop-invariant.c |
| 62 | @@ -1519,7 +1519,7 @@ gain_for_invariant (struct invariant *inv, unsigned *regs_needed, | 62 | @@ -1519,7 +1519,7 @@ gain_for_invariant (struct invariant *inv, unsigned *regs_needed, |
| @@ -138,5 +138,5 @@ index fd7a019..ad54297 100644 | |||
| 138 | 138 | ||
| 139 | if (! flag_ira_loop_pressure) | 139 | if (! flag_ira_loop_pressure) |
| 140 | -- | 140 | -- |
| 141 | 2.7.4 | 141 | 2.17.1 |
| 142 | 142 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0028-Patch-microblaze-Correct-the-const-high-double-immed.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0026-Patch-microblaze-Correct-the-const-high-double-immed.patch index b5ee2c8c..cbc1b7b8 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0028-Patch-microblaze-Correct-the-const-high-double-immed.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0026-Patch-microblaze-Correct-the-const-high-double-immed.patch | |||
| @@ -1,11 +1,13 @@ | |||
| 1 | From 8f8c6cd35a2cf79449c0155fa865a665d730e541 Mon Sep 17 00:00:00 2001 | 1 | From 711652dd187e5b8d7aa12ecc9f569f10b1521bd1 Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Wed, 18 Jan 2017 11:25:48 +0530 | 3 | Date: Wed, 18 Jan 2017 11:25:48 +0530 |
| 4 | Subject: [PATCH 28/63] [Patch, microblaze]: Correct the const high double | 4 | Subject: [PATCH 26/58] [Patch, microblaze]: Correct the const high double |
| 5 | immediate value With this patch the loading of the DI mode immediate values | 5 | immediate value |
| 6 | will be using REAL_VALUE_FROM_CONST_DOUBLE and REAL_VALUE_TO_TARGET_DOUBLE | 6 | |
| 7 | functions, as CONST_DOUBLE_HIGH was returning the sign extension value even | 7 | With this patch the loading of the DI mode immediate values will be |
| 8 | of the unsigned long long constants also | 8 | using REAL_VALUE_FROM_CONST_DOUBLE and REAL_VALUE_TO_TARGET_DOUBLE |
| 9 | functions, as CONST_DOUBLE_HIGH was returning the sign extension value | ||
| 10 | even of the unsigned long long constants also | ||
| 9 | 11 | ||
| 10 | Signed-off-by :Nagaraju Mekala <nmekala@xilix.com> | 12 | Signed-off-by :Nagaraju Mekala <nmekala@xilix.com> |
| 11 | Ajit Agarwal <ajitkum@xilinx.com> | 13 | Ajit Agarwal <ajitkum@xilinx.com> |
| @@ -18,16 +20,16 @@ ChangeLog: | |||
| 18 | REAL_VALUE_TO_TARGET_DOUBLE | 20 | REAL_VALUE_TO_TARGET_DOUBLE |
| 19 | *long.c (new): Added new testcase | 21 | *long.c (new): Added new testcase |
| 20 | --- | 22 | --- |
| 21 | gcc/config/microblaze/microblaze.c | 8 ++++++-- | 23 | gcc/config/microblaze/microblaze.c | 6 ++++-- |
| 22 | gcc/testsuite/gcc.target/microblaze/long.c | 10 ++++++++++ | 24 | gcc/testsuite/gcc.target/microblaze/long.c | 10 ++++++++++ |
| 23 | 2 files changed, 16 insertions(+), 2 deletions(-) | 25 | 2 files changed, 14 insertions(+), 2 deletions(-) |
| 24 | create mode 100644 gcc/testsuite/gcc.target/microblaze/long.c | 26 | create mode 100644 gcc/testsuite/gcc.target/microblaze/long.c |
| 25 | 27 | ||
| 26 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c | 28 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c |
| 27 | index ae7d5dd..002d7a5 100644 | 29 | index a3996119bd7..73d0e010cda 100644 |
| 28 | --- a/gcc/config/microblaze/microblaze.c | 30 | --- a/gcc/config/microblaze/microblaze.c |
| 29 | +++ b/gcc/config/microblaze/microblaze.c | 31 | +++ b/gcc/config/microblaze/microblaze.c |
| 30 | @@ -2594,14 +2594,18 @@ print_operand (FILE * file, rtx op, int letter) | 32 | @@ -2587,14 +2587,16 @@ print_operand (FILE * file, rtx op, int letter) |
| 31 | else if (letter == 'h' || letter == 'j') | 33 | else if (letter == 'h' || letter == 'j') |
| 32 | { | 34 | { |
| 33 | long val[2]; | 35 | long val[2]; |
| @@ -40,17 +42,15 @@ index ae7d5dd..002d7a5 100644 | |||
| 40 | { | 42 | { |
| 41 | - val[0] = CONST_DOUBLE_HIGH (op); | 43 | - val[0] = CONST_DOUBLE_HIGH (op); |
| 42 | - val[1] = CONST_DOUBLE_LOW (op); | 44 | - val[1] = CONST_DOUBLE_LOW (op); |
| 43 | + REAL_VALUE_TYPE rv; | 45 | + REAL_VALUE_TO_TARGET_DOUBLE (*CONST_DOUBLE_REAL_VALUE (op), l); |
| 44 | + REAL_VALUE_FROM_CONST_DOUBLE (rv, op); | 46 | + val[1] = l[WORDS_BIG_ENDIAN == 0]; |
| 45 | + REAL_VALUE_TO_TARGET_DOUBLE (rv, l); | 47 | + val[0] = l[WORDS_BIG_ENDIAN != 0]; |
| 46 | + val[1] = l[WORDS_BIG_ENDIAN == 0]; | ||
| 47 | + val[0] = l[WORDS_BIG_ENDIAN != 0]; | ||
| 48 | } | 48 | } |
| 49 | } | 49 | } |
| 50 | else if (code == CONST_INT) | 50 | else if (code == CONST_INT) |
| 51 | diff --git a/gcc/testsuite/gcc.target/microblaze/long.c b/gcc/testsuite/gcc.target/microblaze/long.c | 51 | diff --git a/gcc/testsuite/gcc.target/microblaze/long.c b/gcc/testsuite/gcc.target/microblaze/long.c |
| 52 | new file mode 100644 | 52 | new file mode 100644 |
| 53 | index 0000000..4d45186 | 53 | index 00000000000..4d4518619d1 |
| 54 | --- /dev/null | 54 | --- /dev/null |
| 55 | +++ b/gcc/testsuite/gcc.target/microblaze/long.c | 55 | +++ b/gcc/testsuite/gcc.target/microblaze/long.c |
| 56 | @@ -0,0 +1,10 @@ | 56 | @@ -0,0 +1,10 @@ |
| @@ -65,5 +65,5 @@ index 0000000..4d45186 | |||
| 65 | +/* { dg-final { scan-assembler "addik\tr(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),r0,0x00000000" } } */ | 65 | +/* { dg-final { scan-assembler "addik\tr(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),r0,0x00000000" } } */ |
| 66 | +/* { dg-final { scan-assembler "addik\tr(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),r0,0xf0000000" } } */ | 66 | +/* { dg-final { scan-assembler "addik\tr(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),r0,0xf0000000" } } */ |
| 67 | -- | 67 | -- |
| 68 | 2.7.4 | 68 | 2.17.1 |
| 69 | 69 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0029-Fix-microblaze-Fix-internal-compiler-error-with-msma.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0027-Fix-microblaze-Fix-internal-compiler-error-with-msma.patch index cbfc98de..3869db15 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0029-Fix-microblaze-Fix-internal-compiler-error-with-msma.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0027-Fix-microblaze-Fix-internal-compiler-error-with-msma.patch | |||
| @@ -1,11 +1,12 @@ | |||
| 1 | From 30402c3bcfeb8a93656957b22558997b65d69cb8 Mon Sep 17 00:00:00 2001 | 1 | From ea79d97f430d554921d94d30cb8db851cce6664b Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Wed, 18 Jan 2017 11:49:58 +0530 | 3 | Date: Wed, 18 Jan 2017 11:49:58 +0530 |
| 4 | Subject: [PATCH 29/63] [Fix, microblaze]: Fix internal compiler error with | 4 | Subject: [PATCH 27/58] [Fix, microblaze]: Fix internal compiler error with |
| 5 | msmall-divides This patch will fix the internal error | 5 | msmall-divides |
| 6 | microblaze_expand_divide function which comes because of rtx PLUS where the | 6 | |
| 7 | mem_rtx is of type SI and the operand is of type QImode. This patch modifies | 7 | This patch will fix the internal error microblaze_expand_divide function which comes because |
| 8 | the mem_rtx as QImode and Plus as QImode to fix the error. | 8 | of rtx PLUS where the mem_rtx is of type SI and the operand is of type QImode. |
| 9 | This patch modifies the mem_rtx as QImode and Plus as QImode to fix the error. | ||
| 9 | 10 | ||
| 10 | Signed-off-by :Nagaraju Mekala <nmekala@xilix.com> | 11 | Signed-off-by :Nagaraju Mekala <nmekala@xilix.com> |
| 11 | Ajit Agarwal <ajitkum@xilinx.com> | 12 | Ajit Agarwal <ajitkum@xilinx.com> |
| @@ -19,10 +20,10 @@ ChangeLog: | |||
| 19 | 1 file changed, 1 insertion(+), 1 deletion(-) | 20 | 1 file changed, 1 insertion(+), 1 deletion(-) |
| 20 | 21 | ||
| 21 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c | 22 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c |
| 22 | index 002d7a5..c662952 100644 | 23 | index 73d0e010cda..f7c29ef28f5 100644 |
| 23 | --- a/gcc/config/microblaze/microblaze.c | 24 | --- a/gcc/config/microblaze/microblaze.c |
| 24 | +++ b/gcc/config/microblaze/microblaze.c | 25 | +++ b/gcc/config/microblaze/microblaze.c |
| 25 | @@ -3909,7 +3909,7 @@ microblaze_expand_divide (rtx operands[]) | 26 | @@ -3902,7 +3902,7 @@ microblaze_expand_divide (rtx operands[]) |
| 26 | emit_insn (gen_ashlsi3_bshift (regt1, operands[1], GEN_INT(4))); | 27 | emit_insn (gen_ashlsi3_bshift (regt1, operands[1], GEN_INT(4))); |
| 27 | emit_insn (gen_addsi3 (regt1, regt1, operands[2])); | 28 | emit_insn (gen_addsi3 (regt1, regt1, operands[2])); |
| 28 | mem_rtx = gen_rtx_MEM (QImode, | 29 | mem_rtx = gen_rtx_MEM (QImode, |
| @@ -32,5 +33,5 @@ index 002d7a5..c662952 100644 | |||
| 32 | insn = emit_insn (gen_zero_extendqisi2(operands[0],mem_rtx)); | 33 | insn = emit_insn (gen_zero_extendqisi2(operands[0],mem_rtx)); |
| 33 | jump = emit_jump_insn_after (gen_jump (div_end_label), insn); | 34 | jump = emit_jump_insn_after (gen_jump (div_end_label), insn); |
| 34 | -- | 35 | -- |
| 35 | 2.7.4 | 36 | 2.17.1 |
| 36 | 37 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0030-patch-microblaze-Fix-the-calculation-of-high-word-in.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0028-patch-microblaze-Fix-the-calculation-of-high-word-in.patch index fce06359..3f9dd69b 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0030-patch-microblaze-Fix-the-calculation-of-high-word-in.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0028-patch-microblaze-Fix-the-calculation-of-high-word-in.patch | |||
| @@ -1,8 +1,8 @@ | |||
| 1 | From 5ac80cf926c4dc96cbfd189f02c9250865b52dd3 Mon Sep 17 00:00:00 2001 | 1 | From fa067a4b7b65aae3671bb02d77c580c9e35fc384 Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Wed, 18 Jan 2017 12:03:39 +0530 | 3 | Date: Wed, 18 Jan 2017 12:03:39 +0530 |
| 4 | Subject: [PATCH 30/63] [patch,microblaze]: Fix the calculation of high word in | 4 | Subject: [PATCH 28/58] [patch,microblaze]: Fix the calculation of high word in |
| 5 | a long long 6. .4-bit | 5 | a long long 64-bit |
| 6 | 6 | ||
| 7 | This patch will change the calculation of high word in a long long 64-bit. | 7 | This patch will change the calculation of high word in a long long 64-bit. |
| 8 | Earlier to this patch the high word of long long word (0xF0000000ULL) is | 8 | Earlier to this patch the high word of long long word (0xF0000000ULL) is |
| @@ -27,10 +27,10 @@ ChangeLog: | |||
| 27 | 1 file changed, 3 deletions(-) | 27 | 1 file changed, 3 deletions(-) |
| 28 | 28 | ||
| 29 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c | 29 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c |
| 30 | index c662952..8013a2c 100644 | 30 | index f7c29ef28f5..0a73a6c32b4 100644 |
| 31 | --- a/gcc/config/microblaze/microblaze.c | 31 | --- a/gcc/config/microblaze/microblaze.c |
| 32 | +++ b/gcc/config/microblaze/microblaze.c | 32 | +++ b/gcc/config/microblaze/microblaze.c |
| 33 | @@ -2612,9 +2612,6 @@ print_operand (FILE * file, rtx op, int letter) | 33 | @@ -2603,9 +2603,6 @@ print_operand (FILE * file, rtx op, int letter) |
| 34 | { | 34 | { |
| 35 | val[0] = (INTVAL (op) & 0xffffffff00000000LL) >> 32; | 35 | val[0] = (INTVAL (op) & 0xffffffff00000000LL) >> 32; |
| 36 | val[1] = INTVAL (op) & 0x00000000ffffffffLL; | 36 | val[1] = INTVAL (op) & 0x00000000ffffffffLL; |
| @@ -41,5 +41,5 @@ index c662952..8013a2c 100644 | |||
| 41 | fprintf (file, "0x%8.8lx", (letter == 'h') ? val[0] : val[1]); | 41 | fprintf (file, "0x%8.8lx", (letter == 'h') ? val[0] : val[1]); |
| 42 | } | 42 | } |
| 43 | -- | 43 | -- |
| 44 | 2.7.4 | 44 | 2.17.1 |
| 45 | 45 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0031-Patch-microblaze-Add-new-bit-field-instructions.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0029-Patch-microblaze-Add-new-bit-field-instructions.patch index cbf64d97..dfdb479c 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0031-Patch-microblaze-Add-new-bit-field-instructions.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0029-Patch-microblaze-Add-new-bit-field-instructions.patch | |||
| @@ -1,13 +1,15 @@ | |||
| 1 | From 45deb5bd3ae8c3db360ef181c9873e37d2288848 Mon Sep 17 00:00:00 2001 | 1 | From 341bf8ad4e55693d00d4d8c916f4c347e7186dd4 Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Wed, 18 Jan 2017 12:14:51 +0530 | 3 | Date: Wed, 18 Jan 2017 12:14:51 +0530 |
| 4 | Subject: [PATCH 31/63] [Patch, microblaze]: Add new bit-field instructions | 4 | Subject: [PATCH 29/58] [Patch, microblaze]: Add new bit-field instructions |
| 5 | This patches adds new bsefi and bsifi instructions. BSEFI- The instruction | 5 | |
| 6 | shall extract a bit field from a register and place it right-adjusted in the | 6 | This patches adds new bsefi and bsifi instructions. |
| 7 | destination register. The other bits in the destination register shall be set | 7 | BSEFI- The instruction shall extract a bit field from a |
| 8 | to zero BSIFI- The instruction shall insert a right-adjusted bit field from a | 8 | register and place it right-adjusted in the destination register. |
| 9 | register at another position in the destination register. The rest of the | 9 | The other bits in the destination register shall be set to zero |
| 10 | bits in the destination register shall be unchanged | 10 | BSIFI- The instruction shall insert a right-adjusted bit field |
| 11 | from a register at another position in the destination register. | ||
| 12 | The rest of the bits in the destination register shall be unchanged | ||
| 11 | 13 | ||
| 12 | Signed-off-by :Nagaraju Mekala <nmekala@xilix.com> | 14 | Signed-off-by :Nagaraju Mekala <nmekala@xilix.com> |
| 13 | 15 | ||
| @@ -16,11 +18,32 @@ ChangeLog: | |||
| 16 | 18 | ||
| 17 | *microblaze.md (Update): Added new patterns | 19 | *microblaze.md (Update): Added new patterns |
| 18 | --- | 20 | --- |
| 19 | gcc/config/microblaze/microblaze.md | 73 +++++++++++++++++++++++++++++++++++++ | 21 | gcc/config/microblaze/microblaze.h | 2 + |
| 20 | 1 file changed, 73 insertions(+) | 22 | gcc/config/microblaze/microblaze.md | 73 +++++++++++++++++++++++++++++ |
| 23 | 2 files changed, 75 insertions(+) | ||
| 21 | 24 | ||
| 25 | diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h | ||
| 26 | index 8b0db2c1718..b5b7b22cec9 100644 | ||
| 27 | --- a/gcc/config/microblaze/microblaze.h | ||
| 28 | +++ b/gcc/config/microblaze/microblaze.h | ||
| 29 | @@ -44,6 +44,7 @@ extern int microblaze_dbx_regno[]; | ||
| 30 | |||
| 31 | extern int microblaze_no_unsafe_delay; | ||
| 32 | extern int microblaze_has_clz; | ||
| 33 | +extern int microblaze_has_bitfield; | ||
| 34 | extern enum pipeline_type microblaze_pipe; | ||
| 35 | |||
| 36 | #define OBJECT_FORMAT_ELF | ||
| 37 | @@ -62,6 +63,7 @@ extern enum pipeline_type microblaze_pipe; | ||
| 38 | |||
| 39 | /* Do we have CLZ? */ | ||
| 40 | #define TARGET_HAS_CLZ (TARGET_PATTERN_COMPARE && microblaze_has_clz) | ||
| 41 | +#define TARGET_HAS_BITFIELD (TARGET_BARREL_SHIFT && microblaze_has_bitfield) | ||
| 42 | |||
| 43 | /* The default is to support PIC. */ | ||
| 44 | #define TARGET_SUPPORTS_PIC 1 | ||
| 22 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md | 45 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md |
| 23 | index b7c16ac..67b298a 100644 | 46 | index c407a81c51e..fa6aabdb9d4 100644 |
| 24 | --- a/gcc/config/microblaze/microblaze.md | 47 | --- a/gcc/config/microblaze/microblaze.md |
| 25 | +++ b/gcc/config/microblaze/microblaze.md | 48 | +++ b/gcc/config/microblaze/microblaze.md |
| 26 | @@ -982,6 +982,8 @@ | 49 | @@ -982,6 +982,8 @@ |
| @@ -116,5 +139,5 @@ index b7c16ac..67b298a 100644 | |||
| 116 | + | 139 | + |
| 117 | (include "sync.md") | 140 | (include "sync.md") |
| 118 | -- | 141 | -- |
| 119 | 2.7.4 | 142 | 2.17.1 |
| 120 | 143 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0032-Patch-microblaze-Fix-bug-in-MB-version-calculation.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0030-Patch-microblaze-Fix-bug-in-MB-version-calculation.patch index 86df58b3..bb773239 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0032-Patch-microblaze-Fix-bug-in-MB-version-calculation.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0030-Patch-microblaze-Fix-bug-in-MB-version-calculation.patch | |||
| @@ -1,21 +1,23 @@ | |||
| 1 | From bc95cc12b2c4d96ea709eefc4b99181b8c40b19c Mon Sep 17 00:00:00 2001 | 1 | From df38540af411564f428079335c8d1e695dc1d723 Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Wed, 18 Jan 2017 12:42:10 +0530 | 3 | Date: Wed, 18 Jan 2017 12:42:10 +0530 |
| 4 | Subject: [PATCH 32/63] [Patch, microblaze]: Fix bug in MB version calculation | 4 | Subject: [PATCH 30/58] [Patch, microblaze]: Fix bug in MB version calculation |
| 5 | This patch fixes the bug in microblaze_version_to_int function. Earlier the | 5 | |
| 6 | conversion of vXX.YY.Z to int has a bug which is fixed now. | 6 | This patch fixes the bug in microblaze_version_to_int function. |
| 7 | Earlier the conversion of vXX.YY.Z to int has a bug which is | ||
| 8 | fixed now. | ||
| 7 | 9 | ||
| 8 | Signed-off-by : Mahesh Bodapati <mbodapat@xilinx.com> | 10 | Signed-off-by : Mahesh Bodapati <mbodapat@xilinx.com> |
| 9 | Nagaraju Mekala <nmekala@xilix.com> | 11 | Nagaraju Mekala <nmekala@xilix.com> |
| 10 | --- | 12 | --- |
| 11 | gcc/config/microblaze/microblaze.c | 147 ++++++++++++++++++------------------- | 13 | gcc/config/microblaze/microblaze.c | 145 ++++++++++++++--------------- |
| 12 | 1 file changed, 70 insertions(+), 77 deletions(-) | 14 | 1 file changed, 69 insertions(+), 76 deletions(-) |
| 13 | 15 | ||
| 14 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c | 16 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c |
| 15 | index 8013a2c..3f68ef0 100644 | 17 | index 0a73a6c32b4..4b5699671e8 100644 |
| 16 | --- a/gcc/config/microblaze/microblaze.c | 18 | --- a/gcc/config/microblaze/microblaze.c |
| 17 | +++ b/gcc/config/microblaze/microblaze.c | 19 | +++ b/gcc/config/microblaze/microblaze.c |
| 18 | @@ -239,6 +239,63 @@ section *sdata2_section; | 20 | @@ -242,6 +242,63 @@ section *sdata2_section; |
| 19 | #define TARGET_HAVE_TLS true | 21 | #define TARGET_HAVE_TLS true |
| 20 | #endif | 22 | #endif |
| 21 | 23 | ||
| @@ -79,7 +81,7 @@ index 8013a2c..3f68ef0 100644 | |||
| 79 | /* Return truth value if a CONST_DOUBLE is ok to be a legitimate constant. */ | 81 | /* Return truth value if a CONST_DOUBLE is ok to be a legitimate constant. */ |
| 80 | static bool | 82 | static bool |
| 81 | microblaze_const_double_ok (rtx op, machine_mode mode) | 83 | microblaze_const_double_ok (rtx op, machine_mode mode) |
| 82 | @@ -1338,8 +1395,7 @@ microblaze_rtx_costs (rtx x, machine_mode mode, int outer_code ATTRIBUTE_UNUSED, | 84 | @@ -1341,8 +1398,7 @@ microblaze_rtx_costs (rtx x, machine_mode mode, int outer_code ATTRIBUTE_UNUSED, |
| 83 | { | 85 | { |
| 84 | if (TARGET_BARREL_SHIFT) | 86 | if (TARGET_BARREL_SHIFT) |
| 85 | { | 87 | { |
| @@ -89,7 +91,7 @@ index 8013a2c..3f68ef0 100644 | |||
| 89 | *total = COSTS_N_INSNS (1); | 91 | *total = COSTS_N_INSNS (1); |
| 90 | else | 92 | else |
| 91 | *total = COSTS_N_INSNS (2); | 93 | *total = COSTS_N_INSNS (2); |
| 92 | @@ -1400,8 +1456,7 @@ microblaze_rtx_costs (rtx x, machine_mode mode, int outer_code ATTRIBUTE_UNUSED, | 94 | @@ -1403,8 +1459,7 @@ microblaze_rtx_costs (rtx x, machine_mode mode, int outer_code ATTRIBUTE_UNUSED, |
| 93 | } | 95 | } |
| 94 | else if (!TARGET_SOFT_MUL) | 96 | else if (!TARGET_SOFT_MUL) |
| 95 | { | 97 | { |
| @@ -99,7 +101,7 @@ index 8013a2c..3f68ef0 100644 | |||
| 99 | *total = COSTS_N_INSNS (1); | 101 | *total = COSTS_N_INSNS (1); |
| 100 | else | 102 | else |
| 101 | *total = COSTS_N_INSNS (3); | 103 | *total = COSTS_N_INSNS (3); |
| 102 | @@ -1682,72 +1737,13 @@ function_arg_partial_bytes (cumulative_args_t cum_v, machine_mode mode, | 104 | @@ -1677,65 +1732,6 @@ function_arg_partial_bytes (cumulative_args_t cum_v, |
| 103 | return 0; | 105 | return 0; |
| 104 | } | 106 | } |
| 105 | 107 | ||
| @@ -165,15 +167,7 @@ index 8013a2c..3f68ef0 100644 | |||
| 165 | static void | 167 | static void |
| 166 | microblaze_option_override (void) | 168 | microblaze_option_override (void) |
| 167 | { | 169 | { |
| 168 | register int i, start; | 170 | @@ -1763,13 +1759,13 @@ microblaze_option_override (void) |
| 169 | register int regno; | ||
| 170 | register machine_mode mode; | ||
| 171 | - int ver; | ||
| 172 | + int ver,ver_int; | ||
| 173 | |||
| 174 | microblaze_section_threshold = (global_options_set.x_g_switch_value | ||
| 175 | ? g_switch_value | ||
| 176 | @@ -1768,13 +1764,13 @@ microblaze_option_override (void) | ||
| 177 | /* Check the MicroBlaze CPU version for any special action to be done. */ | 171 | /* Check the MicroBlaze CPU version for any special action to be done. */ |
| 178 | if (microblaze_select_cpu == NULL) | 172 | if (microblaze_select_cpu == NULL) |
| 179 | microblaze_select_cpu = MICROBLAZE_DEFAULT_CPU; | 173 | microblaze_select_cpu = MICROBLAZE_DEFAULT_CPU; |
| @@ -190,7 +184,7 @@ index 8013a2c..3f68ef0 100644 | |||
| 190 | if (ver < 0) | 184 | if (ver < 0) |
| 191 | { | 185 | { |
| 192 | /* No hardware exceptions in earlier versions. So no worries. */ | 186 | /* No hardware exceptions in earlier versions. So no worries. */ |
| 193 | @@ -1785,8 +1781,7 @@ microblaze_option_override (void) | 187 | @@ -1780,8 +1776,7 @@ microblaze_option_override (void) |
| 194 | microblaze_pipe = MICROBLAZE_PIPE_3; | 188 | microblaze_pipe = MICROBLAZE_PIPE_3; |
| 195 | } | 189 | } |
| 196 | else if (ver == 0 | 190 | else if (ver == 0 |
| @@ -200,7 +194,7 @@ index 8013a2c..3f68ef0 100644 | |||
| 200 | { | 194 | { |
| 201 | #if 0 | 195 | #if 0 |
| 202 | microblaze_select_flags |= (MICROBLAZE_MASK_NO_UNSAFE_DELAY); | 196 | microblaze_select_flags |= (MICROBLAZE_MASK_NO_UNSAFE_DELAY); |
| 203 | @@ -1803,11 +1798,9 @@ microblaze_option_override (void) | 197 | @@ -1798,11 +1793,9 @@ microblaze_option_override (void) |
| 204 | #endif | 198 | #endif |
| 205 | microblaze_no_unsafe_delay = 0; | 199 | microblaze_no_unsafe_delay = 0; |
| 206 | microblaze_pipe = MICROBLAZE_PIPE_5; | 200 | microblaze_pipe = MICROBLAZE_PIPE_5; |
| @@ -215,7 +209,7 @@ index 8013a2c..3f68ef0 100644 | |||
| 215 | { | 209 | { |
| 216 | /* Pattern compares are to be turned on by default only when | 210 | /* Pattern compares are to be turned on by default only when |
| 217 | compiling for MB v5.00.'z'. */ | 211 | compiling for MB v5.00.'z'. */ |
| 218 | @@ -1815,7 +1808,7 @@ microblaze_option_override (void) | 212 | @@ -1810,7 +1803,7 @@ microblaze_option_override (void) |
| 219 | } | 213 | } |
| 220 | } | 214 | } |
| 221 | 215 | ||
| @@ -224,7 +218,7 @@ index 8013a2c..3f68ef0 100644 | |||
| 224 | if (ver < 0) | 218 | if (ver < 0) |
| 225 | { | 219 | { |
| 226 | if (TARGET_MULTIPLY_HIGH) | 220 | if (TARGET_MULTIPLY_HIGH) |
| 227 | @@ -1824,7 +1817,7 @@ microblaze_option_override (void) | 221 | @@ -1819,7 +1812,7 @@ microblaze_option_override (void) |
| 228 | "%<-mcpu=v6.00.a%> or greater"); | 222 | "%<-mcpu=v6.00.a%> or greater"); |
| 229 | } | 223 | } |
| 230 | 224 | ||
| @@ -233,7 +227,7 @@ index 8013a2c..3f68ef0 100644 | |||
| 233 | microblaze_has_clz = 1; | 227 | microblaze_has_clz = 1; |
| 234 | if (ver < 0) | 228 | if (ver < 0) |
| 235 | { | 229 | { |
| 236 | @@ -1833,7 +1826,7 @@ microblaze_option_override (void) | 230 | @@ -1828,7 +1821,7 @@ microblaze_option_override (void) |
| 237 | } | 231 | } |
| 238 | 232 | ||
| 239 | /* TARGET_REORDER defaults to 2 if -mxl-reorder not specified. */ | 233 | /* TARGET_REORDER defaults to 2 if -mxl-reorder not specified. */ |
| @@ -243,5 +237,5 @@ index 8013a2c..3f68ef0 100644 | |||
| 243 | { | 237 | { |
| 244 | if (TARGET_REORDER == 1) | 238 | if (TARGET_REORDER == 1) |
| 245 | -- | 239 | -- |
| 246 | 2.7.4 | 240 | 2.17.1 |
| 247 | 241 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0035-Fixing-the-issue-with-the-builtin_alloc.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0031-Fixing-the-issue-with-the-builtin_alloc.patch index 91ac0d02..0c80cf81 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0035-Fixing-the-issue-with-the-builtin_alloc.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0031-Fixing-the-issue-with-the-builtin_alloc.patch | |||
| @@ -1,9 +1,10 @@ | |||
| 1 | From e672184af6a43b773131181270c7a8c5c5273bd8 Mon Sep 17 00:00:00 2001 | 1 | From 87da245d89fffe6a025037b4a53f66dafa7e1f84 Mon Sep 17 00:00:00 2001 |
| 2 | From: Nagaraju Mekala <nmekala@xilix.com> | 2 | From: Nagaraju Mekala <nmekala@xilix.com> |
| 3 | Date: Thu, 23 Feb 2017 17:09:04 +0530 | 3 | Date: Thu, 23 Feb 2017 17:09:04 +0530 |
| 4 | Subject: [PATCH 35/63] Fixing the issue with the builtin_alloc. register r18 | 4 | Subject: [PATCH 31/58] Fixing the issue with the builtin_alloc. |
| 5 | was not properly handling the stack pattern which was resolved by using free | 5 | |
| 6 | available register | 6 | register r18 was not properly handling the stack pattern |
| 7 | which was resolved by using free available register | ||
| 7 | 8 | ||
| 8 | signed-off-by:nagaraju mekala <nmekala@xilinx.com> | 9 | signed-off-by:nagaraju mekala <nmekala@xilinx.com> |
| 9 | --- | 10 | --- |
| @@ -11,7 +12,7 @@ signed-off-by:nagaraju mekala <nmekala@xilinx.com> | |||
| 11 | 1 file changed, 4 insertions(+), 4 deletions(-) | 12 | 1 file changed, 4 insertions(+), 4 deletions(-) |
| 12 | 13 | ||
| 13 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md | 14 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md |
| 14 | index 67b298a..7bae957 100644 | 15 | index fa6aabdb9d4..9de46d0ce24 100644 |
| 15 | --- a/gcc/config/microblaze/microblaze.md | 16 | --- a/gcc/config/microblaze/microblaze.md |
| 16 | +++ b/gcc/config/microblaze/microblaze.md | 17 | +++ b/gcc/config/microblaze/microblaze.md |
| 17 | @@ -2078,10 +2078,10 @@ | 18 | @@ -2078,10 +2078,10 @@ |
| @@ -40,5 +41,5 @@ index 67b298a..7bae957 100644 | |||
| 40 | } | 41 | } |
| 41 | ) | 42 | ) |
| 42 | -- | 43 | -- |
| 43 | 2.7.4 | 44 | 2.17.1 |
| 44 | 45 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0037-Patch-Microblaze-update-in-constraints-for-bitfield-.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0032-Patch-Microblaze-update-in-constraints-for-bitfield-.patch index ba0f8e80..458af563 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0037-Patch-Microblaze-update-in-constraints-for-bitfield-.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0032-Patch-Microblaze-update-in-constraints-for-bitfield-.patch | |||
| @@ -1,15 +1,15 @@ | |||
| 1 | From f436198b817f33d56aaddb88ff629378498de489 Mon Sep 17 00:00:00 2001 | 1 | From 3e8779308d1901b273b2b360bea719aa72d24ab9 Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Mon, 19 Feb 2018 18:06:16 +0530 | 3 | Date: Mon, 19 Feb 2018 18:06:16 +0530 |
| 4 | Subject: [PATCH 37/63] [Patch,Microblaze]: update in constraints for bitfield | 4 | Subject: [PATCH 32/58] [Patch,Microblaze]: update in constraints for bitfield |
| 5 | insert and extract instructions. | 5 | insert and extract instructions. |
| 6 | 6 | ||
| 7 | --- | 7 | --- |
| 8 | gcc/config/microblaze/microblaze.md | 43 ++++++------------------------------- | 8 | gcc/config/microblaze/microblaze.md | 43 +++++------------------------ |
| 9 | 1 file changed, 7 insertions(+), 36 deletions(-) | 9 | 1 file changed, 7 insertions(+), 36 deletions(-) |
| 10 | 10 | ||
| 11 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md | 11 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md |
| 12 | index 7bae957..6101387 100644 | 12 | index 9de46d0ce24..fe94807182b 100644 |
| 13 | --- a/gcc/config/microblaze/microblaze.md | 13 | --- a/gcc/config/microblaze/microblaze.md |
| 14 | +++ b/gcc/config/microblaze/microblaze.md | 14 | +++ b/gcc/config/microblaze/microblaze.md |
| 15 | @@ -2492,33 +2492,17 @@ | 15 | @@ -2492,33 +2492,17 @@ |
| @@ -76,5 +76,5 @@ index 7bae957..6101387 100644 | |||
| 76 | (define_insn "insv_32" | 76 | (define_insn "insv_32" |
| 77 | [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+r") | 77 | [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+r") |
| 78 | -- | 78 | -- |
| 79 | 2.7.4 | 79 | 2.17.1 |
| 80 | 80 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0033-Fixing-the-bug-in-the-bit-field-instruction.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0033-Fixing-the-bug-in-the-bit-field-instruction.patch deleted file mode 100644 index 68f70ae8..00000000 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0033-Fixing-the-bug-in-the-bit-field-instruction.patch +++ /dev/null | |||
| @@ -1,48 +0,0 @@ | |||
| 1 | From 51da0572e0650378e422030b26d1258c8fc76df6 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | ||
| 3 | Date: Wed, 18 Jan 2017 13:57:48 +0530 | ||
| 4 | Subject: [PATCH 33/63] Fixing the bug in the bit-field instruction. Bit field | ||
| 5 | instruction should be generated only if mcpu >10.0 | ||
| 6 | |||
| 7 | --- | ||
| 8 | gcc/config/microblaze/microblaze.c | 3 +++ | ||
| 9 | gcc/config/microblaze/microblaze.h | 2 ++ | ||
| 10 | 2 files changed, 5 insertions(+) | ||
| 11 | |||
| 12 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c | ||
| 13 | index 3f68ef0..a37f08eea 100644 | ||
| 14 | --- a/gcc/config/microblaze/microblaze.c | ||
| 15 | +++ b/gcc/config/microblaze/microblaze.c | ||
| 16 | @@ -164,6 +164,9 @@ int microblaze_no_unsafe_delay; | ||
| 17 | /* Set to one if the targeted core has the CLZ insn. */ | ||
| 18 | int microblaze_has_clz = 0; | ||
| 19 | |||
| 20 | +/* Set to one if the targeted core has barrel-shift and cpu > 10.0 */ | ||
| 21 | +int microblaze_has_bitfield = 0; | ||
| 22 | + | ||
| 23 | /* Which CPU pipeline do we use. We haven't really standardized on a CPU | ||
| 24 | version having only a particular type of pipeline. There can still be | ||
| 25 | options on the CPU to scale pipeline features up or down. :( | ||
| 26 | diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h | ||
| 27 | index bf7f3b4..1d05e6e 100644 | ||
| 28 | --- a/gcc/config/microblaze/microblaze.h | ||
| 29 | +++ b/gcc/config/microblaze/microblaze.h | ||
| 30 | @@ -44,6 +44,7 @@ extern int microblaze_dbx_regno[]; | ||
| 31 | |||
| 32 | extern int microblaze_no_unsafe_delay; | ||
| 33 | extern int microblaze_has_clz; | ||
| 34 | +extern int microblaze_has_bitfield; | ||
| 35 | extern enum pipeline_type microblaze_pipe; | ||
| 36 | |||
| 37 | #define OBJECT_FORMAT_ELF | ||
| 38 | @@ -62,6 +63,7 @@ extern enum pipeline_type microblaze_pipe; | ||
| 39 | |||
| 40 | /* Do we have CLZ? */ | ||
| 41 | #define TARGET_HAS_CLZ (TARGET_PATTERN_COMPARE && microblaze_has_clz) | ||
| 42 | +#define TARGET_HAS_BITFIELD (TARGET_BARREL_SHIFT && microblaze_has_bitfield) | ||
| 43 | |||
| 44 | /* The default is to support PIC. */ | ||
| 45 | #define TARGET_SUPPORTS_PIC 1 | ||
| 46 | -- | ||
| 47 | 2.7.4 | ||
| 48 | |||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0038-Patch-Microblaze-Removed-fsqrt-generation-for-double.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0033-Patch-Microblaze-Removed-fsqrt-generation-for-double.patch index 2b90880f..32433470 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0038-Patch-Microblaze-Removed-fsqrt-generation-for-double.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0033-Patch-Microblaze-Removed-fsqrt-generation-for-double.patch | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | From 89aa1907ab0abad38e394f46f7e5f577bdb26498 Mon Sep 17 00:00:00 2001 | 1 | From eb90da1d616dfb7481b3f7c74a2be40e921a24f2 Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Mon, 4 Jun 2018 10:10:18 +0530 | 3 | Date: Mon, 4 Jun 2018 10:10:18 +0530 |
| 4 | Subject: [PATCH 38/63] [Patch,Microblaze] : Removed fsqrt generation for | 4 | Subject: [PATCH 33/58] [Patch,Microblaze] : Removed fsqrt generation for |
| 5 | double values. | 5 | double values. |
| 6 | 6 | ||
| 7 | --- | 7 | --- |
| @@ -9,7 +9,7 @@ Subject: [PATCH 38/63] [Patch,Microblaze] : Removed fsqrt generation for | |||
| 9 | 1 file changed, 14 deletions(-) | 9 | 1 file changed, 14 deletions(-) |
| 10 | 10 | ||
| 11 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md | 11 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md |
| 12 | index 6101387..eb01221 100644 | 12 | index fe94807182b..a527da70f8a 100644 |
| 13 | --- a/gcc/config/microblaze/microblaze.md | 13 | --- a/gcc/config/microblaze/microblaze.md |
| 14 | +++ b/gcc/config/microblaze/microblaze.md | 14 | +++ b/gcc/config/microblaze/microblaze.md |
| 15 | @@ -526,20 +526,6 @@ | 15 | @@ -526,20 +526,6 @@ |
| @@ -34,5 +34,5 @@ index 6101387..eb01221 100644 | |||
| 34 | [(set (match_operand:SI 0 "register_operand" "=d") | 34 | [(set (match_operand:SI 0 "register_operand" "=d") |
| 35 | (fix:SI (match_operand:SF 1 "register_operand" "d")))] | 35 | (fix:SI (match_operand:SF 1 "register_operand" "d")))] |
| 36 | -- | 36 | -- |
| 37 | 2.7.4 | 37 | 2.17.1 |
| 38 | 38 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0039-Intial-commit-of-64-bit-Microblaze.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0034-Intial-commit-of-64-bit-Microblaze.patch index f524cba2..acf14b23 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0039-Intial-commit-of-64-bit-Microblaze.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0034-Intial-commit-of-64-bit-Microblaze.patch | |||
| @@ -1,21 +1,37 @@ | |||
| 1 | From 68359cc8e82f63d01a77c39c68e782e6757cd71e Mon Sep 17 00:00:00 2001 | 1 | From 9600049313b095d6d7d8ea46a7ab783fabae71a2 Mon Sep 17 00:00:00 2001 |
| 2 | From: Nagaraju Mekala <nmekala@xilix.com> | 2 | From: Nagaraju Mekala <nmekala@xilix.com> |
| 3 | Date: Tue, 3 Apr 2018 16:48:39 +0530 | 3 | Date: Tue, 3 Apr 2018 16:48:39 +0530 |
| 4 | Subject: [PATCH 39/63] Intial commit of 64-bit Microblaze | 4 | Subject: [PATCH 34/58] Intial commit of 64-bit Microblaze |
| 5 | 5 | ||
| 6 | Conflicts: | 6 | Added load store pattern movdi and also adding missing files |
| 7 | gcc/config/microblaze/microblaze.opt | ||
| 8 | --- | 7 | --- |
| 8 | gcc/config/microblaze/constraints.md | 5 + | ||
| 9 | gcc/config/microblaze/microblaze-protos.h | 1 + | 9 | gcc/config/microblaze/microblaze-protos.h | 1 + |
| 10 | gcc/config/microblaze/microblaze.c | 109 +++++++-- | 10 | gcc/config/microblaze/microblaze.c | 109 ++++-- |
| 11 | gcc/config/microblaze/microblaze.h | 4 +- | 11 | gcc/config/microblaze/microblaze.h | 4 +- |
| 12 | gcc/config/microblaze/microblaze.md | 370 +++++++++++++++++++++++++++++- | 12 | gcc/config/microblaze/microblaze.md | 394 +++++++++++++++++++++- |
| 13 | gcc/config/microblaze/microblaze.opt | 7 +- | 13 | gcc/config/microblaze/microblaze.opt | 7 +- |
| 14 | gcc/config/microblaze/t-microblaze | 7 +- | 14 | gcc/config/microblaze/t-microblaze | 7 +- |
| 15 | 6 files changed, 460 insertions(+), 38 deletions(-) | 15 | 7 files changed, 490 insertions(+), 37 deletions(-) |
| 16 | 16 | ||
| 17 | diff --git a/gcc/config/microblaze/constraints.md b/gcc/config/microblaze/constraints.md | ||
| 18 | index b9fc6e3fae2..f636b035280 100644 | ||
| 19 | --- a/gcc/config/microblaze/constraints.md | ||
| 20 | +++ b/gcc/config/microblaze/constraints.md | ||
| 21 | @@ -52,6 +52,11 @@ | ||
| 22 | (and (match_code "const_int") | ||
| 23 | (match_test "ival > 0 && ival < 0x10000"))) | ||
| 24 | |||
| 25 | +(define_constraint "K" | ||
| 26 | + "A constant in the range 0xffffff8000000000L to 0x0000007fffffffffL (inclusive)." | ||
| 27 | + (and (match_code "const_int") | ||
| 28 | + (match_test "ival > (long)0xffffff8000000000L && ival < (long)0x0000007fffffffffL"))) | ||
| 29 | + | ||
| 30 | ;; Define floating point constraints | ||
| 31 | |||
| 32 | (define_constraint "G" | ||
| 17 | diff --git a/gcc/config/microblaze/microblaze-protos.h b/gcc/config/microblaze/microblaze-protos.h | 33 | diff --git a/gcc/config/microblaze/microblaze-protos.h b/gcc/config/microblaze/microblaze-protos.h |
| 18 | index bdc9b69..7d6c189 100644 | 34 | index 76ffc682df2..b8a3321dbdf 100644 |
| 19 | --- a/gcc/config/microblaze/microblaze-protos.h | 35 | --- a/gcc/config/microblaze/microblaze-protos.h |
| 20 | +++ b/gcc/config/microblaze/microblaze-protos.h | 36 | +++ b/gcc/config/microblaze/microblaze-protos.h |
| 21 | @@ -36,6 +36,7 @@ extern void microblaze_expand_divide (rtx *); | 37 | @@ -36,6 +36,7 @@ extern void microblaze_expand_divide (rtx *); |
| @@ -27,10 +43,10 @@ index bdc9b69..7d6c189 100644 | |||
| 27 | extern void print_operand (FILE *, rtx, int); | 43 | extern void print_operand (FILE *, rtx, int); |
| 28 | extern void print_operand_address (FILE *, rtx); | 44 | extern void print_operand_address (FILE *, rtx); |
| 29 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c | 45 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c |
| 30 | index 71640e5..f740f5c 100644 | 46 | index 4b5699671e8..8a3ccae558a 100644 |
| 31 | --- a/gcc/config/microblaze/microblaze.c | 47 | --- a/gcc/config/microblaze/microblaze.c |
| 32 | +++ b/gcc/config/microblaze/microblaze.c | 48 | +++ b/gcc/config/microblaze/microblaze.c |
| 33 | @@ -3570,11 +3570,11 @@ microblaze_expand_move (machine_mode mode, rtx operands[]) | 49 | @@ -3562,11 +3562,11 @@ microblaze_expand_move (machine_mode mode, rtx operands[]) |
| 34 | op0 = operands[0]; | 50 | op0 = operands[0]; |
| 35 | op1 = operands[1]; | 51 | op1 = operands[1]; |
| 36 | 52 | ||
| @@ -45,7 +61,7 @@ index 71640e5..f740f5c 100644 | |||
| 45 | emit_move_insn (op0, temp); | 61 | emit_move_insn (op0, temp); |
| 46 | return true; | 62 | return true; |
| 47 | } | 63 | } |
| 48 | @@ -3639,12 +3639,12 @@ microblaze_expand_move (machine_mode mode, rtx operands[]) | 64 | @@ -3631,12 +3631,12 @@ microblaze_expand_move (machine_mode mode, rtx operands[]) |
| 49 | && (flag_pic == 2 || microblaze_tls_symbol_p (p0) | 65 | && (flag_pic == 2 || microblaze_tls_symbol_p (p0) |
| 50 | || !SMALL_INT (p1))))) | 66 | || !SMALL_INT (p1))))) |
| 51 | { | 67 | { |
| @@ -60,7 +76,7 @@ index 71640e5..f740f5c 100644 | |||
| 60 | return true; | 76 | return true; |
| 61 | } | 77 | } |
| 62 | } | 78 | } |
| 63 | @@ -3775,7 +3775,7 @@ microblaze_expand_conditional_branch (machine_mode mode, rtx operands[]) | 79 | @@ -3767,7 +3767,7 @@ microblaze_expand_conditional_branch (machine_mode mode, rtx operands[]) |
| 64 | rtx cmp_op0 = operands[1]; | 80 | rtx cmp_op0 = operands[1]; |
| 65 | rtx cmp_op1 = operands[2]; | 81 | rtx cmp_op1 = operands[2]; |
| 66 | rtx label1 = operands[3]; | 82 | rtx label1 = operands[3]; |
| @@ -69,7 +85,7 @@ index 71640e5..f740f5c 100644 | |||
| 69 | rtx condition; | 85 | rtx condition; |
| 70 | 86 | ||
| 71 | gcc_assert ((GET_CODE (cmp_op0) == REG) || (GET_CODE (cmp_op0) == SUBREG)); | 87 | gcc_assert ((GET_CODE (cmp_op0) == REG) || (GET_CODE (cmp_op0) == SUBREG)); |
| 72 | @@ -3784,23 +3784,36 @@ microblaze_expand_conditional_branch (machine_mode mode, rtx operands[]) | 88 | @@ -3776,23 +3776,36 @@ microblaze_expand_conditional_branch (machine_mode mode, rtx operands[]) |
| 73 | if (cmp_op1 == const0_rtx) | 89 | if (cmp_op1 == const0_rtx) |
| 74 | { | 90 | { |
| 75 | comp_reg = cmp_op0; | 91 | comp_reg = cmp_op0; |
| @@ -112,7 +128,7 @@ index 71640e5..f740f5c 100644 | |||
| 112 | } | 128 | } |
| 113 | } | 129 | } |
| 114 | 130 | ||
| 115 | @@ -3811,7 +3824,7 @@ microblaze_expand_conditional_branch_reg (machine_mode mode, rtx operands[]) | 131 | @@ -3803,7 +3816,7 @@ microblaze_expand_conditional_branch_reg (machine_mode mode, rtx operands[]) |
| 116 | rtx cmp_op0 = operands[1]; | 132 | rtx cmp_op0 = operands[1]; |
| 117 | rtx cmp_op1 = operands[2]; | 133 | rtx cmp_op1 = operands[2]; |
| 118 | rtx label1 = operands[3]; | 134 | rtx label1 = operands[3]; |
| @@ -121,7 +137,7 @@ index 71640e5..f740f5c 100644 | |||
| 121 | rtx condition; | 137 | rtx condition; |
| 122 | 138 | ||
| 123 | gcc_assert ((GET_CODE (cmp_op0) == REG) | 139 | gcc_assert ((GET_CODE (cmp_op0) == REG) |
| 124 | @@ -3822,30 +3835,63 @@ microblaze_expand_conditional_branch_reg (machine_mode mode, rtx operands[]) | 140 | @@ -3814,30 +3827,63 @@ microblaze_expand_conditional_branch_reg (machine_mode mode, rtx operands[]) |
| 125 | { | 141 | { |
| 126 | comp_reg = cmp_op0; | 142 | comp_reg = cmp_op0; |
| 127 | condition = gen_rtx_fmt_ee (signed_condition (code), | 143 | condition = gen_rtx_fmt_ee (signed_condition (code), |
| @@ -197,7 +213,7 @@ index 71640e5..f740f5c 100644 | |||
| 197 | } | 213 | } |
| 198 | } | 214 | } |
| 199 | 215 | ||
| 200 | @@ -3862,6 +3908,19 @@ microblaze_expand_conditional_branch_sf (rtx operands[]) | 216 | @@ -3854,6 +3900,19 @@ microblaze_expand_conditional_branch_sf (rtx operands[]) |
| 201 | emit_jump_insn (gen_condjump (condition, operands[3])); | 217 | emit_jump_insn (gen_condjump (condition, operands[3])); |
| 202 | } | 218 | } |
| 203 | 219 | ||
| @@ -218,7 +234,7 @@ index 71640e5..f740f5c 100644 | |||
| 218 | 234 | ||
| 219 | static bool | 235 | static bool |
| 220 | diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h | 236 | diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h |
| 221 | index 1d05e6e..2ca44f5 100644 | 237 | index b5b7b22cec9..4931895e650 100644 |
| 222 | --- a/gcc/config/microblaze/microblaze.h | 238 | --- a/gcc/config/microblaze/microblaze.h |
| 223 | +++ b/gcc/config/microblaze/microblaze.h | 239 | +++ b/gcc/config/microblaze/microblaze.h |
| 224 | @@ -102,6 +102,7 @@ extern enum pipeline_type microblaze_pipe; | 240 | @@ -102,6 +102,7 @@ extern enum pipeline_type microblaze_pipe; |
| @@ -247,7 +263,7 @@ index 1d05e6e..2ca44f5 100644 | |||
| 247 | #define FLOAT_TYPE_SIZE 32 | 263 | #define FLOAT_TYPE_SIZE 32 |
| 248 | #define DOUBLE_TYPE_SIZE 64 | 264 | #define DOUBLE_TYPE_SIZE 64 |
| 249 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md | 265 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md |
| 250 | index eb01221..dbb592e 100644 | 266 | index a527da70f8a..bcf2b9244f8 100644 |
| 251 | --- a/gcc/config/microblaze/microblaze.md | 267 | --- a/gcc/config/microblaze/microblaze.md |
| 252 | +++ b/gcc/config/microblaze/microblaze.md | 268 | +++ b/gcc/config/microblaze/microblaze.md |
| 253 | @@ -497,7 +497,6 @@ | 269 | @@ -497,7 +497,6 @@ |
| @@ -440,15 +456,39 @@ index eb01221..dbb592e 100644 | |||
| 440 | ;; Those for integer source operand are ordered | 456 | ;; Those for integer source operand are ordered |
| 441 | ;; widest source type first. | 457 | ;; widest source type first. |
| 442 | 458 | ||
| 443 | @@ -1011,7 +1122,6 @@ | 459 | @@ -1011,6 +1122,31 @@ |
| 444 | ) | 460 | ) |
| 445 | 461 | ||
| 446 | 462 | ||
| 447 | - | 463 | +(define_insn "*movdi_internal_64" |
| 464 | + [(set (match_operand:DI 0 "nonimmediate_operand" "=d,d,d,d,d,R,o") | ||
| 465 | + (match_operand:DI 1 "general_operand" " d,K,J,R,o,d,d"))] | ||
| 466 | + "TARGET_MB_64 && (INTVAL(operands[1]) < 0x7fffffffff) && (INTVAL(operands[1]) > 0xffffff8000000000)" | ||
| 467 | + { | ||
| 468 | + switch (which_alternative) | ||
| 469 | + { | ||
| 470 | + case 0: | ||
| 471 | + return "addlk\t%0,%1"; | ||
| 472 | + case 1: | ||
| 473 | + return "addlik\t%0,r0,%1"; | ||
| 474 | + case 2: | ||
| 475 | + return "addlk\t%0,r0,r0"; | ||
| 476 | + case 3: | ||
| 477 | + case 4: | ||
| 478 | + return "lli\t%0,%1"; | ||
| 479 | + case 5: | ||
| 480 | + case 6: | ||
| 481 | + return "sli\t%1,%0"; | ||
| 482 | + } | ||
| 483 | + return "unreachable"; | ||
| 484 | + } | ||
| 485 | + [(set_attr "type" "no_delay_move,no_delay_arith,no_delay_arith,no_delay_load,no_delay_load,no_delay_store,no_delay_store") | ||
| 486 | + (set_attr "mode" "DI") | ||
| 487 | + (set_attr "length" "8,8,8,8,12,8,12")]) | ||
| 488 | |||
| 448 | (define_insn "*movdi_internal" | 489 | (define_insn "*movdi_internal" |
| 449 | [(set (match_operand:DI 0 "nonimmediate_operand" "=d,d,d,d,d,R,o") | 490 | [(set (match_operand:DI 0 "nonimmediate_operand" "=d,d,d,d,d,R,o") |
| 450 | (match_operand:DI 1 "general_operand" " d,i,J,R,o,d,d"))] | 491 | @@ -1423,6 +1559,36 @@ |
| 451 | @@ -1423,6 +1533,36 @@ | ||
| 452 | (set_attr "length" "4,4")] | 492 | (set_attr "length" "4,4")] |
| 453 | ) | 493 | ) |
| 454 | 494 | ||
| @@ -485,7 +525,7 @@ index eb01221..dbb592e 100644 | |||
| 485 | ;; The following patterns apply when there is no barrel shifter present | 525 | ;; The following patterns apply when there is no barrel shifter present |
| 486 | 526 | ||
| 487 | (define_insn "*ashlsi3_with_mul_delay" | 527 | (define_insn "*ashlsi3_with_mul_delay" |
| 488 | @@ -1548,6 +1688,36 @@ | 528 | @@ -1548,6 +1714,36 @@ |
| 489 | ;;---------------------------------------------------------------- | 529 | ;;---------------------------------------------------------------- |
| 490 | ;; 32-bit right shifts | 530 | ;; 32-bit right shifts |
| 491 | ;;---------------------------------------------------------------- | 531 | ;;---------------------------------------------------------------- |
| @@ -522,7 +562,7 @@ index eb01221..dbb592e 100644 | |||
| 522 | (define_expand "ashrsi3" | 562 | (define_expand "ashrsi3" |
| 523 | [(set (match_operand:SI 0 "register_operand" "=&d") | 563 | [(set (match_operand:SI 0 "register_operand" "=&d") |
| 524 | (ashiftrt:SI (match_operand:SI 1 "register_operand" "d") | 564 | (ashiftrt:SI (match_operand:SI 1 "register_operand" "d") |
| 525 | @@ -1657,6 +1827,36 @@ | 565 | @@ -1657,6 +1853,36 @@ |
| 526 | ;;---------------------------------------------------------------- | 566 | ;;---------------------------------------------------------------- |
| 527 | ;; 32-bit right shifts (logical) | 567 | ;; 32-bit right shifts (logical) |
| 528 | ;;---------------------------------------------------------------- | 568 | ;;---------------------------------------------------------------- |
| @@ -559,7 +599,7 @@ index eb01221..dbb592e 100644 | |||
| 559 | 599 | ||
| 560 | (define_expand "lshrsi3" | 600 | (define_expand "lshrsi3" |
| 561 | [(set (match_operand:SI 0 "register_operand" "=&d") | 601 | [(set (match_operand:SI 0 "register_operand" "=&d") |
| 562 | @@ -1803,6 +2003,8 @@ | 602 | @@ -1803,6 +2029,8 @@ |
| 563 | (set_attr "length" "4")] | 603 | (set_attr "length" "4")] |
| 564 | ) | 604 | ) |
| 565 | 605 | ||
| @@ -568,7 +608,7 @@ index eb01221..dbb592e 100644 | |||
| 568 | ;;---------------------------------------------------------------- | 608 | ;;---------------------------------------------------------------- |
| 569 | ;; Setting a register from an floating point comparison. | 609 | ;; Setting a register from an floating point comparison. |
| 570 | ;;---------------------------------------------------------------- | 610 | ;;---------------------------------------------------------------- |
| 571 | @@ -1818,6 +2020,18 @@ | 611 | @@ -1818,6 +2046,18 @@ |
| 572 | (set_attr "length" "4")] | 612 | (set_attr "length" "4")] |
| 573 | ) | 613 | ) |
| 574 | 614 | ||
| @@ -587,7 +627,7 @@ index eb01221..dbb592e 100644 | |||
| 587 | ;;---------------------------------------------------------------- | 627 | ;;---------------------------------------------------------------- |
| 588 | ;; Conditional branches | 628 | ;; Conditional branches |
| 589 | ;;---------------------------------------------------------------- | 629 | ;;---------------------------------------------------------------- |
| 590 | @@ -1930,6 +2144,115 @@ | 630 | @@ -1930,6 +2170,115 @@ |
| 591 | (set_attr "length" "12")] | 631 | (set_attr "length" "12")] |
| 592 | ) | 632 | ) |
| 593 | 633 | ||
| @@ -703,7 +743,7 @@ index eb01221..dbb592e 100644 | |||
| 703 | ;;---------------------------------------------------------------- | 743 | ;;---------------------------------------------------------------- |
| 704 | ;; Unconditional branches | 744 | ;; Unconditional branches |
| 705 | ;;---------------------------------------------------------------- | 745 | ;;---------------------------------------------------------------- |
| 706 | @@ -2478,17 +2801,33 @@ | 746 | @@ -2478,17 +2827,33 @@ |
| 707 | DONE; | 747 | DONE; |
| 708 | }") | 748 | }") |
| 709 | 749 | ||
| @@ -742,7 +782,7 @@ index eb01221..dbb592e 100644 | |||
| 742 | [(set (match_operand:SI 0 "register_operand" "=r") | 782 | [(set (match_operand:SI 0 "register_operand" "=r") |
| 743 | (zero_extract:SI (match_operand:SI 1 "register_operand" "r") | 783 | (zero_extract:SI (match_operand:SI 1 "register_operand" "r") |
| 744 | (match_operand:SI 2 "immediate_operand" "I") | 784 | (match_operand:SI 2 "immediate_operand" "I") |
| 745 | @@ -2505,8 +2844,21 @@ | 785 | @@ -2505,8 +2870,21 @@ |
| 746 | (match_operand:SI 2 "immediate_operand" "I")) | 786 | (match_operand:SI 2 "immediate_operand" "I")) |
| 747 | (match_operand:SI 3 "register_operand" "r"))] | 787 | (match_operand:SI 3 "register_operand" "r"))] |
| 748 | "TARGET_HAS_BITFIELD" | 788 | "TARGET_HAS_BITFIELD" |
| @@ -767,7 +807,7 @@ index eb01221..dbb592e 100644 | |||
| 767 | (define_insn "insv_32" | 807 | (define_insn "insv_32" |
| 768 | [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+r") | 808 | [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+r") |
| 769 | diff --git a/gcc/config/microblaze/microblaze.opt b/gcc/config/microblaze/microblaze.opt | 809 | diff --git a/gcc/config/microblaze/microblaze.opt b/gcc/config/microblaze/microblaze.opt |
| 770 | index d23f376..f316e27 100644 | 810 | index a29c6f8df90..bbe48b06da6 100644 |
| 771 | --- a/gcc/config/microblaze/microblaze.opt | 811 | --- a/gcc/config/microblaze/microblaze.opt |
| 772 | +++ b/gcc/config/microblaze/microblaze.opt | 812 | +++ b/gcc/config/microblaze/microblaze.opt |
| 773 | @@ -136,4 +136,9 @@ Target | 813 | @@ -136,4 +136,9 @@ Target |
| @@ -782,7 +822,7 @@ index d23f376..f316e27 100644 | |||
| 782 | +MicroBlaze 64-bit mode. | 822 | +MicroBlaze 64-bit mode. |
| 783 | + | 823 | + |
| 784 | diff --git a/gcc/config/microblaze/t-microblaze b/gcc/config/microblaze/t-microblaze | 824 | diff --git a/gcc/config/microblaze/t-microblaze b/gcc/config/microblaze/t-microblaze |
| 785 | index 41fa9a9..e9a1921 100644 | 825 | index 41fa9a92081..7671f63c5b5 100644 |
| 786 | --- a/gcc/config/microblaze/t-microblaze | 826 | --- a/gcc/config/microblaze/t-microblaze |
| 787 | +++ b/gcc/config/microblaze/t-microblaze | 827 | +++ b/gcc/config/microblaze/t-microblaze |
| 788 | @@ -1,8 +1,11 @@ | 828 | @@ -1,8 +1,11 @@ |
| @@ -794,11 +834,11 @@ index 41fa9a9..e9a1921 100644 | |||
| 794 | MULTILIB_EXCEPTIONS += *mxl-barrel-shift/mxl-multiply-high/mlittle-endian | 834 | MULTILIB_EXCEPTIONS += *mxl-barrel-shift/mxl-multiply-high/mlittle-endian |
| 795 | +MULTILIB_EXCEPTIONS += *mxl-barrel-shift/mxl-multiply-high/m64 | 835 | +MULTILIB_EXCEPTIONS += *mxl-barrel-shift/mxl-multiply-high/m64 |
| 796 | MULTILIB_EXCEPTIONS += mxl-multiply-high/mlittle-endian | 836 | MULTILIB_EXCEPTIONS += mxl-multiply-high/mlittle-endian |
| 797 | +MULTILIB_EXCEPTIONS += mxl-multiply-high/m64 | 837 | +#MULTILIB_EXCEPTIONS += mxl-multiply-high/m64 |
| 798 | +MULTILIB_EXCEPTIONS += *mxl-multiply-high/mlittle-endian/m64 | 838 | +#MULTILIB_EXCEPTIONS += *mxl-multiply-high/mlittle-endian/m64 |
| 799 | 839 | ||
| 800 | # Extra files | 840 | # Extra files |
| 801 | microblaze-c.o: $(srcdir)/config/microblaze/microblaze-c.c \ | 841 | microblaze-c.o: $(srcdir)/config/microblaze/microblaze-c.c \ |
| 802 | -- | 842 | -- |
| 803 | 2.7.4 | 843 | 2.17.1 |
| 804 | 844 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0034-Patch-microblaze-Macros-used-in-Xilinx-internal-patc.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0034-Patch-microblaze-Macros-used-in-Xilinx-internal-patc.patch deleted file mode 100644 index 04326205..00000000 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0034-Patch-microblaze-Macros-used-in-Xilinx-internal-patc.patch +++ /dev/null | |||
| @@ -1,32 +0,0 @@ | |||
| 1 | From 132b913b721f66c5db17f62dd5559bbca11bb875 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | ||
| 3 | Date: Wed, 18 Jan 2017 20:57:10 +0530 | ||
| 4 | Subject: [PATCH 34/63] [Patch, microblaze]: Macros used in Xilinx internal | ||
| 5 | patches has been removed in gcc 6.2 version so modified the code accordingly. | ||
| 6 | |||
| 7 | --- | ||
| 8 | gcc/config/microblaze/microblaze.c | 8 +++----- | ||
| 9 | 1 file changed, 3 insertions(+), 5 deletions(-) | ||
| 10 | |||
| 11 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c | ||
| 12 | index a37f08eea..71640e5 100644 | ||
| 13 | --- a/gcc/config/microblaze/microblaze.c | ||
| 14 | +++ b/gcc/config/microblaze/microblaze.c | ||
| 15 | @@ -2597,11 +2597,9 @@ print_operand (FILE * file, rtx op, int letter) | ||
| 16 | REAL_VALUE_TO_TARGET_DOUBLE (*CONST_DOUBLE_REAL_VALUE (op), val); | ||
| 17 | else | ||
| 18 | { | ||
| 19 | - REAL_VALUE_TYPE rv; | ||
| 20 | - REAL_VALUE_FROM_CONST_DOUBLE (rv, op); | ||
| 21 | - REAL_VALUE_TO_TARGET_DOUBLE (rv, l); | ||
| 22 | - val[1] = l[WORDS_BIG_ENDIAN == 0]; | ||
| 23 | - val[0] = l[WORDS_BIG_ENDIAN != 0]; | ||
| 24 | + REAL_VALUE_TO_TARGET_DOUBLE (*CONST_DOUBLE_REAL_VALUE (op), l); | ||
| 25 | + val[1] = l[WORDS_BIG_ENDIAN == 0]; | ||
| 26 | + val[0] = l[WORDS_BIG_ENDIAN != 0]; | ||
| 27 | } | ||
| 28 | } | ||
| 29 | else if (code == CONST_INT) | ||
| 30 | -- | ||
| 31 | 2.7.4 | ||
| 32 | |||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0041-Intial-commit-for-64bit-MB-sources.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0035-Intial-commit-for-64bit-MB-sources.patch index b022eb77..e7872d54 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0041-Intial-commit-for-64bit-MB-sources.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0035-Intial-commit-for-64bit-MB-sources.patch | |||
| @@ -1,25 +1,25 @@ | |||
| 1 | From 7c68b1c9771f09f7cc53410248e8432c562d24bf Mon Sep 17 00:00:00 2001 | 1 | From 8660e76d664ee4b42a83a4c15344b072d3c879df Mon Sep 17 00:00:00 2001 |
| 2 | From: Nagaraju Mekala <nmekala@xilix.com> | 2 | From: Nagaraju Mekala <nmekala@xilix.com> |
| 3 | Date: Fri, 27 Jul 2018 15:23:41 +0530 | 3 | Date: Fri, 27 Jul 2018 15:23:41 +0530 |
| 4 | Subject: [PATCH 41/63] Intial commit for 64bit-MB sources. Need to cleanup the | 4 | Subject: [PATCH 35/58] Intial commit for 64bit-MB sources. |
| 5 | code later. | ||
| 6 | 5 | ||
| 6 | Need to cleanup the code later. | ||
| 7 | --- | 7 | --- |
| 8 | gcc/config/microblaze/constraints.md | 2 +- | 8 | gcc/config/microblaze/constraints.md | 2 +- |
| 9 | gcc/config/microblaze/microblaze-c.c | 6 + | 9 | gcc/config/microblaze/microblaze-c.c | 6 + |
| 10 | gcc/config/microblaze/microblaze.c | 218 ++++++++---- | 10 | gcc/config/microblaze/microblaze.c | 218 ++++++--- |
| 11 | gcc/config/microblaze/microblaze.h | 63 ++-- | 11 | gcc/config/microblaze/microblaze.h | 63 ++- |
| 12 | gcc/config/microblaze/microblaze.md | 606 ++++++++++++++++++++++++-------- | 12 | gcc/config/microblaze/microblaze.md | 606 ++++++++++++++++++------ |
| 13 | gcc/config/microblaze/t-microblaze | 7 +- | 13 | gcc/config/microblaze/t-microblaze | 7 +- |
| 14 | libgcc/config/microblaze/crti.S | 4 +- | 14 | libgcc/config/microblaze/crti.S | 4 +- |
| 15 | libgcc/config/microblaze/crtn.S | 4 +- | 15 | libgcc/config/microblaze/crtn.S | 4 +- |
| 16 | libgcc/config/microblaze/divdi3.S | 98 ++++++ | 16 | libgcc/config/microblaze/divdi3.S | 98 ++++ |
| 17 | libgcc/config/microblaze/divdi3_table.c | 62 ++++ | 17 | libgcc/config/microblaze/divdi3_table.c | 62 +++ |
| 18 | libgcc/config/microblaze/moddi3.S | 97 +++++ | 18 | libgcc/config/microblaze/moddi3.S | 97 ++++ |
| 19 | libgcc/config/microblaze/muldi3.S | 73 ++++ | 19 | libgcc/config/microblaze/muldi3.S | 73 +++ |
| 20 | libgcc/config/microblaze/t-microblaze | 11 +- | 20 | libgcc/config/microblaze/t-microblaze | 11 +- |
| 21 | libgcc/config/microblaze/udivdi3.S | 107 ++++++ | 21 | libgcc/config/microblaze/udivdi3.S | 107 +++++ |
| 22 | libgcc/config/microblaze/umoddi3.S | 110 ++++++ | 22 | libgcc/config/microblaze/umoddi3.S | 110 +++++ |
| 23 | 15 files changed, 1232 insertions(+), 236 deletions(-) | 23 | 15 files changed, 1232 insertions(+), 236 deletions(-) |
| 24 | create mode 100644 libgcc/config/microblaze/divdi3.S | 24 | create mode 100644 libgcc/config/microblaze/divdi3.S |
| 25 | create mode 100644 libgcc/config/microblaze/divdi3_table.c | 25 | create mode 100644 libgcc/config/microblaze/divdi3_table.c |
| @@ -29,7 +29,7 @@ Subject: [PATCH 41/63] Intial commit for 64bit-MB sources. Need to cleanup the | |||
| 29 | create mode 100644 libgcc/config/microblaze/umoddi3.S | 29 | create mode 100644 libgcc/config/microblaze/umoddi3.S |
| 30 | 30 | ||
| 31 | diff --git a/gcc/config/microblaze/constraints.md b/gcc/config/microblaze/constraints.md | 31 | diff --git a/gcc/config/microblaze/constraints.md b/gcc/config/microblaze/constraints.md |
| 32 | index 69bcb24..2fce91e 100644 | 32 | index f636b035280..c2b0a21c53b 100644 |
| 33 | --- a/gcc/config/microblaze/constraints.md | 33 | --- a/gcc/config/microblaze/constraints.md |
| 34 | +++ b/gcc/config/microblaze/constraints.md | 34 | +++ b/gcc/config/microblaze/constraints.md |
| 35 | @@ -55,7 +55,7 @@ | 35 | @@ -55,7 +55,7 @@ |
| @@ -42,7 +42,7 @@ index 69bcb24..2fce91e 100644 | |||
| 42 | ;; Define floating point constraints | 42 | ;; Define floating point constraints |
| 43 | 43 | ||
| 44 | diff --git a/gcc/config/microblaze/microblaze-c.c b/gcc/config/microblaze/microblaze-c.c | 44 | diff --git a/gcc/config/microblaze/microblaze-c.c b/gcc/config/microblaze/microblaze-c.c |
| 45 | index cd21319..d2b0c76 100644 | 45 | index d8c88e510e5..dbcd21fc6ee 100644 |
| 46 | --- a/gcc/config/microblaze/microblaze-c.c | 46 | --- a/gcc/config/microblaze/microblaze-c.c |
| 47 | +++ b/gcc/config/microblaze/microblaze-c.c | 47 | +++ b/gcc/config/microblaze/microblaze-c.c |
| 48 | @@ -100,4 +100,10 @@ microblaze_cpp_define (cpp_reader *pfile) | 48 | @@ -100,4 +100,10 @@ microblaze_cpp_define (cpp_reader *pfile) |
| @@ -57,7 +57,7 @@ index cd21319..d2b0c76 100644 | |||
| 57 | + } | 57 | + } |
| 58 | } | 58 | } |
| 59 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c | 59 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c |
| 60 | index f740f5c..d5ff7af 100644 | 60 | index 8a3ccae558a..3ecda553fe6 100644 |
| 61 | --- a/gcc/config/microblaze/microblaze.c | 61 | --- a/gcc/config/microblaze/microblaze.c |
| 62 | +++ b/gcc/config/microblaze/microblaze.c | 62 | +++ b/gcc/config/microblaze/microblaze.c |
| 63 | @@ -383,10 +383,10 @@ simple_memory_operand (rtx op, machine_mode mode ATTRIBUTE_UNUSED) | 63 | @@ -383,10 +383,10 @@ simple_memory_operand (rtx op, machine_mode mode ATTRIBUTE_UNUSED) |
| @@ -118,7 +118,7 @@ index f740f5c..d5ff7af 100644 | |||
| 118 | 118 | ||
| 119 | /* Mop up any left-over bytes. */ | 119 | /* Mop up any left-over bytes. */ |
| 120 | if (leftover) | 120 | if (leftover) |
| 121 | @@ -1634,14 +1642,20 @@ microblaze_function_arg_advance (cumulative_args_t cum_v, | 121 | @@ -1633,14 +1641,20 @@ microblaze_function_arg_advance (cumulative_args_t cum_v, |
| 122 | break; | 122 | break; |
| 123 | 123 | ||
| 124 | case E_DFmode: | 124 | case E_DFmode: |
| @@ -141,7 +141,7 @@ index f740f5c..d5ff7af 100644 | |||
| 141 | break; | 141 | break; |
| 142 | 142 | ||
| 143 | case E_QImode: | 143 | case E_QImode: |
| 144 | @@ -2295,7 +2309,7 @@ compute_frame_size (HOST_WIDE_INT size) | 144 | @@ -2285,7 +2299,7 @@ compute_frame_size (HOST_WIDE_INT size) |
| 145 | 145 | ||
| 146 | if (regno != MB_ABI_SUB_RETURN_ADDR_REGNUM) | 146 | if (regno != MB_ABI_SUB_RETURN_ADDR_REGNUM) |
| 147 | /* Don't account for link register. It is accounted specially below. */ | 147 | /* Don't account for link register. It is accounted specially below. */ |
| @@ -150,7 +150,7 @@ index f740f5c..d5ff7af 100644 | |||
| 150 | 150 | ||
| 151 | mask |= (1L << (regno - GP_REG_FIRST)); | 151 | mask |= (1L << (regno - GP_REG_FIRST)); |
| 152 | } | 152 | } |
| 153 | @@ -2564,7 +2578,7 @@ print_operand (FILE * file, rtx op, int letter) | 153 | @@ -2554,7 +2568,7 @@ print_operand (FILE * file, rtx op, int letter) |
| 154 | 154 | ||
| 155 | if ((letter == 'M' && !WORDS_BIG_ENDIAN) | 155 | if ((letter == 'M' && !WORDS_BIG_ENDIAN) |
| 156 | || (letter == 'L' && WORDS_BIG_ENDIAN) || letter == 'D') | 156 | || (letter == 'L' && WORDS_BIG_ENDIAN) || letter == 'D') |
| @@ -159,7 +159,7 @@ index f740f5c..d5ff7af 100644 | |||
| 159 | 159 | ||
| 160 | fprintf (file, "%s", reg_names[regnum]); | 160 | fprintf (file, "%s", reg_names[regnum]); |
| 161 | } | 161 | } |
| 162 | @@ -2590,6 +2604,7 @@ print_operand (FILE * file, rtx op, int letter) | 162 | @@ -2580,6 +2594,7 @@ print_operand (FILE * file, rtx op, int letter) |
| 163 | else if (letter == 'h' || letter == 'j') | 163 | else if (letter == 'h' || letter == 'j') |
| 164 | { | 164 | { |
| 165 | long val[2]; | 165 | long val[2]; |
| @@ -167,7 +167,7 @@ index f740f5c..d5ff7af 100644 | |||
| 167 | long l[2]; | 167 | long l[2]; |
| 168 | if (code == CONST_DOUBLE) | 168 | if (code == CONST_DOUBLE) |
| 169 | { | 169 | { |
| 170 | @@ -2602,12 +2617,12 @@ print_operand (FILE * file, rtx op, int letter) | 170 | @@ -2592,12 +2607,12 @@ print_operand (FILE * file, rtx op, int letter) |
| 171 | val[0] = l[WORDS_BIG_ENDIAN != 0]; | 171 | val[0] = l[WORDS_BIG_ENDIAN != 0]; |
| 172 | } | 172 | } |
| 173 | } | 173 | } |
| @@ -184,7 +184,7 @@ index f740f5c..d5ff7af 100644 | |||
| 184 | } | 184 | } |
| 185 | else if (code == CONST_DOUBLE) | 185 | else if (code == CONST_DOUBLE) |
| 186 | { | 186 | { |
| 187 | @@ -2801,7 +2816,10 @@ microblaze_asm_constructor (rtx symbol ATTRIBUTE_UNUSED, int priority) | 187 | @@ -2791,7 +2806,10 @@ microblaze_asm_constructor (rtx symbol ATTRIBUTE_UNUSED, int priority) |
| 188 | 188 | ||
| 189 | switch_to_section (get_section (section, 0, NULL)); | 189 | switch_to_section (get_section (section, 0, NULL)); |
| 190 | assemble_align (POINTER_SIZE); | 190 | assemble_align (POINTER_SIZE); |
| @@ -196,7 +196,7 @@ index f740f5c..d5ff7af 100644 | |||
| 196 | output_addr_const (asm_out_file, symbol); | 196 | output_addr_const (asm_out_file, symbol); |
| 197 | fputs ("\n", asm_out_file); | 197 | fputs ("\n", asm_out_file); |
| 198 | } | 198 | } |
| 199 | @@ -2824,7 +2842,10 @@ microblaze_asm_destructor (rtx symbol, int priority) | 199 | @@ -2814,7 +2832,10 @@ microblaze_asm_destructor (rtx symbol, int priority) |
| 200 | 200 | ||
| 201 | switch_to_section (get_section (section, 0, NULL)); | 201 | switch_to_section (get_section (section, 0, NULL)); |
| 202 | assemble_align (POINTER_SIZE); | 202 | assemble_align (POINTER_SIZE); |
| @@ -208,7 +208,7 @@ index f740f5c..d5ff7af 100644 | |||
| 208 | output_addr_const (asm_out_file, symbol); | 208 | output_addr_const (asm_out_file, symbol); |
| 209 | fputs ("\n", asm_out_file); | 209 | fputs ("\n", asm_out_file); |
| 210 | } | 210 | } |
| 211 | @@ -2890,7 +2911,7 @@ save_restore_insns (int prologue) | 211 | @@ -2880,7 +2901,7 @@ save_restore_insns (int prologue) |
| 212 | /* For interrupt_handlers, need to save/restore the MSR. */ | 212 | /* For interrupt_handlers, need to save/restore the MSR. */ |
| 213 | if (microblaze_is_interrupt_variant ()) | 213 | if (microblaze_is_interrupt_variant ()) |
| 214 | { | 214 | { |
| @@ -217,7 +217,7 @@ index f740f5c..d5ff7af 100644 | |||
| 217 | gen_rtx_PLUS (Pmode, base_reg_rtx, | 217 | gen_rtx_PLUS (Pmode, base_reg_rtx, |
| 218 | GEN_INT (current_frame_info. | 218 | GEN_INT (current_frame_info. |
| 219 | gp_offset - | 219 | gp_offset - |
| 220 | @@ -2898,8 +2919,8 @@ save_restore_insns (int prologue) | 220 | @@ -2888,8 +2909,8 @@ save_restore_insns (int prologue) |
| 221 | 221 | ||
| 222 | /* Do not optimize in flow analysis. */ | 222 | /* Do not optimize in flow analysis. */ |
| 223 | MEM_VOLATILE_P (isr_mem_rtx) = 1; | 223 | MEM_VOLATILE_P (isr_mem_rtx) = 1; |
| @@ -228,7 +228,7 @@ index f740f5c..d5ff7af 100644 | |||
| 228 | } | 228 | } |
| 229 | 229 | ||
| 230 | if (microblaze_is_interrupt_variant () && !prologue) | 230 | if (microblaze_is_interrupt_variant () && !prologue) |
| 231 | @@ -2907,8 +2928,8 @@ save_restore_insns (int prologue) | 231 | @@ -2897,8 +2918,8 @@ save_restore_insns (int prologue) |
| 232 | emit_move_insn (isr_reg_rtx, isr_mem_rtx); | 232 | emit_move_insn (isr_reg_rtx, isr_mem_rtx); |
| 233 | emit_move_insn (isr_msr_rtx, isr_reg_rtx); | 233 | emit_move_insn (isr_msr_rtx, isr_reg_rtx); |
| 234 | /* Do not optimize in flow analysis. */ | 234 | /* Do not optimize in flow analysis. */ |
| @@ -239,7 +239,7 @@ index f740f5c..d5ff7af 100644 | |||
| 239 | } | 239 | } |
| 240 | 240 | ||
| 241 | for (regno = GP_REG_FIRST; regno <= GP_REG_LAST; regno++) | 241 | for (regno = GP_REG_FIRST; regno <= GP_REG_LAST; regno++) |
| 242 | @@ -2919,9 +2940,9 @@ save_restore_insns (int prologue) | 242 | @@ -2909,9 +2930,9 @@ save_restore_insns (int prologue) |
| 243 | /* Don't handle here. Already handled as the first register. */ | 243 | /* Don't handle here. Already handled as the first register. */ |
| 244 | continue; | 244 | continue; |
| 245 | 245 | ||
| @@ -251,7 +251,7 @@ index f740f5c..d5ff7af 100644 | |||
| 251 | if (microblaze_is_interrupt_variant () || save_volatiles) | 251 | if (microblaze_is_interrupt_variant () || save_volatiles) |
| 252 | /* Do not optimize in flow analysis. */ | 252 | /* Do not optimize in flow analysis. */ |
| 253 | MEM_VOLATILE_P (mem_rtx) = 1; | 253 | MEM_VOLATILE_P (mem_rtx) = 1; |
| 254 | @@ -2936,7 +2957,7 @@ save_restore_insns (int prologue) | 254 | @@ -2926,7 +2947,7 @@ save_restore_insns (int prologue) |
| 255 | insn = emit_move_insn (reg_rtx, mem_rtx); | 255 | insn = emit_move_insn (reg_rtx, mem_rtx); |
| 256 | } | 256 | } |
| 257 | 257 | ||
| @@ -260,7 +260,7 @@ index f740f5c..d5ff7af 100644 | |||
| 260 | } | 260 | } |
| 261 | } | 261 | } |
| 262 | 262 | ||
| 263 | @@ -2946,8 +2967,8 @@ save_restore_insns (int prologue) | 263 | @@ -2936,8 +2957,8 @@ save_restore_insns (int prologue) |
| 264 | emit_move_insn (isr_mem_rtx, isr_reg_rtx); | 264 | emit_move_insn (isr_mem_rtx, isr_reg_rtx); |
| 265 | 265 | ||
| 266 | /* Do not optimize in flow analysis. */ | 266 | /* Do not optimize in flow analysis. */ |
| @@ -271,7 +271,7 @@ index f740f5c..d5ff7af 100644 | |||
| 271 | } | 271 | } |
| 272 | 272 | ||
| 273 | /* Done saving and restoring */ | 273 | /* Done saving and restoring */ |
| 274 | @@ -3037,7 +3058,10 @@ microblaze_elf_asm_cdtor (rtx symbol, int priority, bool is_ctor) | 274 | @@ -3027,7 +3048,10 @@ microblaze_elf_asm_cdtor (rtx symbol, int priority, bool is_ctor) |
| 275 | 275 | ||
| 276 | switch_to_section (s); | 276 | switch_to_section (s); |
| 277 | assemble_align (POINTER_SIZE); | 277 | assemble_align (POINTER_SIZE); |
| @@ -283,7 +283,7 @@ index f740f5c..d5ff7af 100644 | |||
| 283 | output_addr_const (asm_out_file, symbol); | 283 | output_addr_const (asm_out_file, symbol); |
| 284 | fputs ("\n", asm_out_file); | 284 | fputs ("\n", asm_out_file); |
| 285 | } | 285 | } |
| 286 | @@ -3182,10 +3206,10 @@ microblaze_expand_prologue (void) | 286 | @@ -3171,10 +3195,10 @@ microblaze_expand_prologue (void) |
| 287 | { | 287 | { |
| 288 | if (offset != 0) | 288 | if (offset != 0) |
| 289 | ptr = gen_rtx_PLUS (Pmode, stack_pointer_rtx, GEN_INT (offset)); | 289 | ptr = gen_rtx_PLUS (Pmode, stack_pointer_rtx, GEN_INT (offset)); |
| @@ -297,7 +297,7 @@ index f740f5c..d5ff7af 100644 | |||
| 297 | } | 297 | } |
| 298 | } | 298 | } |
| 299 | 299 | ||
| 300 | @@ -3194,15 +3218,23 @@ microblaze_expand_prologue (void) | 300 | @@ -3183,15 +3207,23 @@ microblaze_expand_prologue (void) |
| 301 | rtx fsiz_rtx = GEN_INT (fsiz); | 301 | rtx fsiz_rtx = GEN_INT (fsiz); |
| 302 | 302 | ||
| 303 | rtx_insn *insn = NULL; | 303 | rtx_insn *insn = NULL; |
| @@ -323,7 +323,7 @@ index f740f5c..d5ff7af 100644 | |||
| 323 | gen_rtx_PLUS (Pmode, stack_pointer_rtx, | 323 | gen_rtx_PLUS (Pmode, stack_pointer_rtx, |
| 324 | const0_rtx)); | 324 | const0_rtx)); |
| 325 | 325 | ||
| 326 | @@ -3210,7 +3242,7 @@ microblaze_expand_prologue (void) | 326 | @@ -3199,7 +3231,7 @@ microblaze_expand_prologue (void) |
| 327 | /* Do not optimize in flow analysis. */ | 327 | /* Do not optimize in flow analysis. */ |
| 328 | MEM_VOLATILE_P (mem_rtx) = 1; | 328 | MEM_VOLATILE_P (mem_rtx) = 1; |
| 329 | 329 | ||
| @@ -332,7 +332,7 @@ index f740f5c..d5ff7af 100644 | |||
| 332 | insn = emit_move_insn (mem_rtx, reg_rtx); | 332 | insn = emit_move_insn (mem_rtx, reg_rtx); |
| 333 | RTX_FRAME_RELATED_P (insn) = 1; | 333 | RTX_FRAME_RELATED_P (insn) = 1; |
| 334 | } | 334 | } |
| 335 | @@ -3320,12 +3352,12 @@ microblaze_expand_epilogue (void) | 335 | @@ -3309,12 +3341,12 @@ microblaze_expand_epilogue (void) |
| 336 | if (!crtl->is_leaf || interrupt_handler) | 336 | if (!crtl->is_leaf || interrupt_handler) |
| 337 | { | 337 | { |
| 338 | mem_rtx = | 338 | mem_rtx = |
| @@ -347,7 +347,7 @@ index f740f5c..d5ff7af 100644 | |||
| 347 | emit_move_insn (reg_rtx, mem_rtx); | 347 | emit_move_insn (reg_rtx, mem_rtx); |
| 348 | } | 348 | } |
| 349 | 349 | ||
| 350 | @@ -3341,15 +3373,25 @@ microblaze_expand_epilogue (void) | 350 | @@ -3330,15 +3362,25 @@ microblaze_expand_epilogue (void) |
| 351 | /* _restore_ registers for epilogue. */ | 351 | /* _restore_ registers for epilogue. */ |
| 352 | save_restore_insns (0); | 352 | save_restore_insns (0); |
| 353 | emit_insn (gen_blockage ()); | 353 | emit_insn (gen_blockage ()); |
| @@ -377,7 +377,7 @@ index f740f5c..d5ff7af 100644 | |||
| 377 | emit_jump_insn (gen_return_internal (gen_rtx_REG (Pmode, GP_REG_FIRST + | 377 | emit_jump_insn (gen_return_internal (gen_rtx_REG (Pmode, GP_REG_FIRST + |
| 378 | MB_ABI_SUB_RETURN_ADDR_REGNUM))); | 378 | MB_ABI_SUB_RETURN_ADDR_REGNUM))); |
| 379 | } | 379 | } |
| 380 | @@ -3515,9 +3557,14 @@ microblaze_asm_output_mi_thunk (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED, | 380 | @@ -3505,9 +3547,14 @@ microblaze_asm_output_mi_thunk (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED, |
| 381 | else | 381 | else |
| 382 | this_rtx = gen_rtx_REG (Pmode, MB_ABI_FIRST_ARG_REGNUM); | 382 | this_rtx = gen_rtx_REG (Pmode, MB_ABI_FIRST_ARG_REGNUM); |
| 383 | 383 | ||
| @@ -394,7 +394,7 @@ index f740f5c..d5ff7af 100644 | |||
| 394 | 394 | ||
| 395 | /* Apply the offset from the vtable, if required. */ | 395 | /* Apply the offset from the vtable, if required. */ |
| 396 | if (vcall_offset) | 396 | if (vcall_offset) |
| 397 | @@ -3530,7 +3577,10 @@ microblaze_asm_output_mi_thunk (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED, | 397 | @@ -3520,7 +3567,10 @@ microblaze_asm_output_mi_thunk (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED, |
| 398 | rtx loc = gen_rtx_PLUS (Pmode, temp1, vcall_offset_rtx); | 398 | rtx loc = gen_rtx_PLUS (Pmode, temp1, vcall_offset_rtx); |
| 399 | emit_move_insn (temp1, gen_rtx_MEM (Pmode, loc)); | 399 | emit_move_insn (temp1, gen_rtx_MEM (Pmode, loc)); |
| 400 | 400 | ||
| @@ -406,7 +406,7 @@ index f740f5c..d5ff7af 100644 | |||
| 406 | } | 406 | } |
| 407 | 407 | ||
| 408 | /* Generate a tail call to the target function. */ | 408 | /* Generate a tail call to the target function. */ |
| 409 | @@ -3704,7 +3754,7 @@ microblaze_eh_return (rtx op0) | 409 | @@ -3696,7 +3746,7 @@ microblaze_eh_return (rtx op0) |
| 410 | /* Queue an .ident string in the queue of top-level asm statements. | 410 | /* Queue an .ident string in the queue of top-level asm statements. |
| 411 | If the string size is below the threshold, put it into .sdata2. | 411 | If the string size is below the threshold, put it into .sdata2. |
| 412 | If the front-end is done, we must be being called from toplev.c. | 412 | If the front-end is done, we must be being called from toplev.c. |
| @@ -415,7 +415,7 @@ index f740f5c..d5ff7af 100644 | |||
| 415 | void | 415 | void |
| 416 | microblaze_asm_output_ident (const char *string) | 416 | microblaze_asm_output_ident (const char *string) |
| 417 | { | 417 | { |
| 418 | @@ -3759,9 +3809,9 @@ microblaze_trampoline_init (rtx m_tramp, tree fndecl, rtx chain_value) | 418 | @@ -3751,9 +3801,9 @@ microblaze_trampoline_init (rtx m_tramp, tree fndecl, rtx chain_value) |
| 419 | emit_block_move (m_tramp, assemble_trampoline_template (), | 419 | emit_block_move (m_tramp, assemble_trampoline_template (), |
| 420 | GEN_INT (6*UNITS_PER_WORD), BLOCK_OP_NORMAL); | 420 | GEN_INT (6*UNITS_PER_WORD), BLOCK_OP_NORMAL); |
| 421 | 421 | ||
| @@ -427,7 +427,7 @@ index f740f5c..d5ff7af 100644 | |||
| 427 | emit_move_insn (mem, fnaddr); | 427 | emit_move_insn (mem, fnaddr); |
| 428 | } | 428 | } |
| 429 | 429 | ||
| 430 | @@ -3785,7 +3835,7 @@ microblaze_expand_conditional_branch (machine_mode mode, rtx operands[]) | 430 | @@ -3777,7 +3827,7 @@ microblaze_expand_conditional_branch (machine_mode mode, rtx operands[]) |
| 431 | { | 431 | { |
| 432 | comp_reg = cmp_op0; | 432 | comp_reg = cmp_op0; |
| 433 | condition = gen_rtx_fmt_ee (signed_condition (code), mode, comp_reg, const0_rtx); | 433 | condition = gen_rtx_fmt_ee (signed_condition (code), mode, comp_reg, const0_rtx); |
| @@ -436,7 +436,7 @@ index f740f5c..d5ff7af 100644 | |||
| 436 | emit_jump_insn (gen_condjump (condition, label1)); | 436 | emit_jump_insn (gen_condjump (condition, label1)); |
| 437 | else | 437 | else |
| 438 | emit_jump_insn (gen_long_condjump (condition, label1)); | 438 | emit_jump_insn (gen_long_condjump (condition, label1)); |
| 439 | @@ -3904,7 +3954,7 @@ microblaze_expand_conditional_branch_sf (rtx operands[]) | 439 | @@ -3896,7 +3946,7 @@ microblaze_expand_conditional_branch_sf (rtx operands[]) |
| 440 | rtx comp_reg = gen_reg_rtx (SImode); | 440 | rtx comp_reg = gen_reg_rtx (SImode); |
| 441 | 441 | ||
| 442 | emit_insn (gen_cstoresf4 (comp_reg, operands[0], cmp_op0, cmp_op1)); | 442 | emit_insn (gen_cstoresf4 (comp_reg, operands[0], cmp_op0, cmp_op1)); |
| @@ -445,7 +445,7 @@ index f740f5c..d5ff7af 100644 | |||
| 445 | emit_jump_insn (gen_condjump (condition, operands[3])); | 445 | emit_jump_insn (gen_condjump (condition, operands[3])); |
| 446 | } | 446 | } |
| 447 | 447 | ||
| 448 | @@ -3914,10 +3964,10 @@ microblaze_expand_conditional_branch_df (rtx operands[]) | 448 | @@ -3906,10 +3956,10 @@ microblaze_expand_conditional_branch_df (rtx operands[]) |
| 449 | rtx condition; | 449 | rtx condition; |
| 450 | rtx cmp_op0 = XEXP (operands[0], 0); | 450 | rtx cmp_op0 = XEXP (operands[0], 0); |
| 451 | rtx cmp_op1 = XEXP (operands[0], 1); | 451 | rtx cmp_op1 = XEXP (operands[0], 1); |
| @@ -458,7 +458,7 @@ index f740f5c..d5ff7af 100644 | |||
| 458 | emit_jump_insn (gen_long_condjump (condition, operands[3])); | 458 | emit_jump_insn (gen_long_condjump (condition, operands[3])); |
| 459 | } | 459 | } |
| 460 | 460 | ||
| 461 | @@ -3938,8 +3988,8 @@ microblaze_expand_divide (rtx operands[]) | 461 | @@ -3930,8 +3980,8 @@ microblaze_expand_divide (rtx operands[]) |
| 462 | { | 462 | { |
| 463 | /* Table lookup software divides. Works for all (nr/dr) where (0 <= nr,dr <= 15). */ | 463 | /* Table lookup software divides. Works for all (nr/dr) where (0 <= nr,dr <= 15). */ |
| 464 | 464 | ||
| @@ -469,7 +469,7 @@ index f740f5c..d5ff7af 100644 | |||
| 469 | rtx regqi = gen_reg_rtx (QImode); | 469 | rtx regqi = gen_reg_rtx (QImode); |
| 470 | rtx_code_label *div_label = gen_label_rtx (); | 470 | rtx_code_label *div_label = gen_label_rtx (); |
| 471 | rtx_code_label *div_end_label = gen_label_rtx (); | 471 | rtx_code_label *div_end_label = gen_label_rtx (); |
| 472 | @@ -3947,17 +3997,31 @@ microblaze_expand_divide (rtx operands[]) | 472 | @@ -3939,17 +3989,31 @@ microblaze_expand_divide (rtx operands[]) |
| 473 | rtx mem_rtx; | 473 | rtx mem_rtx; |
| 474 | rtx ret; | 474 | rtx ret; |
| 475 | rtx_insn *jump, *cjump, *insn; | 475 | rtx_insn *jump, *cjump, *insn; |
| @@ -508,7 +508,7 @@ index f740f5c..d5ff7af 100644 | |||
| 508 | mem_rtx = gen_rtx_MEM (QImode, | 508 | mem_rtx = gen_rtx_MEM (QImode, |
| 509 | gen_rtx_PLUS (QImode, regt1, div_table_rtx)); | 509 | gen_rtx_PLUS (QImode, regt1, div_table_rtx)); |
| 510 | 510 | ||
| 511 | @@ -4104,7 +4168,7 @@ insert_wic_for_ilb_runout (rtx_insn *first) | 511 | @@ -4096,7 +4160,7 @@ insert_wic_for_ilb_runout (rtx_insn *first) |
| 512 | { | 512 | { |
| 513 | insn = | 513 | insn = |
| 514 | emit_insn_before (gen_iprefetch | 514 | emit_insn_before (gen_iprefetch |
| @@ -517,7 +517,7 @@ index f740f5c..d5ff7af 100644 | |||
| 517 | before_4); | 517 | before_4); |
| 518 | recog_memoized (insn); | 518 | recog_memoized (insn); |
| 519 | INSN_LOCATION (insn) = INSN_LOCATION (before_4); | 519 | INSN_LOCATION (insn) = INSN_LOCATION (before_4); |
| 520 | @@ -4114,7 +4178,27 @@ insert_wic_for_ilb_runout (rtx_insn *first) | 520 | @@ -4106,7 +4170,27 @@ insert_wic_for_ilb_runout (rtx_insn *first) |
| 521 | } | 521 | } |
| 522 | } | 522 | } |
| 523 | } | 523 | } |
| @@ -546,7 +546,7 @@ index f740f5c..d5ff7af 100644 | |||
| 546 | /* Insert instruction prefetch instruction at the fall | 546 | /* Insert instruction prefetch instruction at the fall |
| 547 | through path of the function call. */ | 547 | through path of the function call. */ |
| 548 | 548 | ||
| 549 | @@ -4267,6 +4351,17 @@ microblaze_starting_frame_offset (void) | 549 | @@ -4259,6 +4343,17 @@ microblaze_starting_frame_offset (void) |
| 550 | #undef TARGET_LRA_P | 550 | #undef TARGET_LRA_P |
| 551 | #define TARGET_LRA_P hook_bool_void_false | 551 | #define TARGET_LRA_P hook_bool_void_false |
| 552 | 552 | ||
| @@ -564,7 +564,7 @@ index f740f5c..d5ff7af 100644 | |||
| 564 | #undef TARGET_FRAME_POINTER_REQUIRED | 564 | #undef TARGET_FRAME_POINTER_REQUIRED |
| 565 | #define TARGET_FRAME_POINTER_REQUIRED microblaze_frame_pointer_required | 565 | #define TARGET_FRAME_POINTER_REQUIRED microblaze_frame_pointer_required |
| 566 | 566 | ||
| 567 | @@ -4276,6 +4371,9 @@ microblaze_starting_frame_offset (void) | 567 | @@ -4268,6 +4363,9 @@ microblaze_starting_frame_offset (void) |
| 568 | #undef TARGET_TRAMPOLINE_INIT | 568 | #undef TARGET_TRAMPOLINE_INIT |
| 569 | #define TARGET_TRAMPOLINE_INIT microblaze_trampoline_init | 569 | #define TARGET_TRAMPOLINE_INIT microblaze_trampoline_init |
| 570 | 570 | ||
| @@ -575,7 +575,7 @@ index f740f5c..d5ff7af 100644 | |||
| 575 | #define TARGET_PROMOTE_FUNCTION_MODE default_promote_function_mode_always_promote | 575 | #define TARGET_PROMOTE_FUNCTION_MODE default_promote_function_mode_always_promote |
| 576 | 576 | ||
| 577 | diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h | 577 | diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h |
| 578 | index 2ca44f5..a23fd4e 100644 | 578 | index 4931895e650..1f6e2059545 100644 |
| 579 | --- a/gcc/config/microblaze/microblaze.h | 579 | --- a/gcc/config/microblaze/microblaze.h |
| 580 | +++ b/gcc/config/microblaze/microblaze.h | 580 | +++ b/gcc/config/microblaze/microblaze.h |
| 581 | @@ -173,7 +173,6 @@ extern enum pipeline_type microblaze_pipe; | 581 | @@ -173,7 +173,6 @@ extern enum pipeline_type microblaze_pipe; |
| @@ -744,7 +744,7 @@ index 2ca44f5..a23fd4e 100644 | |||
| 744 | /* Default to -G 8 */ | 744 | /* Default to -G 8 */ |
| 745 | #ifndef MICROBLAZE_DEFAULT_GVALUE | 745 | #ifndef MICROBLAZE_DEFAULT_GVALUE |
| 746 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md | 746 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md |
| 747 | index eb52957..77627a7 100644 | 747 | index bcf2b9244f8..bef750c026a 100644 |
| 748 | --- a/gcc/config/microblaze/microblaze.md | 748 | --- a/gcc/config/microblaze/microblaze.md |
| 749 | +++ b/gcc/config/microblaze/microblaze.md | 749 | +++ b/gcc/config/microblaze/microblaze.md |
| 750 | @@ -26,6 +26,7 @@ | 750 | @@ -26,6 +26,7 @@ |
| @@ -1797,7 +1797,7 @@ index eb52957..77627a7 100644 | |||
| 1797 | operands[2], operands[3])); | 1797 | operands[2], operands[3])); |
| 1798 | DONE; | 1798 | DONE; |
| 1799 | diff --git a/gcc/config/microblaze/t-microblaze b/gcc/config/microblaze/t-microblaze | 1799 | diff --git a/gcc/config/microblaze/t-microblaze b/gcc/config/microblaze/t-microblaze |
| 1800 | index 7671f63..9fc80b1 100644 | 1800 | index 7671f63c5b5..9fc80b142ce 100644 |
| 1801 | --- a/gcc/config/microblaze/t-microblaze | 1801 | --- a/gcc/config/microblaze/t-microblaze |
| 1802 | +++ b/gcc/config/microblaze/t-microblaze | 1802 | +++ b/gcc/config/microblaze/t-microblaze |
| 1803 | @@ -2,10 +2,11 @@ MULTILIB_OPTIONS = mxl-barrel-shift mno-xl-soft-mul mxl-multiply-high mlittle-en | 1803 | @@ -2,10 +2,11 @@ MULTILIB_OPTIONS = mxl-barrel-shift mno-xl-soft-mul mxl-multiply-high mlittle-en |
| @@ -1816,7 +1816,7 @@ index 7671f63..9fc80b1 100644 | |||
| 1816 | # Extra files | 1816 | # Extra files |
| 1817 | microblaze-c.o: $(srcdir)/config/microblaze/microblaze-c.c \ | 1817 | microblaze-c.o: $(srcdir)/config/microblaze/microblaze-c.c \ |
| 1818 | diff --git a/libgcc/config/microblaze/crti.S b/libgcc/config/microblaze/crti.S | 1818 | diff --git a/libgcc/config/microblaze/crti.S b/libgcc/config/microblaze/crti.S |
| 1819 | index ee380ee..1811327 100644 | 1819 | index d0146083db6..005825f1ec5 100644 |
| 1820 | --- a/libgcc/config/microblaze/crti.S | 1820 | --- a/libgcc/config/microblaze/crti.S |
| 1821 | +++ b/libgcc/config/microblaze/crti.S | 1821 | +++ b/libgcc/config/microblaze/crti.S |
| 1822 | @@ -40,7 +40,7 @@ | 1822 | @@ -40,7 +40,7 @@ |
| @@ -1836,7 +1836,7 @@ index ee380ee..1811327 100644 | |||
| 1836 | + addik r1, r1, -16 | 1836 | + addik r1, r1, -16 |
| 1837 | sw r15, r0, r1 | 1837 | sw r15, r0, r1 |
| 1838 | diff --git a/libgcc/config/microblaze/crtn.S b/libgcc/config/microblaze/crtn.S | 1838 | diff --git a/libgcc/config/microblaze/crtn.S b/libgcc/config/microblaze/crtn.S |
| 1839 | index 00d398a..60a4648 100644 | 1839 | index 2fff5ac04c7..5705eff9a4a 100644 |
| 1840 | --- a/libgcc/config/microblaze/crtn.S | 1840 | --- a/libgcc/config/microblaze/crtn.S |
| 1841 | +++ b/libgcc/config/microblaze/crtn.S | 1841 | +++ b/libgcc/config/microblaze/crtn.S |
| 1842 | @@ -33,9 +33,9 @@ | 1842 | @@ -33,9 +33,9 @@ |
| @@ -1853,7 +1853,7 @@ index 00d398a..60a4648 100644 | |||
| 1853 | + addik r1, r1, 16 | 1853 | + addik r1, r1, 16 |
| 1854 | diff --git a/libgcc/config/microblaze/divdi3.S b/libgcc/config/microblaze/divdi3.S | 1854 | diff --git a/libgcc/config/microblaze/divdi3.S b/libgcc/config/microblaze/divdi3.S |
| 1855 | new file mode 100644 | 1855 | new file mode 100644 |
| 1856 | index 0000000..d37bf51 | 1856 | index 00000000000..d37bf5165c6 |
| 1857 | --- /dev/null | 1857 | --- /dev/null |
| 1858 | +++ b/libgcc/config/microblaze/divdi3.S | 1858 | +++ b/libgcc/config/microblaze/divdi3.S |
| 1859 | @@ -0,0 +1,98 @@ | 1859 | @@ -0,0 +1,98 @@ |
| @@ -1957,7 +1957,7 @@ index 0000000..d37bf51 | |||
| 1957 | +#endif | 1957 | +#endif |
| 1958 | diff --git a/libgcc/config/microblaze/divdi3_table.c b/libgcc/config/microblaze/divdi3_table.c | 1958 | diff --git a/libgcc/config/microblaze/divdi3_table.c b/libgcc/config/microblaze/divdi3_table.c |
| 1959 | new file mode 100644 | 1959 | new file mode 100644 |
| 1960 | index 0000000..8096259 | 1960 | index 00000000000..80962597ea5 |
| 1961 | --- /dev/null | 1961 | --- /dev/null |
| 1962 | +++ b/libgcc/config/microblaze/divdi3_table.c | 1962 | +++ b/libgcc/config/microblaze/divdi3_table.c |
| 1963 | @@ -0,0 +1,62 @@ | 1963 | @@ -0,0 +1,62 @@ |
| @@ -2025,7 +2025,7 @@ index 0000000..8096259 | |||
| 2025 | + | 2025 | + |
| 2026 | diff --git a/libgcc/config/microblaze/moddi3.S b/libgcc/config/microblaze/moddi3.S | 2026 | diff --git a/libgcc/config/microblaze/moddi3.S b/libgcc/config/microblaze/moddi3.S |
| 2027 | new file mode 100644 | 2027 | new file mode 100644 |
| 2028 | index 0000000..5d3f7c0 | 2028 | index 00000000000..5d3f7c03fc8 |
| 2029 | --- /dev/null | 2029 | --- /dev/null |
| 2030 | +++ b/libgcc/config/microblaze/moddi3.S | 2030 | +++ b/libgcc/config/microblaze/moddi3.S |
| 2031 | @@ -0,0 +1,97 @@ | 2031 | @@ -0,0 +1,97 @@ |
| @@ -2128,7 +2128,7 @@ index 0000000..5d3f7c0 | |||
| 2128 | +#endif | 2128 | +#endif |
| 2129 | diff --git a/libgcc/config/microblaze/muldi3.S b/libgcc/config/microblaze/muldi3.S | 2129 | diff --git a/libgcc/config/microblaze/muldi3.S b/libgcc/config/microblaze/muldi3.S |
| 2130 | new file mode 100644 | 2130 | new file mode 100644 |
| 2131 | index 0000000..5677841 | 2131 | index 00000000000..567784197d3 |
| 2132 | --- /dev/null | 2132 | --- /dev/null |
| 2133 | +++ b/libgcc/config/microblaze/muldi3.S | 2133 | +++ b/libgcc/config/microblaze/muldi3.S |
| 2134 | @@ -0,0 +1,73 @@ | 2134 | @@ -0,0 +1,73 @@ |
| @@ -2206,7 +2206,7 @@ index 0000000..5677841 | |||
| 2206 | + .size __muldi3, . - __muldi3 | 2206 | + .size __muldi3, . - __muldi3 |
| 2207 | +#endif | 2207 | +#endif |
| 2208 | diff --git a/libgcc/config/microblaze/t-microblaze b/libgcc/config/microblaze/t-microblaze | 2208 | diff --git a/libgcc/config/microblaze/t-microblaze b/libgcc/config/microblaze/t-microblaze |
| 2209 | index 8d954a4..35021b2 100644 | 2209 | index 8d954a49575..35021b24b7d 100644 |
| 2210 | --- a/libgcc/config/microblaze/t-microblaze | 2210 | --- a/libgcc/config/microblaze/t-microblaze |
| 2211 | +++ b/libgcc/config/microblaze/t-microblaze | 2211 | +++ b/libgcc/config/microblaze/t-microblaze |
| 2212 | @@ -1,11 +1,16 @@ | 2212 | @@ -1,11 +1,16 @@ |
| @@ -2231,7 +2231,7 @@ index 8d954a4..35021b2 100644 | |||
| 2231 | + $(srcdir)/config/microblaze/divsi3_table.c \ | 2231 | + $(srcdir)/config/microblaze/divsi3_table.c \ |
| 2232 | diff --git a/libgcc/config/microblaze/udivdi3.S b/libgcc/config/microblaze/udivdi3.S | 2232 | diff --git a/libgcc/config/microblaze/udivdi3.S b/libgcc/config/microblaze/udivdi3.S |
| 2233 | new file mode 100644 | 2233 | new file mode 100644 |
| 2234 | index 0000000..c210fbc | 2234 | index 00000000000..c210fbc7128 |
| 2235 | --- /dev/null | 2235 | --- /dev/null |
| 2236 | +++ b/libgcc/config/microblaze/udivdi3.S | 2236 | +++ b/libgcc/config/microblaze/udivdi3.S |
| 2237 | @@ -0,0 +1,107 @@ | 2237 | @@ -0,0 +1,107 @@ |
| @@ -2344,7 +2344,7 @@ index 0000000..c210fbc | |||
| 2344 | +#endif | 2344 | +#endif |
| 2345 | diff --git a/libgcc/config/microblaze/umoddi3.S b/libgcc/config/microblaze/umoddi3.S | 2345 | diff --git a/libgcc/config/microblaze/umoddi3.S b/libgcc/config/microblaze/umoddi3.S |
| 2346 | new file mode 100644 | 2346 | new file mode 100644 |
| 2347 | index 0000000..7f5cd23 | 2347 | index 00000000000..7f5cd23f9a1 |
| 2348 | --- /dev/null | 2348 | --- /dev/null |
| 2349 | +++ b/libgcc/config/microblaze/umoddi3.S | 2349 | +++ b/libgcc/config/microblaze/umoddi3.S |
| 2350 | @@ -0,0 +1,110 @@ | 2350 | @@ -0,0 +1,110 @@ |
| @@ -2459,5 +2459,5 @@ index 0000000..7f5cd23 | |||
| 2459 | + .size __umoddi3, . - __umoddi3 | 2459 | + .size __umoddi3, . - __umoddi3 |
| 2460 | +#endif | 2460 | +#endif |
| 2461 | -- | 2461 | -- |
| 2462 | 2.7.4 | 2462 | 2.17.1 |
| 2463 | 2463 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0036-Patch-Microblaze-reverting-the-cost-check-before-pro.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0036-Patch-Microblaze-reverting-the-cost-check-before-pro.patch deleted file mode 100644 index 7079789f..00000000 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0036-Patch-Microblaze-reverting-the-cost-check-before-pro.patch +++ /dev/null | |||
| @@ -1,49 +0,0 @@ | |||
| 1 | From ac30efb4a5f5b6d289fdd27b268c2095d60dcb42 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | ||
| 3 | Date: Thu, 2 Mar 2017 19:02:31 +0530 | ||
| 4 | Subject: [PATCH 36/63] [Patch,Microblaze]:reverting the cost check before | ||
| 5 | propagating constants. | ||
| 6 | |||
| 7 | --- | ||
| 8 | gcc/cprop.c | 4 ++++ | ||
| 9 | 1 file changed, 4 insertions(+) | ||
| 10 | |||
| 11 | diff --git a/gcc/cprop.c b/gcc/cprop.c | ||
| 12 | index 65c0130..42bcc81 100644 | ||
| 13 | --- a/gcc/cprop.c | ||
| 14 | +++ b/gcc/cprop.c | ||
| 15 | @@ -733,6 +733,7 @@ try_replace_reg (rtx from, rtx to, rtx_insn *insn) | ||
| 16 | int success = 0; | ||
| 17 | rtx set = single_set (insn); | ||
| 18 | |||
| 19 | +#if 0 | ||
| 20 | bool check_rtx_costs = true; | ||
| 21 | bool speed = optimize_bb_for_speed_p (BLOCK_FOR_INSN (insn)); | ||
| 22 | int old_cost = set ? set_rtx_cost (set, speed) : 0; | ||
| 23 | @@ -744,6 +745,7 @@ try_replace_reg (rtx from, rtx to, rtx_insn *insn) | ||
| 24 | && (GET_CODE (XEXP (note, 0)) == CONST | ||
| 25 | || CONSTANT_P (XEXP (note, 0))))) | ||
| 26 | check_rtx_costs = false; | ||
| 27 | +#endif | ||
| 28 | |||
| 29 | /* Usually we substitute easy stuff, so we won't copy everything. | ||
| 30 | We however need to take care to not duplicate non-trivial CONST | ||
| 31 | @@ -752,6 +754,7 @@ try_replace_reg (rtx from, rtx to, rtx_insn *insn) | ||
| 32 | |||
| 33 | validate_replace_src_group (from, to, insn); | ||
| 34 | |||
| 35 | +#if 0 | ||
| 36 | /* If TO is a constant, check the cost of the set after propagation | ||
| 37 | to the cost of the set before the propagation. If the cost is | ||
| 38 | higher, then do not replace FROM with TO. */ | ||
| 39 | @@ -764,6 +767,7 @@ try_replace_reg (rtx from, rtx to, rtx_insn *insn) | ||
| 40 | return false; | ||
| 41 | } | ||
| 42 | |||
| 43 | +#endif | ||
| 44 | |||
| 45 | if (num_changes_pending () && apply_change_group ()) | ||
| 46 | success = 1; | ||
| 47 | -- | ||
| 48 | 2.7.4 | ||
| 49 | |||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0042-re-arrangement-of-the-compare-branches.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0036-re-arrangement-of-the-compare-branches.patch index 3afb7629..63290129 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0042-re-arrangement-of-the-compare-branches.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0036-re-arrangement-of-the-compare-branches.patch | |||
| @@ -1,18 +1,18 @@ | |||
| 1 | From 31062878a2c1773a1fc94242ad29e6d03e4828b1 Mon Sep 17 00:00:00 2001 | 1 | From e259b63769bf3cc437a665059add98d9480d942c Mon Sep 17 00:00:00 2001 |
| 2 | From: Nagaraju Mekala <nmekala@xilix.com> | 2 | From: Nagaraju Mekala <nmekala@xilix.com> |
| 3 | Date: Fri, 3 Aug 2018 15:41:39 +0530 | 3 | Date: Fri, 3 Aug 2018 15:41:39 +0530 |
| 4 | Subject: [PATCH 42/63] re-arrangement of the compare branches | 4 | Subject: [PATCH 36/58] re-arrangement of the compare branches |
| 5 | 5 | ||
| 6 | --- | 6 | --- |
| 7 | gcc/config/microblaze/microblaze.c | 28 ++----- | 7 | gcc/config/microblaze/microblaze.c | 28 ++---- |
| 8 | gcc/config/microblaze/microblaze.md | 141 +++++++++++++++++------------------- | 8 | gcc/config/microblaze/microblaze.md | 141 +++++++++++++--------------- |
| 9 | 2 files changed, 73 insertions(+), 96 deletions(-) | 9 | 2 files changed, 73 insertions(+), 96 deletions(-) |
| 10 | 10 | ||
| 11 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c | 11 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c |
| 12 | index d5ff7af..dd46d93 100644 | 12 | index 3ecda553fe6..cba5d86225c 100644 |
| 13 | --- a/gcc/config/microblaze/microblaze.c | 13 | --- a/gcc/config/microblaze/microblaze.c |
| 14 | +++ b/gcc/config/microblaze/microblaze.c | 14 | +++ b/gcc/config/microblaze/microblaze.c |
| 15 | @@ -3835,11 +3835,7 @@ microblaze_expand_conditional_branch (machine_mode mode, rtx operands[]) | 15 | @@ -3827,11 +3827,7 @@ microblaze_expand_conditional_branch (machine_mode mode, rtx operands[]) |
| 16 | { | 16 | { |
| 17 | comp_reg = cmp_op0; | 17 | comp_reg = cmp_op0; |
| 18 | condition = gen_rtx_fmt_ee (signed_condition (code), mode, comp_reg, const0_rtx); | 18 | condition = gen_rtx_fmt_ee (signed_condition (code), mode, comp_reg, const0_rtx); |
| @@ -25,7 +25,7 @@ index d5ff7af..dd46d93 100644 | |||
| 25 | } | 25 | } |
| 26 | 26 | ||
| 27 | else if (code == EQ || code == NE) | 27 | else if (code == EQ || code == NE) |
| 28 | @@ -3850,10 +3846,7 @@ microblaze_expand_conditional_branch (machine_mode mode, rtx operands[]) | 28 | @@ -3842,10 +3838,7 @@ microblaze_expand_conditional_branch (machine_mode mode, rtx operands[]) |
| 29 | else | 29 | else |
| 30 | emit_insn (gen_xordi3 (comp_reg, cmp_op0, cmp_op1)); | 30 | emit_insn (gen_xordi3 (comp_reg, cmp_op0, cmp_op1)); |
| 31 | condition = gen_rtx_fmt_ee (signed_condition (code), mode, comp_reg, const0_rtx); | 31 | condition = gen_rtx_fmt_ee (signed_condition (code), mode, comp_reg, const0_rtx); |
| @@ -37,7 +37,7 @@ index d5ff7af..dd46d93 100644 | |||
| 37 | } | 37 | } |
| 38 | else | 38 | else |
| 39 | { | 39 | { |
| 40 | @@ -3886,10 +3879,7 @@ microblaze_expand_conditional_branch_reg (machine_mode mode, rtx operands[]) | 40 | @@ -3878,10 +3871,7 @@ microblaze_expand_conditional_branch_reg (machine_mode mode, rtx operands[]) |
| 41 | comp_reg = cmp_op0; | 41 | comp_reg = cmp_op0; |
| 42 | condition = gen_rtx_fmt_ee (signed_condition (code), | 42 | condition = gen_rtx_fmt_ee (signed_condition (code), |
| 43 | mode, comp_reg, const0_rtx); | 43 | mode, comp_reg, const0_rtx); |
| @@ -49,7 +49,7 @@ index d5ff7af..dd46d93 100644 | |||
| 49 | } | 49 | } |
| 50 | else if (code == EQ) | 50 | else if (code == EQ) |
| 51 | { | 51 | { |
| 52 | @@ -3904,10 +3894,7 @@ microblaze_expand_conditional_branch_reg (machine_mode mode, rtx operands[]) | 52 | @@ -3896,10 +3886,7 @@ microblaze_expand_conditional_branch_reg (machine_mode mode, rtx operands[]) |
| 53 | cmp_op1)); | 53 | cmp_op1)); |
| 54 | } | 54 | } |
| 55 | condition = gen_rtx_EQ (mode, comp_reg, const0_rtx); | 55 | condition = gen_rtx_EQ (mode, comp_reg, const0_rtx); |
| @@ -61,7 +61,7 @@ index d5ff7af..dd46d93 100644 | |||
| 61 | 61 | ||
| 62 | } | 62 | } |
| 63 | else if (code == NE) | 63 | else if (code == NE) |
| 64 | @@ -3923,10 +3910,7 @@ microblaze_expand_conditional_branch_reg (machine_mode mode, rtx operands[]) | 64 | @@ -3915,10 +3902,7 @@ microblaze_expand_conditional_branch_reg (machine_mode mode, rtx operands[]) |
| 65 | cmp_op1)); | 65 | cmp_op1)); |
| 66 | } | 66 | } |
| 67 | condition = gen_rtx_NE (mode, comp_reg, const0_rtx); | 67 | condition = gen_rtx_NE (mode, comp_reg, const0_rtx); |
| @@ -73,7 +73,7 @@ index d5ff7af..dd46d93 100644 | |||
| 73 | } | 73 | } |
| 74 | else | 74 | else |
| 75 | { | 75 | { |
| 76 | @@ -3968,7 +3952,7 @@ microblaze_expand_conditional_branch_df (rtx operands[]) | 76 | @@ -3960,7 +3944,7 @@ microblaze_expand_conditional_branch_df (rtx operands[]) |
| 77 | 77 | ||
| 78 | emit_insn (gen_cstoredf4 (comp_reg, operands[0], cmp_op0, cmp_op1)); | 78 | emit_insn (gen_cstoredf4 (comp_reg, operands[0], cmp_op0, cmp_op1)); |
| 79 | condition = gen_rtx_NE (Pmode, comp_reg, const0_rtx); | 79 | condition = gen_rtx_NE (Pmode, comp_reg, const0_rtx); |
| @@ -83,7 +83,7 @@ index d5ff7af..dd46d93 100644 | |||
| 83 | 83 | ||
| 84 | /* Implement TARGET_FRAME_POINTER_REQUIRED. */ | 84 | /* Implement TARGET_FRAME_POINTER_REQUIRED. */ |
| 85 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md | 85 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md |
| 86 | index 77627a7..edb7aab 100644 | 86 | index bef750c026a..29ebbfc0c03 100644 |
| 87 | --- a/gcc/config/microblaze/microblaze.md | 87 | --- a/gcc/config/microblaze/microblaze.md |
| 88 | +++ b/gcc/config/microblaze/microblaze.md | 88 | +++ b/gcc/config/microblaze/microblaze.md |
| 89 | @@ -2270,7 +2270,27 @@ else | 89 | @@ -2270,7 +2270,27 @@ else |
| @@ -264,5 +264,5 @@ index 77627a7..edb7aab 100644 | |||
| 264 | ;; Unconditional branches | 264 | ;; Unconditional branches |
| 265 | ;;---------------------------------------------------------------- | 265 | ;;---------------------------------------------------------------- |
| 266 | -- | 266 | -- |
| 267 | 2.7.4 | 267 | 2.17.1 |
| 268 | 268 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0043-Patch-Microblaze-previous-commit-broke-the-handling-.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0037-Patch-Microblaze-previous-commit-broke-the-handling-.patch index f4074899..9be04781 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0043-Patch-Microblaze-previous-commit-broke-the-handling-.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0037-Patch-Microblaze-previous-commit-broke-the-handling-.patch | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | From 7ab47599c2bec80d622883b3e220827dce89c598 Mon Sep 17 00:00:00 2001 | 1 | From 589c4453ab01570d47e6e37e4e546d65398cf58e Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Wed, 8 Aug 2018 17:37:26 +0530 | 3 | Date: Wed, 8 Aug 2018 17:37:26 +0530 |
| 4 | Subject: [PATCH 43/63] [Patch,Microblaze] : previous commit broke the | 4 | Subject: [PATCH 37/58] [Patch,Microblaze] : previous commit broke the |
| 5 | handling of SI Branch compare for Microblaze 32-bit.. | 5 | handling of SI Branch compare for Microblaze 32-bit.. |
| 6 | 6 | ||
| 7 | --- | 7 | --- |
| @@ -9,7 +9,7 @@ Subject: [PATCH 43/63] [Patch,Microblaze] : previous commit broke the | |||
| 9 | 1 file changed, 2 insertions(+), 2 deletions(-) | 9 | 1 file changed, 2 insertions(+), 2 deletions(-) |
| 10 | 10 | ||
| 11 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md | 11 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md |
| 12 | index edb7aab..fb22edb 100644 | 12 | index 29ebbfc0c03..1a8853056d7 100644 |
| 13 | --- a/gcc/config/microblaze/microblaze.md | 13 | --- a/gcc/config/microblaze/microblaze.md |
| 14 | +++ b/gcc/config/microblaze/microblaze.md | 14 | +++ b/gcc/config/microblaze/microblaze.md |
| 15 | @@ -2226,8 +2226,8 @@ else | 15 | @@ -2226,8 +2226,8 @@ else |
| @@ -24,5 +24,5 @@ index edb7aab..fb22edb 100644 | |||
| 24 | (pc)))] | 24 | (pc)))] |
| 25 | "" | 25 | "" |
| 26 | -- | 26 | -- |
| 27 | 2.7.4 | 27 | 2.17.1 |
| 28 | 28 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0044-Patch-Microblaze-Support-of-multilibs-with-m64.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0038-Patch-Microblaze-Support-of-multilibs-with-m64.patch index ad287e57..464b5a6d 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0044-Patch-Microblaze-Support-of-multilibs-with-m64.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0038-Patch-Microblaze-Support-of-multilibs-with-m64.patch | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | From 23622921a153258de469ff10db4926b83ff0c432 Mon Sep 17 00:00:00 2001 | 1 | From cfc6628cdf81a7ab268d2699c9bbc465865681c5 Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Tue, 11 Sep 2018 13:43:48 +0530 | 3 | Date: Tue, 11 Sep 2018 13:43:48 +0530 |
| 4 | Subject: [PATCH 44/63] [Patch, Microblaze] : Support of multilibs with m64 ... | 4 | Subject: [PATCH 38/58] [Patch, Microblaze] : Support of multilibs with m64 ... |
| 5 | 5 | ||
| 6 | --- | 6 | --- |
| 7 | gcc/config/microblaze/microblaze-c.c | 1 + | 7 | gcc/config/microblaze/microblaze-c.c | 1 + |
| @@ -10,7 +10,7 @@ Subject: [PATCH 44/63] [Patch, Microblaze] : Support of multilibs with m64 ... | |||
| 10 | 3 files changed, 10 insertions(+), 17 deletions(-) | 10 | 3 files changed, 10 insertions(+), 17 deletions(-) |
| 11 | 11 | ||
| 12 | diff --git a/gcc/config/microblaze/microblaze-c.c b/gcc/config/microblaze/microblaze-c.c | 12 | diff --git a/gcc/config/microblaze/microblaze-c.c b/gcc/config/microblaze/microblaze-c.c |
| 13 | index d2b0c76..6670091 100644 | 13 | index dbcd21fc6ee..db543edcbe5 100644 |
| 14 | --- a/gcc/config/microblaze/microblaze-c.c | 14 | --- a/gcc/config/microblaze/microblaze-c.c |
| 15 | +++ b/gcc/config/microblaze/microblaze-c.c | 15 | +++ b/gcc/config/microblaze/microblaze-c.c |
| 16 | @@ -102,6 +102,7 @@ microblaze_cpp_define (cpp_reader *pfile) | 16 | @@ -102,6 +102,7 @@ microblaze_cpp_define (cpp_reader *pfile) |
| @@ -22,7 +22,7 @@ index d2b0c76..6670091 100644 | |||
| 22 | builtin_define ("__microblaze64__"); | 22 | builtin_define ("__microblaze64__"); |
| 23 | builtin_define ("__MICROBLAZE64__"); | 23 | builtin_define ("__MICROBLAZE64__"); |
| 24 | diff --git a/gcc/config/microblaze/t-microblaze b/gcc/config/microblaze/t-microblaze | 24 | diff --git a/gcc/config/microblaze/t-microblaze b/gcc/config/microblaze/t-microblaze |
| 25 | index 9fc80b1..35ab9654 100644 | 25 | index 9fc80b142ce..35ab9654052 100644 |
| 26 | --- a/gcc/config/microblaze/t-microblaze | 26 | --- a/gcc/config/microblaze/t-microblaze |
| 27 | +++ b/gcc/config/microblaze/t-microblaze | 27 | +++ b/gcc/config/microblaze/t-microblaze |
| 28 | @@ -1,12 +1,9 @@ | 28 | @@ -1,12 +1,9 @@ |
| @@ -45,7 +45,7 @@ index 9fc80b1..35ab9654 100644 | |||
| 45 | # Extra files | 45 | # Extra files |
| 46 | microblaze-c.o: $(srcdir)/config/microblaze/microblaze-c.c \ | 46 | microblaze-c.o: $(srcdir)/config/microblaze/microblaze-c.c \ |
| 47 | diff --git a/libgcc/config/microblaze/t-microblaze b/libgcc/config/microblaze/t-microblaze | 47 | diff --git a/libgcc/config/microblaze/t-microblaze b/libgcc/config/microblaze/t-microblaze |
| 48 | index 35021b2..8d954a4 100644 | 48 | index 35021b24b7d..8d954a49575 100644 |
| 49 | --- a/libgcc/config/microblaze/t-microblaze | 49 | --- a/libgcc/config/microblaze/t-microblaze |
| 50 | +++ b/libgcc/config/microblaze/t-microblaze | 50 | +++ b/libgcc/config/microblaze/t-microblaze |
| 51 | @@ -1,16 +1,11 @@ | 51 | @@ -1,16 +1,11 @@ |
| @@ -69,5 +69,5 @@ index 35021b2..8d954a4 100644 | |||
| 69 | - $(srcdir)/config/microblaze/divsi3_table.c \ | 69 | - $(srcdir)/config/microblaze/divsi3_table.c \ |
| 70 | + $(srcdir)/config/microblaze/divsi3_table.c | 70 | + $(srcdir)/config/microblaze/divsi3_table.c |
| 71 | -- | 71 | -- |
| 72 | 2.7.4 | 72 | 2.17.1 |
| 73 | 73 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0045-Fixed-issues-like.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0039-Fix-various-issues.patch index 3f5f7827..c9d4b8c7 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0045-Fixed-issues-like.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0039-Fix-various-issues.patch | |||
| @@ -1,19 +1,21 @@ | |||
| 1 | From 6e6fcbe5fafcbebaf63ff071ad947966af0c1559 Mon Sep 17 00:00:00 2001 | 1 | From 0405777c25bb8110ebfd8ea69c7df062a4c03d6b Mon Sep 17 00:00:00 2001 |
| 2 | From: Nagaraju Mekala <nmekala@xilix.com> | 2 | From: Nagaraju Mekala <nmekala@xilix.com> |
| 3 | Date: Tue, 11 Sep 2018 14:58:00 +0530 | 3 | Date: Tue, 11 Sep 2018 14:58:00 +0530 |
| 4 | Subject: [PATCH 45/63] Fixed issues like: 1 Interrupt alignment issue 2 Sign | 4 | Subject: [PATCH 39/58] Fix various issues |
| 5 | extension issue | ||
| 6 | 5 | ||
| 6 | Fixed issues like: | ||
| 7 | 1 Interrupt alignment issue | ||
| 8 | 2 Sign extension issue | ||
| 7 | --- | 9 | --- |
| 8 | gcc/config/microblaze/microblaze.c | 16 ++++++++++------ | 10 | gcc/config/microblaze/microblaze.c | 16 ++++++++++------ |
| 9 | gcc/config/microblaze/microblaze.md | 2 +- | 11 | gcc/config/microblaze/microblaze.md | 2 +- |
| 10 | 2 files changed, 11 insertions(+), 7 deletions(-) | 12 | 2 files changed, 11 insertions(+), 7 deletions(-) |
| 11 | 13 | ||
| 12 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c | 14 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c |
| 13 | index dd46d93..bfa667b 100644 | 15 | index cba5d86225c..b94902b8fbb 100644 |
| 14 | --- a/gcc/config/microblaze/microblaze.c | 16 | --- a/gcc/config/microblaze/microblaze.c |
| 15 | +++ b/gcc/config/microblaze/microblaze.c | 17 | +++ b/gcc/config/microblaze/microblaze.c |
| 16 | @@ -2317,9 +2317,14 @@ compute_frame_size (HOST_WIDE_INT size) | 18 | @@ -2307,9 +2307,14 @@ compute_frame_size (HOST_WIDE_INT size) |
| 17 | 19 | ||
| 18 | total_size += gp_reg_size; | 20 | total_size += gp_reg_size; |
| 19 | 21 | ||
| @@ -30,7 +32,7 @@ index dd46d93..bfa667b 100644 | |||
| 30 | 32 | ||
| 31 | /* No space to be allocated for link register in leaf functions with no other | 33 | /* No space to be allocated for link register in leaf functions with no other |
| 32 | stack requirements. */ | 34 | stack requirements. */ |
| 33 | @@ -2604,7 +2609,6 @@ print_operand (FILE * file, rtx op, int letter) | 35 | @@ -2594,7 +2599,6 @@ print_operand (FILE * file, rtx op, int letter) |
| 34 | else if (letter == 'h' || letter == 'j') | 36 | else if (letter == 'h' || letter == 'j') |
| 35 | { | 37 | { |
| 36 | long val[2]; | 38 | long val[2]; |
| @@ -38,7 +40,7 @@ index dd46d93..bfa667b 100644 | |||
| 38 | long l[2]; | 40 | long l[2]; |
| 39 | if (code == CONST_DOUBLE) | 41 | if (code == CONST_DOUBLE) |
| 40 | { | 42 | { |
| 41 | @@ -2619,10 +2623,10 @@ print_operand (FILE * file, rtx op, int letter) | 43 | @@ -2609,10 +2613,10 @@ print_operand (FILE * file, rtx op, int letter) |
| 42 | } | 44 | } |
| 43 | else if (code == CONST_INT || code == CONST)// || code == SYMBOL_REF ||code == LABEL_REF) | 45 | else if (code == CONST_INT || code == CONST)// || code == SYMBOL_REF ||code == LABEL_REF) |
| 44 | { | 46 | { |
| @@ -53,7 +55,7 @@ index dd46d93..bfa667b 100644 | |||
| 53 | else if (code == CONST_DOUBLE) | 55 | else if (code == CONST_DOUBLE) |
| 54 | { | 56 | { |
| 55 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md | 57 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md |
| 56 | index fb22edb..4a8fbab 100644 | 58 | index 1a8853056d7..7cc26e7d786 100644 |
| 57 | --- a/gcc/config/microblaze/microblaze.md | 59 | --- a/gcc/config/microblaze/microblaze.md |
| 58 | +++ b/gcc/config/microblaze/microblaze.md | 60 | +++ b/gcc/config/microblaze/microblaze.md |
| 59 | @@ -1096,7 +1096,7 @@ | 61 | @@ -1096,7 +1096,7 @@ |
| @@ -66,5 +68,5 @@ index fb22edb..4a8fbab 100644 | |||
| 66 | } | 68 | } |
| 67 | } | 69 | } |
| 68 | -- | 70 | -- |
| 69 | 2.7.4 | 71 | 2.17.1 |
| 70 | 72 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0040-Added-load-store-pattern-movdi-and-also-adding-missi.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0040-Added-load-store-pattern-movdi-and-also-adding-missi.patch deleted file mode 100644 index a973f4cd..00000000 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0040-Added-load-store-pattern-movdi-and-also-adding-missi.patch +++ /dev/null | |||
| @@ -1,83 +0,0 @@ | |||
| 1 | From 95615e1bfae642dc4f5f1b03e1ffaea4f16aa99c Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Nagaraju Mekala <nmekala@xilix.com> | ||
| 3 | Date: Wed, 4 Apr 2018 16:41:41 +0530 | ||
| 4 | Subject: [PATCH 40/63] Added load store pattern movdi and also adding missing | ||
| 5 | files | ||
| 6 | |||
| 7 | --- | ||
| 8 | gcc/config/microblaze/constraints.md | 5 +++++ | ||
| 9 | gcc/config/microblaze/microblaze.md | 26 ++++++++++++++++++++++++++ | ||
| 10 | gcc/config/microblaze/t-microblaze | 4 ++-- | ||
| 11 | 3 files changed, 33 insertions(+), 2 deletions(-) | ||
| 12 | |||
| 13 | diff --git a/gcc/config/microblaze/constraints.md b/gcc/config/microblaze/constraints.md | ||
| 14 | index 5e1d79a..69bcb24 100644 | ||
| 15 | --- a/gcc/config/microblaze/constraints.md | ||
| 16 | +++ b/gcc/config/microblaze/constraints.md | ||
| 17 | @@ -52,6 +52,11 @@ | ||
| 18 | (and (match_code "const_int") | ||
| 19 | (match_test "ival > 0 && ival < 0x10000"))) | ||
| 20 | |||
| 21 | +(define_constraint "K" | ||
| 22 | + "A constant in the range 0xffffff8000000000L to 0x0000007fffffffffL (inclusive)." | ||
| 23 | + (and (match_code "const_int") | ||
| 24 | + (match_test "ival > (long)0xffffff8000000000L && ival < (long)0x0000007fffffffffL"))) | ||
| 25 | + | ||
| 26 | ;; Define floating point constraints | ||
| 27 | |||
| 28 | (define_constraint "G" | ||
| 29 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md | ||
| 30 | index dbb592e..eb52957 100644 | ||
| 31 | --- a/gcc/config/microblaze/microblaze.md | ||
| 32 | +++ b/gcc/config/microblaze/microblaze.md | ||
| 33 | @@ -1122,6 +1122,32 @@ | ||
| 34 | ) | ||
| 35 | |||
| 36 | |||
| 37 | +(define_insn "*movdi_internal_64" | ||
| 38 | + [(set (match_operand:DI 0 "nonimmediate_operand" "=d,d,d,d,d,R,o") | ||
| 39 | + (match_operand:DI 1 "general_operand" " d,K,J,R,o,d,d"))] | ||
| 40 | + "TARGET_MB_64 && (INTVAL(operands[1]) < 0x7fffffffff) && (INTVAL(operands[1]) > 0xffffff8000000000)" | ||
| 41 | + { | ||
| 42 | + switch (which_alternative) | ||
| 43 | + { | ||
| 44 | + case 0: | ||
| 45 | + return "addlk\t%0,%1"; | ||
| 46 | + case 1: | ||
| 47 | + return "addlik\t%0,r0,%1"; | ||
| 48 | + case 2: | ||
| 49 | + return "addlk\t%0,r0,r0"; | ||
| 50 | + case 3: | ||
| 51 | + case 4: | ||
| 52 | + return "lli\t%0,%1"; | ||
| 53 | + case 5: | ||
| 54 | + case 6: | ||
| 55 | + return "sli\t%1,%0"; | ||
| 56 | + } | ||
| 57 | + return "unreachable"; | ||
| 58 | + } | ||
| 59 | + [(set_attr "type" "no_delay_move,no_delay_arith,no_delay_arith,no_delay_load,no_delay_load,no_delay_store,no_delay_store") | ||
| 60 | + (set_attr "mode" "DI") | ||
| 61 | + (set_attr "length" "8,8,8,8,12,8,12")]) | ||
| 62 | + | ||
| 63 | (define_insn "*movdi_internal" | ||
| 64 | [(set (match_operand:DI 0 "nonimmediate_operand" "=d,d,d,d,d,R,o") | ||
| 65 | (match_operand:DI 1 "general_operand" " d,i,J,R,o,d,d"))] | ||
| 66 | diff --git a/gcc/config/microblaze/t-microblaze b/gcc/config/microblaze/t-microblaze | ||
| 67 | index e9a1921..7671f63 100644 | ||
| 68 | --- a/gcc/config/microblaze/t-microblaze | ||
| 69 | +++ b/gcc/config/microblaze/t-microblaze | ||
| 70 | @@ -4,8 +4,8 @@ MULTILIB_EXCEPTIONS = *mxl-barrel-shift/mxl-multiply-high mxl-multiply-high | ||
| 71 | MULTILIB_EXCEPTIONS += *mxl-barrel-shift/mxl-multiply-high/mlittle-endian | ||
| 72 | MULTILIB_EXCEPTIONS += *mxl-barrel-shift/mxl-multiply-high/m64 | ||
| 73 | MULTILIB_EXCEPTIONS += mxl-multiply-high/mlittle-endian | ||
| 74 | -MULTILIB_EXCEPTIONS += mxl-multiply-high/m64 | ||
| 75 | -MULTILIB_EXCEPTIONS += *mxl-multiply-high/mlittle-endian/m64 | ||
| 76 | +#MULTILIB_EXCEPTIONS += mxl-multiply-high/m64 | ||
| 77 | +#MULTILIB_EXCEPTIONS += *mxl-multiply-high/mlittle-endian/m64 | ||
| 78 | |||
| 79 | # Extra files | ||
| 80 | microblaze-c.o: $(srcdir)/config/microblaze/microblaze-c.c \ | ||
| 81 | -- | ||
| 82 | 2.7.4 | ||
| 83 | |||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0046-Fixed-below-issues.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0040-Fixed-below-issues.patch index fc2fe3b5..d5fbf703 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0046-Fixed-below-issues.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0040-Fixed-below-issues.patch | |||
| @@ -1,27 +1,24 @@ | |||
| 1 | From 7c911a5ae8cf4a7496c059374f170f1919c00f6d Mon Sep 17 00:00:00 2001 | 1 | From c4d60b379c8d0a5621a0dc2a3a12fb40fe45e83e Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Tue, 26 Nov 2019 17:26:15 +0530 | 3 | Date: Tue, 26 Nov 2019 17:26:15 +0530 |
| 4 | Subject: [PATCH 46/63] Fixed below issues: | 4 | Subject: [PATCH 40/58] Fixed below issues: |
| 5 | 5 | ||
| 6 | - Floating point print issues in 64bit mode | 6 | - Floating point print issues in 64bit mode |
| 7 | - Dejagnu Jump related issues | 7 | - Dejagnu Jump related issues |
| 8 | - Added dbl instruction | 8 | - Added dbl instruction |
| 9 | |||
| 10 | Conflicts: | ||
| 11 | gcc/config/microblaze/microblaze.md | ||
| 12 | --- | 9 | --- |
| 13 | gcc/config/microblaze/microblaze.c | 12 +++++- | 10 | gcc/config/microblaze/microblaze.c | 12 +++- |
| 14 | gcc/config/microblaze/microblaze.h | 7 +++ | 11 | gcc/config/microblaze/microblaze.h | 7 +++ |
| 15 | gcc/config/microblaze/microblaze.md | 86 +++++++++++++++++++++++++++++++------ | 12 | gcc/config/microblaze/microblaze.md | 86 ++++++++++++++++++++++++----- |
| 16 | libgcc/config/microblaze/crti.S | 24 ++++++++++- | 13 | libgcc/config/microblaze/crti.S | 24 +++++++- |
| 17 | libgcc/config/microblaze/crtn.S | 13 ++++++ | 14 | libgcc/config/microblaze/crtn.S | 13 +++++ |
| 18 | 5 files changed, 125 insertions(+), 17 deletions(-) | 15 | 5 files changed, 125 insertions(+), 17 deletions(-) |
| 19 | 16 | ||
| 20 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c | 17 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c |
| 21 | index bfa667b..220e03d 100644 | 18 | index b94902b8fbb..12b1da852dd 100644 |
| 22 | --- a/gcc/config/microblaze/microblaze.c | 19 | --- a/gcc/config/microblaze/microblaze.c |
| 23 | +++ b/gcc/config/microblaze/microblaze.c | 20 | +++ b/gcc/config/microblaze/microblaze.c |
| 24 | @@ -2613,7 +2613,12 @@ print_operand (FILE * file, rtx op, int letter) | 21 | @@ -2603,7 +2603,12 @@ print_operand (FILE * file, rtx op, int letter) |
| 25 | if (code == CONST_DOUBLE) | 22 | if (code == CONST_DOUBLE) |
| 26 | { | 23 | { |
| 27 | if (GET_MODE (op) == DFmode) | 24 | if (GET_MODE (op) == DFmode) |
| @@ -35,7 +32,7 @@ index bfa667b..220e03d 100644 | |||
| 35 | else | 32 | else |
| 36 | { | 33 | { |
| 37 | REAL_VALUE_TO_TARGET_DOUBLE (*CONST_DOUBLE_REAL_VALUE (op), l); | 34 | REAL_VALUE_TO_TARGET_DOUBLE (*CONST_DOUBLE_REAL_VALUE (op), l); |
| 38 | @@ -4014,7 +4019,10 @@ microblaze_expand_divide (rtx operands[]) | 35 | @@ -4006,7 +4011,10 @@ microblaze_expand_divide (rtx operands[]) |
| 39 | gen_rtx_PLUS (QImode, regt1, div_table_rtx)); | 36 | gen_rtx_PLUS (QImode, regt1, div_table_rtx)); |
| 40 | 37 | ||
| 41 | insn = emit_insn (gen_zero_extendqisi2(operands[0],mem_rtx)); | 38 | insn = emit_insn (gen_zero_extendqisi2(operands[0],mem_rtx)); |
| @@ -48,7 +45,7 @@ index bfa667b..220e03d 100644 | |||
| 48 | LABEL_NUSES (div_end_label) = 1; | 45 | LABEL_NUSES (div_end_label) = 1; |
| 49 | emit_barrier (); | 46 | emit_barrier (); |
| 50 | diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h | 47 | diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h |
| 51 | index a23fd4e..7497cfb 100644 | 48 | index 1f6e2059545..a36e06316aa 100644 |
| 52 | --- a/gcc/config/microblaze/microblaze.h | 49 | --- a/gcc/config/microblaze/microblaze.h |
| 53 | +++ b/gcc/config/microblaze/microblaze.h | 50 | +++ b/gcc/config/microblaze/microblaze.h |
| 54 | @@ -888,10 +888,17 @@ do { \ | 51 | @@ -888,10 +888,17 @@ do { \ |
| @@ -70,7 +67,7 @@ index a23fd4e..7497cfb 100644 | |||
| 70 | /* We need to group -lm as well, since some Newlib math functions | 67 | /* We need to group -lm as well, since some Newlib math functions |
| 71 | reference __errno! */ | 68 | reference __errno! */ |
| 72 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md | 69 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md |
| 73 | index 4a8fbab..65ec32c 100644 | 70 | index 7cc26e7d786..013c77651c3 100644 |
| 74 | --- a/gcc/config/microblaze/microblaze.md | 71 | --- a/gcc/config/microblaze/microblaze.md |
| 75 | +++ b/gcc/config/microblaze/microblaze.md | 72 | +++ b/gcc/config/microblaze/microblaze.md |
| 76 | @@ -527,6 +527,15 @@ | 73 | @@ -527,6 +527,15 @@ |
| @@ -231,7 +228,7 @@ index 4a8fbab..65ec32c 100644 | |||
| 231 | "" | 228 | "" |
| 232 | "mfs\t%0,rpc\n\taddik\t%0,%0,_GLOBAL_OFFSET_TABLE_+8" | 229 | "mfs\t%0,rpc\n\taddik\t%0,%0,_GLOBAL_OFFSET_TABLE_+8" |
| 233 | diff --git a/libgcc/config/microblaze/crti.S b/libgcc/config/microblaze/crti.S | 230 | diff --git a/libgcc/config/microblaze/crti.S b/libgcc/config/microblaze/crti.S |
| 234 | index 1811327..a661319 100644 | 231 | index 005825f1ec5..b7436c7131f 100644 |
| 235 | --- a/libgcc/config/microblaze/crti.S | 232 | --- a/libgcc/config/microblaze/crti.S |
| 236 | +++ b/libgcc/config/microblaze/crti.S | 233 | +++ b/libgcc/config/microblaze/crti.S |
| 237 | @@ -33,11 +33,32 @@ | 234 | @@ -33,11 +33,32 @@ |
| @@ -274,7 +271,7 @@ index 1811327..a661319 100644 | |||
| 274 | sw r15, r0, r1 | 271 | sw r15, r0, r1 |
| 275 | +#endif | 272 | +#endif |
| 276 | diff --git a/libgcc/config/microblaze/crtn.S b/libgcc/config/microblaze/crtn.S | 273 | diff --git a/libgcc/config/microblaze/crtn.S b/libgcc/config/microblaze/crtn.S |
| 277 | index 60a4648..d72507b 100644 | 274 | index 5705eff9a4a..f1148ffebe4 100644 |
| 278 | --- a/libgcc/config/microblaze/crtn.S | 275 | --- a/libgcc/config/microblaze/crtn.S |
| 279 | +++ b/libgcc/config/microblaze/crtn.S | 276 | +++ b/libgcc/config/microblaze/crtn.S |
| 280 | @@ -29,7 +29,19 @@ | 277 | @@ -29,7 +29,19 @@ |
| @@ -303,5 +300,5 @@ index 60a4648..d72507b 100644 | |||
| 303 | addik r1, r1, 16 | 300 | addik r1, r1, 16 |
| 304 | +#endif | 301 | +#endif |
| 305 | -- | 302 | -- |
| 306 | 2.7.4 | 303 | 2.17.1 |
| 307 | 304 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0047-Added-double-arith-instructions.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0041-Fix-various.patch index 1b7ac28b..75ee48fa 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0047-Added-double-arith-instructions.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0041-Fix-various.patch | |||
| @@ -1,16 +1,17 @@ | |||
| 1 | From 0f310964ff1c19cbc3404ec7ceba286d6de315c0 Mon Sep 17 00:00:00 2001 | 1 | From 90edf612331af9b7e99105112c2067a3f085daef Mon Sep 17 00:00:00 2001 |
| 2 | From: Nagaraju Mekala <nmekala@xilix.com> | 2 | From: Nagaraju Mekala <nmekala@xilix.com> |
| 3 | Date: Tue, 9 Oct 2018 10:07:08 +0530 | 3 | Date: Tue, 9 Oct 2018 10:07:08 +0530 |
| 4 | Subject: [PATCH 47/63] -Added double arith instructions -Fixed prologue stack | 4 | Subject: [PATCH 41/58] Fix various |
| 5 | pointer decrement issue | ||
| 6 | 5 | ||
| 6 | -Added double arith instructions | ||
| 7 | -Fixed prologue stack pointer decrement issue | ||
| 7 | --- | 8 | --- |
| 8 | gcc/config/microblaze/microblaze.md | 78 ++++++++++++++++++++++++++++++++----- | 9 | gcc/config/microblaze/microblaze.md | 78 +++++++++++++++++++++++++---- |
| 9 | gcc/config/microblaze/t-microblaze | 7 ++++ | 10 | gcc/config/microblaze/t-microblaze | 7 +++ |
| 10 | 2 files changed, 76 insertions(+), 9 deletions(-) | 11 | 2 files changed, 76 insertions(+), 9 deletions(-) |
| 11 | 12 | ||
| 12 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md | 13 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md |
| 13 | index 65ec32c..c199b27 100644 | 14 | index 013c77651c3..645f48f2847 100644 |
| 14 | --- a/gcc/config/microblaze/microblaze.md | 15 | --- a/gcc/config/microblaze/microblaze.md |
| 15 | +++ b/gcc/config/microblaze/microblaze.md | 16 | +++ b/gcc/config/microblaze/microblaze.md |
| 16 | @@ -527,6 +527,66 @@ | 17 | @@ -527,6 +527,66 @@ |
| @@ -113,7 +114,7 @@ index 65ec32c..c199b27 100644 | |||
| 113 | (set_attr "mode" "DI") | 114 | (set_attr "mode" "DI") |
| 114 | (set_attr "length" "4,4,4")]) | 115 | (set_attr "length" "4,4,4")]) |
| 115 | diff --git a/gcc/config/microblaze/t-microblaze b/gcc/config/microblaze/t-microblaze | 116 | diff --git a/gcc/config/microblaze/t-microblaze b/gcc/config/microblaze/t-microblaze |
| 116 | index 35ab9654..dfef45c 100644 | 117 | index 35ab9654052..dfef45c268e 100644 |
| 117 | --- a/gcc/config/microblaze/t-microblaze | 118 | --- a/gcc/config/microblaze/t-microblaze |
| 118 | +++ b/gcc/config/microblaze/t-microblaze | 119 | +++ b/gcc/config/microblaze/t-microblaze |
| 119 | @@ -1,6 +1,13 @@ | 120 | @@ -1,6 +1,13 @@ |
| @@ -131,5 +132,5 @@ index 35ab9654..dfef45c 100644 | |||
| 131 | MULTILIB_EXCEPTIONS += *mlittle-endian/mxl-multiply-high mxl-multiply-high | 132 | MULTILIB_EXCEPTIONS += *mlittle-endian/mxl-multiply-high mxl-multiply-high |
| 132 | MULTILIB_EXCEPTIONS += *m64/mxl-barrel-shift/mlittle-endian/mxl-multiply-high | 133 | MULTILIB_EXCEPTIONS += *m64/mxl-barrel-shift/mlittle-endian/mxl-multiply-high |
| 133 | -- | 134 | -- |
| 134 | 2.7.4 | 135 | 2.17.1 |
| 135 | 136 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0048-Fixed-the-issue-in-the-delay-slot-with-swap-instruct.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0042-Fixed-the-issue-in-the-delay-slot-with-swap-instruct.patch index c00b0a2b..2e66625b 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0048-Fixed-the-issue-in-the-delay-slot-with-swap-instruct.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0042-Fixed-the-issue-in-the-delay-slot-with-swap-instruct.patch | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | From b63cd2a410b9350fa67ed3ca348dcca349da4e44 Mon Sep 17 00:00:00 2001 | 1 | From c7f6fb9d81ce322f71cbef7cc1f5cb2fb8956a27 Mon Sep 17 00:00:00 2001 |
| 2 | From: Nagaraju Mekala <nmekala@xilix.com> | 2 | From: Nagaraju Mekala <nmekala@xilix.com> |
| 3 | Date: Fri, 12 Oct 2018 16:07:36 +0530 | 3 | Date: Fri, 12 Oct 2018 16:07:36 +0530 |
| 4 | Subject: [PATCH 48/63] Fixed the issue in the delay slot with swap | 4 | Subject: [PATCH 42/58] Fixed the issue in the delay slot with swap |
| 5 | instructions | 5 | instructions |
| 6 | 6 | ||
| 7 | --- | 7 | --- |
| @@ -9,7 +9,7 @@ Subject: [PATCH 48/63] Fixed the issue in the delay slot with swap | |||
| 9 | 1 file changed, 6 insertions(+) | 9 | 1 file changed, 6 insertions(+) |
| 10 | 10 | ||
| 11 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md | 11 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md |
| 12 | index c199b27..d6370d8 100644 | 12 | index 645f48f2847..6a1e45a5b66 100644 |
| 13 | --- a/gcc/config/microblaze/microblaze.md | 13 | --- a/gcc/config/microblaze/microblaze.md |
| 14 | +++ b/gcc/config/microblaze/microblaze.md | 14 | +++ b/gcc/config/microblaze/microblaze.md |
| 15 | @@ -443,6 +443,9 @@ | 15 | @@ -443,6 +443,9 @@ |
| @@ -33,5 +33,5 @@ index c199b27..d6370d8 100644 | |||
| 33 | 33 | ||
| 34 | ;;---------------------------------------------------------------- | 34 | ;;---------------------------------------------------------------- |
| 35 | -- | 35 | -- |
| 36 | 2.7.4 | 36 | 2.17.1 |
| 37 | 37 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0049-Fixed-the-load-store-issue-with-the-32bit-arith-libr.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0043-Fixed-the-load-store-issue-with-the-32bit-arith-libr.patch index 7e92df2e..3d532c6a 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0049-Fixed-the-load-store-issue-with-the-32bit-arith-libr.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0043-Fixed-the-load-store-issue-with-the-32bit-arith-libr.patch | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | From f39f36cb0f0466343ef4ead50261b58595af708c Mon Sep 17 00:00:00 2001 | 1 | From 16a9a232ae430e691c13157dd5988f9c5c7dfb71 Mon Sep 17 00:00:00 2001 |
| 2 | From: Nagaraju Mekala <nmekala@xilix.com> | 2 | From: Nagaraju Mekala <nmekala@xilix.com> |
| 3 | Date: Sat, 13 Oct 2018 21:12:43 +0530 | 3 | Date: Sat, 13 Oct 2018 21:12:43 +0530 |
| 4 | Subject: [PATCH 49/63] Fixed the load store issue with the 32bit arith | 4 | Subject: [PATCH 43/58] Fixed the load store issue with the 32bit arith |
| 5 | libraries | 5 | libraries |
| 6 | 6 | ||
| 7 | --- | 7 | --- |
| @@ -13,7 +13,7 @@ Subject: [PATCH 49/63] Fixed the load store issue with the 32bit arith | |||
| 13 | 5 files changed, 98 insertions(+), 4 deletions(-) | 13 | 5 files changed, 98 insertions(+), 4 deletions(-) |
| 14 | 14 | ||
| 15 | diff --git a/libgcc/config/microblaze/divsi3.S b/libgcc/config/microblaze/divsi3.S | 15 | diff --git a/libgcc/config/microblaze/divsi3.S b/libgcc/config/microblaze/divsi3.S |
| 16 | index 24b94b9..2765e42 100644 | 16 | index bb047094e2f..104243e35fe 100644 |
| 17 | --- a/libgcc/config/microblaze/divsi3.S | 17 | --- a/libgcc/config/microblaze/divsi3.S |
| 18 | +++ b/libgcc/config/microblaze/divsi3.S | 18 | +++ b/libgcc/config/microblaze/divsi3.S |
| 19 | @@ -41,6 +41,17 @@ | 19 | @@ -41,6 +41,17 @@ |
| @@ -70,7 +70,7 @@ index 24b94b9..2765e42 100644 | |||
| 70 | .size __divsi3, . - __divsi3 | 70 | .size __divsi3, . - __divsi3 |
| 71 | 71 | ||
| 72 | diff --git a/libgcc/config/microblaze/modsi3.S b/libgcc/config/microblaze/modsi3.S | 72 | diff --git a/libgcc/config/microblaze/modsi3.S b/libgcc/config/microblaze/modsi3.S |
| 73 | index 87372f5..7e61453 100644 | 73 | index 9692ff310ff..9500d64bdc0 100644 |
| 74 | --- a/libgcc/config/microblaze/modsi3.S | 74 | --- a/libgcc/config/microblaze/modsi3.S |
| 75 | +++ b/libgcc/config/microblaze/modsi3.S | 75 | +++ b/libgcc/config/microblaze/modsi3.S |
| 76 | @@ -41,6 +41,17 @@ | 76 | @@ -41,6 +41,17 @@ |
| @@ -128,7 +128,7 @@ index 87372f5..7e61453 100644 | |||
| 128 | .size __modsi3, . - __modsi3 | 128 | .size __modsi3, . - __modsi3 |
| 129 | 129 | ||
| 130 | diff --git a/libgcc/config/microblaze/mulsi3.S b/libgcc/config/microblaze/mulsi3.S | 130 | diff --git a/libgcc/config/microblaze/mulsi3.S b/libgcc/config/microblaze/mulsi3.S |
| 131 | index 8c3f788..e28c69a 100644 | 131 | index cb3b6b8321f..2044399db4a 100644 |
| 132 | --- a/libgcc/config/microblaze/mulsi3.S | 132 | --- a/libgcc/config/microblaze/mulsi3.S |
| 133 | +++ b/libgcc/config/microblaze/mulsi3.S | 133 | +++ b/libgcc/config/microblaze/mulsi3.S |
| 134 | @@ -41,6 +41,9 @@ | 134 | @@ -41,6 +41,9 @@ |
| @@ -142,7 +142,7 @@ index 8c3f788..e28c69a 100644 | |||
| 142 | .frame r1,0,r15 | 142 | .frame r1,0,r15 |
| 143 | add r3,r0,r0 | 143 | add r3,r0,r0 |
| 144 | diff --git a/libgcc/config/microblaze/udivsi3.S b/libgcc/config/microblaze/udivsi3.S | 144 | diff --git a/libgcc/config/microblaze/udivsi3.S b/libgcc/config/microblaze/udivsi3.S |
| 145 | index 5d726ad..b1e44b6 100644 | 145 | index ee2bdd0950d..d2332bcfe62 100644 |
| 146 | --- a/libgcc/config/microblaze/udivsi3.S | 146 | --- a/libgcc/config/microblaze/udivsi3.S |
| 147 | +++ b/libgcc/config/microblaze/udivsi3.S | 147 | +++ b/libgcc/config/microblaze/udivsi3.S |
| 148 | @@ -41,6 +41,16 @@ | 148 | @@ -41,6 +41,16 @@ |
| @@ -197,7 +197,7 @@ index 5d726ad..b1e44b6 100644 | |||
| 197 | .end __udivsi3 | 197 | .end __udivsi3 |
| 198 | .size __udivsi3, . - __udivsi3 | 198 | .size __udivsi3, . - __udivsi3 |
| 199 | diff --git a/libgcc/config/microblaze/umodsi3.S b/libgcc/config/microblaze/umodsi3.S | 199 | diff --git a/libgcc/config/microblaze/umodsi3.S b/libgcc/config/microblaze/umodsi3.S |
| 200 | index b29d7e1..8804b99 100644 | 200 | index 12c082f6417..30bd8c20b58 100644 |
| 201 | --- a/libgcc/config/microblaze/umodsi3.S | 201 | --- a/libgcc/config/microblaze/umodsi3.S |
| 202 | +++ b/libgcc/config/microblaze/umodsi3.S | 202 | +++ b/libgcc/config/microblaze/umodsi3.S |
| 203 | @@ -41,6 +41,16 @@ | 203 | @@ -41,6 +41,16 @@ |
| @@ -252,5 +252,5 @@ index b29d7e1..8804b99 100644 | |||
| 252 | .end __umodsi3 | 252 | .end __umodsi3 |
| 253 | .size __umodsi3, . - __umodsi3 | 253 | .size __umodsi3, . - __umodsi3 |
| 254 | -- | 254 | -- |
| 255 | 2.7.4 | 255 | 2.17.1 |
| 256 | 256 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0050-extending-the-Dwarf-support-to-64bit-Microblaze.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0044-extending-the-Dwarf-support-to-64bit-Microblaze.patch index ba717327..d34c103d 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0050-extending-the-Dwarf-support-to-64bit-Microblaze.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0044-extending-the-Dwarf-support-to-64bit-Microblaze.patch | |||
| @@ -1,14 +1,14 @@ | |||
| 1 | From 51886f40b6bccea22277f8dcc971706d7c24bdd0 Mon Sep 17 00:00:00 2001 | 1 | From b3766742c4e1d401d4f7cdc55a90262681689a20 Mon Sep 17 00:00:00 2001 |
| 2 | From: Nagaraju Mekala <nmekala@xilix.com> | 2 | From: Nagaraju Mekala <nmekala@xilix.com> |
| 3 | Date: Mon, 15 Oct 2018 12:00:10 +0530 | 3 | Date: Mon, 15 Oct 2018 12:00:10 +0530 |
| 4 | Subject: [PATCH 50/63] extending the Dwarf support to 64bit Microblaze | 4 | Subject: [PATCH 44/58] extending the Dwarf support to 64bit Microblaze |
| 5 | 5 | ||
| 6 | --- | 6 | --- |
| 7 | gcc/config/microblaze/microblaze.h | 2 +- | 7 | gcc/config/microblaze/microblaze.h | 2 +- |
| 8 | 1 file changed, 1 insertion(+), 1 deletion(-) | 8 | 1 file changed, 1 insertion(+), 1 deletion(-) |
| 9 | 9 | ||
| 10 | diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h | 10 | diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h |
| 11 | index 7497cfb..bd5e216 100644 | 11 | index a36e06316aa..8504a841406 100644 |
| 12 | --- a/gcc/config/microblaze/microblaze.h | 12 | --- a/gcc/config/microblaze/microblaze.h |
| 13 | +++ b/gcc/config/microblaze/microblaze.h | 13 | +++ b/gcc/config/microblaze/microblaze.h |
| 14 | @@ -207,7 +207,7 @@ extern enum pipeline_type microblaze_pipe; | 14 | @@ -207,7 +207,7 @@ extern enum pipeline_type microblaze_pipe; |
| @@ -21,5 +21,5 @@ index 7497cfb..bd5e216 100644 | |||
| 21 | /* Target machine storage layout */ | 21 | /* Target machine storage layout */ |
| 22 | 22 | ||
| 23 | -- | 23 | -- |
| 24 | 2.7.4 | 24 | 2.17.1 |
| 25 | 25 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0051-fixing-the-typo-errors-in-umodsi3-file.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0045-fixing-the-typo-errors-in-umodsi3-file.patch index a0758b31..a69c71dd 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0051-fixing-the-typo-errors-in-umodsi3-file.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0045-fixing-the-typo-errors-in-umodsi3-file.patch | |||
| @@ -1,14 +1,14 @@ | |||
| 1 | From a8978d71c8b5adfa59430443611bd785a4d54ef9 Mon Sep 17 00:00:00 2001 | 1 | From bdc9429b5f2300e39ecdf1db63f4d35f8e18a932 Mon Sep 17 00:00:00 2001 |
| 2 | From: Nagaraju Mekala <nmekala@xilix.com> | 2 | From: Nagaraju Mekala <nmekala@xilix.com> |
| 3 | Date: Tue, 16 Oct 2018 07:55:46 +0530 | 3 | Date: Tue, 16 Oct 2018 07:55:46 +0530 |
| 4 | Subject: [PATCH 51/63] fixing the typo errors in umodsi3 file | 4 | Subject: [PATCH 45/58] fixing the typo errors in umodsi3 file |
| 5 | 5 | ||
| 6 | --- | 6 | --- |
| 7 | libgcc/config/microblaze/umodsi3.S | 6 +++--- | 7 | libgcc/config/microblaze/umodsi3.S | 6 +++--- |
| 8 | 1 file changed, 3 insertions(+), 3 deletions(-) | 8 | 1 file changed, 3 insertions(+), 3 deletions(-) |
| 9 | 9 | ||
| 10 | diff --git a/libgcc/config/microblaze/umodsi3.S b/libgcc/config/microblaze/umodsi3.S | 10 | diff --git a/libgcc/config/microblaze/umodsi3.S b/libgcc/config/microblaze/umodsi3.S |
| 11 | index 8804b99..1b3070e 100644 | 11 | index 30bd8c20b58..2dd72aef68e 100644 |
| 12 | --- a/libgcc/config/microblaze/umodsi3.S | 12 | --- a/libgcc/config/microblaze/umodsi3.S |
| 13 | +++ b/libgcc/config/microblaze/umodsi3.S | 13 | +++ b/libgcc/config/microblaze/umodsi3.S |
| 14 | @@ -47,9 +47,9 @@ __umodsi3: | 14 | @@ -47,9 +47,9 @@ __umodsi3: |
| @@ -25,5 +25,5 @@ index 8804b99..1b3070e 100644 | |||
| 25 | __umodsi3: | 25 | __umodsi3: |
| 26 | .frame r1,0,r15 | 26 | .frame r1,0,r15 |
| 27 | -- | 27 | -- |
| 28 | 2.7.4 | 28 | 2.17.1 |
| 29 | 29 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0052-fixing-the-32bit-LTO-related-issue9-1014024.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0046-fixing-the-32bit-LTO-related-issue9-1014024.patch index d0b534bc..a5f7afb6 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0052-fixing-the-32bit-LTO-related-issue9-1014024.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0046-fixing-the-32bit-LTO-related-issue9-1014024.patch | |||
| @@ -1,14 +1,14 @@ | |||
| 1 | From 328bd339c292b63d2068a132a245bdc037815d6b Mon Sep 17 00:00:00 2001 | 1 | From 2226c8b836bdc9d0e2a281d971288e4bcb50d503 Mon Sep 17 00:00:00 2001 |
| 2 | From: Nagaraju Mekala <nmekala@xilix.com> | 2 | From: Nagaraju Mekala <nmekala@xilix.com> |
| 3 | Date: Wed, 17 Oct 2018 16:56:14 +0530 | 3 | Date: Wed, 17 Oct 2018 16:56:14 +0530 |
| 4 | Subject: [PATCH 52/63] fixing the 32bit LTO related issue9(1014024) | 4 | Subject: [PATCH 46/58] fixing the 32bit LTO related issue9(1014024) |
| 5 | 5 | ||
| 6 | --- | 6 | --- |
| 7 | gcc/config/microblaze/microblaze.h | 24 ++++++++++++++---------- | 7 | gcc/config/microblaze/microblaze.h | 24 ++++++++++++++---------- |
| 8 | 1 file changed, 14 insertions(+), 10 deletions(-) | 8 | 1 file changed, 14 insertions(+), 10 deletions(-) |
| 9 | 9 | ||
| 10 | diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h | 10 | diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h |
| 11 | index bd5e216..ab541f7 100644 | 11 | index 8504a841406..0c493b6f6e4 100644 |
| 12 | --- a/gcc/config/microblaze/microblaze.h | 12 | --- a/gcc/config/microblaze/microblaze.h |
| 13 | +++ b/gcc/config/microblaze/microblaze.h | 13 | +++ b/gcc/config/microblaze/microblaze.h |
| 14 | @@ -265,12 +265,14 @@ extern enum pipeline_type microblaze_pipe; | 14 | @@ -265,12 +265,14 @@ extern enum pipeline_type microblaze_pipe; |
| @@ -64,5 +64,5 @@ index bd5e216..ab541f7 100644 | |||
| 64 | #define REGNO_OK_FOR_BASE_P(regno) microblaze_regno_ok_for_base_p ((regno), 1) | 64 | #define REGNO_OK_FOR_BASE_P(regno) microblaze_regno_ok_for_base_p ((regno), 1) |
| 65 | 65 | ||
| 66 | -- | 66 | -- |
| 67 | 2.7.4 | 67 | 2.17.1 |
| 68 | 68 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0053-Fixed-the-missing-stack-adjustment-in-prologue-of-mo.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0047-Fixed-the-missing-stack-adjustment-in-prologue-of-mo.patch index f8ac364c..42296396 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0053-Fixed-the-missing-stack-adjustment-in-prologue-of-mo.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0047-Fixed-the-missing-stack-adjustment-in-prologue-of-mo.patch | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | From 3f65f0432d42f4d469fbb10828f1683cd30a5d84 Mon Sep 17 00:00:00 2001 | 1 | From 8ed304d49f66bc36b39dac8e804a7cdeda642739 Mon Sep 17 00:00:00 2001 |
| 2 | From: Nagaraju Mekala <nmekala@xilix.com> | 2 | From: Nagaraju Mekala <nmekala@xilix.com> |
| 3 | Date: Fri, 19 Oct 2018 14:26:25 +0530 | 3 | Date: Fri, 19 Oct 2018 14:26:25 +0530 |
| 4 | Subject: [PATCH 53/63] Fixed the missing stack adjustment in prologue of | 4 | Subject: [PATCH 47/58] Fixed the missing stack adjustment in prologue of |
| 5 | modsi3 function | 5 | modsi3 function |
| 6 | 6 | ||
| 7 | --- | 7 | --- |
| @@ -9,7 +9,7 @@ Subject: [PATCH 53/63] Fixed the missing stack adjustment in prologue of | |||
| 9 | 1 file changed, 1 insertion(+) | 9 | 1 file changed, 1 insertion(+) |
| 10 | 10 | ||
| 11 | diff --git a/libgcc/config/microblaze/modsi3.S b/libgcc/config/microblaze/modsi3.S | 11 | diff --git a/libgcc/config/microblaze/modsi3.S b/libgcc/config/microblaze/modsi3.S |
| 12 | index 7e61453..b0e6cad 100644 | 12 | index 9500d64bdc0..4dbb25900d9 100644 |
| 13 | --- a/libgcc/config/microblaze/modsi3.S | 13 | --- a/libgcc/config/microblaze/modsi3.S |
| 14 | +++ b/libgcc/config/microblaze/modsi3.S | 14 | +++ b/libgcc/config/microblaze/modsi3.S |
| 15 | @@ -119,6 +119,7 @@ $LaRETURN_HERE: | 15 | @@ -119,6 +119,7 @@ $LaRETURN_HERE: |
| @@ -21,5 +21,5 @@ index 7e61453..b0e6cad 100644 | |||
| 21 | .end __modsi3 | 21 | .end __modsi3 |
| 22 | .size __modsi3, . - __modsi3 | 22 | .size __modsi3, . - __modsi3 |
| 23 | -- | 23 | -- |
| 24 | 2.7.4 | 24 | 2.17.1 |
| 25 | 25 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0054-Patch-Microblaze-corrected-SPN-for-dlong-instruction.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0048-Patch-Microblaze-corrected-SPN-for-dlong-instruction.patch index 0e704506..92fa9e57 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0054-Patch-Microblaze-corrected-SPN-for-dlong-instruction.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0048-Patch-Microblaze-corrected-SPN-for-dlong-instruction.patch | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | From 0dbb2b7bfe466c18d54aec680208fd1459619bc1 Mon Sep 17 00:00:00 2001 | 1 | From d12f2da2ae7fa7946aef94c161730c7b851c086a Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Wed, 24 Oct 2018 18:31:04 +0530 | 3 | Date: Wed, 24 Oct 2018 18:31:04 +0530 |
| 4 | Subject: [PATCH 54/63] [Patch,Microblaze] : corrected SPN for dlong | 4 | Subject: [PATCH 48/58] [Patch,Microblaze] : corrected SPN for dlong |
| 5 | instruction mapping. | 5 | instruction mapping. |
| 6 | 6 | ||
| 7 | --- | 7 | --- |
| @@ -9,7 +9,7 @@ Subject: [PATCH 54/63] [Patch,Microblaze] : corrected SPN for dlong | |||
| 9 | 1 file changed, 2 insertions(+), 2 deletions(-) | 9 | 1 file changed, 2 insertions(+), 2 deletions(-) |
| 10 | 10 | ||
| 11 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md | 11 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md |
| 12 | index d6370d8..6b6b7c6 100644 | 12 | index 6a1e45a5b66..53dbe4e4060 100644 |
| 13 | --- a/gcc/config/microblaze/microblaze.md | 13 | --- a/gcc/config/microblaze/microblaze.md |
| 14 | +++ b/gcc/config/microblaze/microblaze.md | 14 | +++ b/gcc/config/microblaze/microblaze.md |
| 15 | @@ -602,9 +602,9 @@ | 15 | @@ -602,9 +602,9 @@ |
| @@ -25,5 +25,5 @@ index d6370d8..6b6b7c6 100644 | |||
| 25 | "dlong\t%0,%1" | 25 | "dlong\t%0,%1" |
| 26 | [(set_attr "type" "fcvt") | 26 | [(set_attr "type" "fcvt") |
| 27 | -- | 27 | -- |
| 28 | 2.7.4 | 28 | 2.17.1 |
| 29 | 29 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0055-fixing-the-long-long-long-mingw-toolchain-issue.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0049-fixing-the-long-long-long-mingw-toolchain-issue.patch index 28554722..346157ce 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0055-fixing-the-long-long-long-mingw-toolchain-issue.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0049-fixing-the-long-long-long-mingw-toolchain-issue.patch | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | From a56b23ae244eee1da6d6595d3a6477085d77271e Mon Sep 17 00:00:00 2001 | 1 | From dfe4f5aa180a7b4c15b4b586b253541aa9d29e52 Mon Sep 17 00:00:00 2001 |
| 2 | From: Nagaraju Mekala <nmekala@xilix.com> | 2 | From: Nagaraju Mekala <nmekala@xilix.com> |
| 3 | Date: Thu, 29 Nov 2018 17:55:08 +0530 | 3 | Date: Thu, 29 Nov 2018 17:55:08 +0530 |
| 4 | Subject: [PATCH 55/63] fixing the long & long long mingw toolchain issue | 4 | Subject: [PATCH 49/58] fixing the long & long long mingw toolchain issue |
| 5 | 5 | ||
| 6 | --- | 6 | --- |
| 7 | gcc/config/microblaze/constraints.md | 2 +- | 7 | gcc/config/microblaze/constraints.md | 2 +- |
| @@ -9,7 +9,7 @@ Subject: [PATCH 55/63] fixing the long & long long mingw toolchain issue | |||
| 9 | 2 files changed, 5 insertions(+), 5 deletions(-) | 9 | 2 files changed, 5 insertions(+), 5 deletions(-) |
| 10 | 10 | ||
| 11 | diff --git a/gcc/config/microblaze/constraints.md b/gcc/config/microblaze/constraints.md | 11 | diff --git a/gcc/config/microblaze/constraints.md b/gcc/config/microblaze/constraints.md |
| 12 | index 2fce91e..9a5aa6b 100644 | 12 | index c2b0a21c53b..4a6cf419671 100644 |
| 13 | --- a/gcc/config/microblaze/constraints.md | 13 | --- a/gcc/config/microblaze/constraints.md |
| 14 | +++ b/gcc/config/microblaze/constraints.md | 14 | +++ b/gcc/config/microblaze/constraints.md |
| 15 | @@ -55,7 +55,7 @@ | 15 | @@ -55,7 +55,7 @@ |
| @@ -22,7 +22,7 @@ index 2fce91e..9a5aa6b 100644 | |||
| 22 | ;; Define floating point constraints | 22 | ;; Define floating point constraints |
| 23 | 23 | ||
| 24 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md | 24 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md |
| 25 | index 6b6b7c6..a1dc41f 100644 | 25 | index 53dbe4e4060..5d277014e42 100644 |
| 26 | --- a/gcc/config/microblaze/microblaze.md | 26 | --- a/gcc/config/microblaze/microblaze.md |
| 27 | +++ b/gcc/config/microblaze/microblaze.md | 27 | +++ b/gcc/config/microblaze/microblaze.md |
| 28 | @@ -648,8 +648,8 @@ | 28 | @@ -648,8 +648,8 @@ |
| @@ -55,5 +55,5 @@ index 6b6b7c6..a1dc41f 100644 | |||
| 55 | else | 55 | else |
| 56 | return "addlik\t%0,r0,%1"; | 56 | return "addlik\t%0,r0,%1"; |
| 57 | -- | 57 | -- |
| 58 | 2.7.4 | 58 | 2.17.1 |
| 59 | 59 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0056-Fix-the-MB-64-bug-of-handling-QI-objects.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0050-Fix-the-MB-64-bug-of-handling-QI-objects.patch index a419216c..360bdb51 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0056-Fix-the-MB-64-bug-of-handling-QI-objects.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0050-Fix-the-MB-64-bug-of-handling-QI-objects.patch | |||
| @@ -1,14 +1,14 @@ | |||
| 1 | From e13b1b70972511a642512cbc7093ed21e5a9e141 Mon Sep 17 00:00:00 2001 | 1 | From b21e115bc1af625b2ae1acb893027af6af3c2d16 Mon Sep 17 00:00:00 2001 |
| 2 | From: Nagaraju <nmekala@xilinx.com> | 2 | From: Nagaraju <nmekala@xilinx.com> |
| 3 | Date: Thu, 14 Mar 2019 18:11:04 +0530 | 3 | Date: Thu, 14 Mar 2019 18:11:04 +0530 |
| 4 | Subject: [PATCH 56/63] Fix the MB-64 bug of handling QI objects | 4 | Subject: [PATCH 50/58] Fix the MB-64 bug of handling QI objects |
| 5 | 5 | ||
| 6 | --- | 6 | --- |
| 7 | gcc/config/microblaze/microblaze.md | 14 +++++++------- | 7 | gcc/config/microblaze/microblaze.md | 14 +++++++------- |
| 8 | 1 file changed, 7 insertions(+), 7 deletions(-) | 8 | 1 file changed, 7 insertions(+), 7 deletions(-) |
| 9 | 9 | ||
| 10 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md | 10 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md |
| 11 | index a1dc41f..bb96e2d 100644 | 11 | index 5d277014e42..a1363935c42 100644 |
| 12 | --- a/gcc/config/microblaze/microblaze.md | 12 | --- a/gcc/config/microblaze/microblaze.md |
| 13 | +++ b/gcc/config/microblaze/microblaze.md | 13 | +++ b/gcc/config/microblaze/microblaze.md |
| 14 | @@ -2347,11 +2347,11 @@ else | 14 | @@ -2347,11 +2347,11 @@ else |
| @@ -43,5 +43,5 @@ index a1dc41f..bb96e2d 100644 | |||
| 43 | "TARGET_MB_64" | 43 | "TARGET_MB_64" |
| 44 | { | 44 | { |
| 45 | -- | 45 | -- |
| 46 | 2.7.4 | 46 | 2.17.1 |
| 47 | 47 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0057-Patch-Microblaze-We-will-check-the-possibility-of-pe.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0051-Patch-Microblaze-Check-the-possibiity-of-peephole2-o.patch index 940009de..6b7bb2a1 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0057-Patch-Microblaze-We-will-check-the-possibility-of-pe.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0051-Patch-Microblaze-Check-the-possibiity-of-peephole2-o.patch | |||
| @@ -1,15 +1,17 @@ | |||
| 1 | From 1387d4fedb397f78b08ad33204a3fcf2bd63f183 Mon Sep 17 00:00:00 2001 | 1 | From ed17f79b22769e5a256e3990715e32e943bfd929 Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Fri, 29 Mar 2019 12:08:39 +0530 | 3 | Date: Fri, 29 Mar 2019 12:08:39 +0530 |
| 4 | Subject: [PATCH 57/63] [Patch,Microblaze] : We will check the possibility of | 4 | Subject: [PATCH 51/58] [Patch,Microblaze] : Check the possibiity of peephole2 |
| 5 | peephole2 optimization,if we can then we will fix the compiler issue. | 5 | opt |
| 6 | 6 | ||
| 7 | We will check the possibility of peephole2 | ||
| 8 | optimization,if we can then we will fix the compiler issue. | ||
| 7 | --- | 9 | --- |
| 8 | gcc/config/microblaze/microblaze.md | 63 ++++++++++++++++++++++--------------- | 10 | gcc/config/microblaze/microblaze.md | 63 +++++++++++++++++------------ |
| 9 | 1 file changed, 38 insertions(+), 25 deletions(-) | 11 | 1 file changed, 38 insertions(+), 25 deletions(-) |
| 10 | 12 | ||
| 11 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md | 13 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md |
| 12 | index bb96e2d..830ef77 100644 | 14 | index a1363935c42..626eade9468 100644 |
| 13 | --- a/gcc/config/microblaze/microblaze.md | 15 | --- a/gcc/config/microblaze/microblaze.md |
| 14 | +++ b/gcc/config/microblaze/microblaze.md | 16 | +++ b/gcc/config/microblaze/microblaze.md |
| 15 | @@ -882,31 +882,44 @@ | 17 | @@ -882,31 +882,44 @@ |
| @@ -83,5 +85,5 @@ index bb96e2d..830ef77 100644 | |||
| 83 | ;;---------------------------------------------------------------- | 85 | ;;---------------------------------------------------------------- |
| 84 | ;; Negation and one's complement | 86 | ;; Negation and one's complement |
| 85 | -- | 87 | -- |
| 86 | 2.7.4 | 88 | 2.17.1 |
| 87 | 89 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0060-Patch-MicroBlaze-fixed-typos-in-mul-div-and-mod-asse.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0052-Patch-MicroBlaze-fixed-typos-in-mul-div-and-mod-asse.patch index 1548faad..45505cf1 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0060-Patch-MicroBlaze-fixed-typos-in-mul-div-and-mod-asse.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0052-Patch-MicroBlaze-fixed-typos-in-mul-div-and-mod-asse.patch | |||
| @@ -1,19 +1,19 @@ | |||
| 1 | From 80919b0f43b275e70521e4f85cd28bcd0ece3b80 Mon Sep 17 00:00:00 2001 | 1 | From d845981b381b0174d97dda8a78d82cf8fcae7ca1 Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Wed, 17 Apr 2019 12:36:16 +0530 | 3 | Date: Wed, 17 Apr 2019 12:36:16 +0530 |
| 4 | Subject: [PATCH 60/61] [Patch,MicroBlaze]: fixed typos in mul,div and mod | 4 | Subject: [PATCH 52/58] [Patch,MicroBlaze]: fixed typos in mul,div and mod |
| 5 | assembly files. | 5 | assembly files. |
| 6 | 6 | ||
| 7 | --- | 7 | --- |
| 8 | libgcc/config/microblaze/divsi3.S | 47 ++++++++++++++++++++++++++---- | 8 | libgcc/config/microblaze/divsi3.S | 47 ++++++++++++++++++++---- |
| 9 | libgcc/config/microblaze/modsi3.S | 40 +++++++++++++++++++++++--- | 9 | libgcc/config/microblaze/modsi3.S | 40 ++++++++++++++++++--- |
| 10 | libgcc/config/microblaze/mulsi3.S | 33 +++++++++++++++++++++- | 10 | libgcc/config/microblaze/mulsi3.S | 33 ++++++++++++++++- |
| 11 | libgcc/config/microblaze/udivsi3.S | 54 +++++++++++++++++++++++++++++++---- | 11 | libgcc/config/microblaze/udivsi3.S | 54 +++++++++++++++++++++++++--- |
| 12 | libgcc/config/microblaze/umodsi3.S | 58 +++++++++++++++++++++++++++++++++++--- | 12 | libgcc/config/microblaze/umodsi3.S | 58 +++++++++++++++++++++++++++--- |
| 13 | 5 files changed, 212 insertions(+), 20 deletions(-) | 13 | 5 files changed, 212 insertions(+), 20 deletions(-) |
| 14 | 14 | ||
| 15 | diff --git a/libgcc/config/microblaze/divsi3.S b/libgcc/config/microblaze/divsi3.S | 15 | diff --git a/libgcc/config/microblaze/divsi3.S b/libgcc/config/microblaze/divsi3.S |
| 16 | index 7e7d875..cfb4c05 100644 | 16 | index 104243e35fe..5755e29fbb6 100644 |
| 17 | --- a/libgcc/config/microblaze/divsi3.S | 17 | --- a/libgcc/config/microblaze/divsi3.S |
| 18 | +++ b/libgcc/config/microblaze/divsi3.S | 18 | +++ b/libgcc/config/microblaze/divsi3.S |
| 19 | @@ -46,7 +46,7 @@ | 19 | @@ -46,7 +46,7 @@ |
| @@ -107,7 +107,7 @@ index 7e7d875..cfb4c05 100644 | |||
| 107 | $LaDiv_By_Zero: | 107 | $LaDiv_By_Zero: |
| 108 | $LaResult_Is_Zero: | 108 | $LaResult_Is_Zero: |
| 109 | diff --git a/libgcc/config/microblaze/modsi3.S b/libgcc/config/microblaze/modsi3.S | 109 | diff --git a/libgcc/config/microblaze/modsi3.S b/libgcc/config/microblaze/modsi3.S |
| 110 | index 46ff34a..49618dd 100644 | 110 | index 4dbb25900d9..b6129f5e822 100644 |
| 111 | --- a/libgcc/config/microblaze/modsi3.S | 111 | --- a/libgcc/config/microblaze/modsi3.S |
| 112 | +++ b/libgcc/config/microblaze/modsi3.S | 112 | +++ b/libgcc/config/microblaze/modsi3.S |
| 113 | @@ -62,40 +62,72 @@ __modsi3: | 113 | @@ -62,40 +62,72 @@ __modsi3: |
| @@ -196,7 +196,7 @@ index 46ff34a..49618dd 100644 | |||
| 196 | nop | 196 | nop |
| 197 | #else | 197 | #else |
| 198 | diff --git a/libgcc/config/microblaze/mulsi3.S b/libgcc/config/microblaze/mulsi3.S | 198 | diff --git a/libgcc/config/microblaze/mulsi3.S b/libgcc/config/microblaze/mulsi3.S |
| 199 | index 31a73c2..39951be 100644 | 199 | index 2044399db4a..95709d5bb01 100644 |
| 200 | --- a/libgcc/config/microblaze/mulsi3.S | 200 | --- a/libgcc/config/microblaze/mulsi3.S |
| 201 | +++ b/libgcc/config/microblaze/mulsi3.S | 201 | +++ b/libgcc/config/microblaze/mulsi3.S |
| 202 | @@ -43,7 +43,37 @@ | 202 | @@ -43,7 +43,37 @@ |
| @@ -246,7 +246,7 @@ index 31a73c2..39951be 100644 | |||
| 246 | .end __mulsi3 | 246 | .end __mulsi3 |
| 247 | .size __mulsi3, . - __mulsi3 | 247 | .size __mulsi3, . - __mulsi3 |
| 248 | diff --git a/libgcc/config/microblaze/udivsi3.S b/libgcc/config/microblaze/udivsi3.S | 248 | diff --git a/libgcc/config/microblaze/udivsi3.S b/libgcc/config/microblaze/udivsi3.S |
| 249 | index 94adb6a..d4fe285 100644 | 249 | index d2332bcfe62..687d5588801 100644 |
| 250 | --- a/libgcc/config/microblaze/udivsi3.S | 250 | --- a/libgcc/config/microblaze/udivsi3.S |
| 251 | +++ b/libgcc/config/microblaze/udivsi3.S | 251 | +++ b/libgcc/config/microblaze/udivsi3.S |
| 252 | @@ -59,52 +59,96 @@ __udivsi3: | 252 | @@ -59,52 +59,96 @@ __udivsi3: |
| @@ -360,7 +360,7 @@ index 94adb6a..d4fe285 100644 | |||
| 360 | NOP | 360 | NOP |
| 361 | #else | 361 | #else |
| 362 | diff --git a/libgcc/config/microblaze/umodsi3.S b/libgcc/config/microblaze/umodsi3.S | 362 | diff --git a/libgcc/config/microblaze/umodsi3.S b/libgcc/config/microblaze/umodsi3.S |
| 363 | index 9bf65c3..3bd5d48 100644 | 363 | index 2dd72aef68e..59646ce437f 100644 |
| 364 | --- a/libgcc/config/microblaze/umodsi3.S | 364 | --- a/libgcc/config/microblaze/umodsi3.S |
| 365 | +++ b/libgcc/config/microblaze/umodsi3.S | 365 | +++ b/libgcc/config/microblaze/umodsi3.S |
| 366 | @@ -46,7 +46,7 @@ | 366 | @@ -46,7 +46,7 @@ |
| @@ -462,5 +462,5 @@ index 9bf65c3..3bd5d48 100644 | |||
| 462 | $LaRETURN_HERE: | 462 | $LaRETURN_HERE: |
| 463 | # Restore values of CSRs and that of r3 and the divisor and the dividend | 463 | # Restore values of CSRs and that of r3 and the divisor and the dividend |
| 464 | -- | 464 | -- |
| 465 | 2.7.4 | 465 | 2.17.1 |
| 466 | 466 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0060-Author-Nagaraju-nmekala-xilinx.com.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0053-Patch-microblaze-MB-64-removal-of-barrel-shift-instr.patch index 9f878669..8dce8476 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0060-Author-Nagaraju-nmekala-xilinx.com.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0053-Patch-microblaze-MB-64-removal-of-barrel-shift-instr.patch | |||
| @@ -1,25 +1,24 @@ | |||
| 1 | From f0332f119c3cbe95886dae77c4b5a9b9907b4b17 Mon Sep 17 00:00:00 2001 | 1 | From e3b95d5646d4197bff81105c12bcbc5e7dba1725 Mon Sep 17 00:00:00 2001 |
| 2 | From: Nagaraju <nmekala@xilinx.com> | 2 | From: Nagaraju <nmekala@xilinx.com> |
| 3 | Date: Thu, 18 Apr 2019 16:00:37 +0530 | 3 | Date: Thu, 18 Apr 2019 16:00:37 +0530 |
| 4 | Subject: [PATCH 60/63] Author: Nagaraju <nmekala@xilinx.com> Date: Wed Apr | 4 | Subject: [PATCH 53/58] [Patch, microblaze]: MB-64 removal of barrel-shift |
| 5 | 17 14:11:00 2019 +0530 | 5 | instructions from default |
| 6 | 6 | ||
| 7 | [Patch, microblaze]: MB-64 removal of barrel-shift instructions from default | 7 | By default MB-64 is generatting barrel-shift instructions. It has been |
| 8 | By default MB-64 is generatting barrel-shift instructions. It has been | 8 | removed from default. Barrel-shift instructions will be generated only if |
| 9 | removed from default. Barrel-shift instructions will be generated only if | 9 | barrel-shifter is enabled. Similarly to double instructions as well. |
| 10 | barrel-shifter is enabled. Similarly to double instructions as well. | ||
| 11 | 10 | ||
| 12 | Signed-off-by :Nagaraju Mekala <nmekala@xilix.com> | 11 | Signed-off-by :Nagaraju Mekala <nmekala@xilix.com> |
| 13 | --- | 12 | --- |
| 14 | gcc/config/microblaze/microblaze.c | 2 +- | 13 | gcc/config/microblaze/microblaze.c | 2 +- |
| 15 | gcc/config/microblaze/microblaze.md | 269 +++++++++++++++++++++++++++++++++--- | 14 | gcc/config/microblaze/microblaze.md | 269 ++++++++++++++++++++++++++-- |
| 16 | 2 files changed, 252 insertions(+), 19 deletions(-) | 15 | 2 files changed, 252 insertions(+), 19 deletions(-) |
| 17 | 16 | ||
| 18 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c | 17 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c |
| 19 | index 220e03d..5c09452 100644 | 18 | index 12b1da852dd..5b4c21af365 100644 |
| 20 | --- a/gcc/config/microblaze/microblaze.c | 19 | --- a/gcc/config/microblaze/microblaze.c |
| 21 | +++ b/gcc/config/microblaze/microblaze.c | 20 | +++ b/gcc/config/microblaze/microblaze.c |
| 22 | @@ -4008,7 +4008,7 @@ microblaze_expand_divide (rtx operands[]) | 21 | @@ -4000,7 +4000,7 @@ microblaze_expand_divide (rtx operands[]) |
| 23 | emit_insn (gen_rtx_CLOBBER (Pmode, reg18)); | 22 | emit_insn (gen_rtx_CLOBBER (Pmode, reg18)); |
| 24 | 23 | ||
| 25 | if (TARGET_MB_64) { | 24 | if (TARGET_MB_64) { |
| @@ -29,7 +28,7 @@ index 220e03d..5c09452 100644 | |||
| 29 | } | 28 | } |
| 30 | else { | 29 | else { |
| 31 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md | 30 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md |
| 32 | index 830ef77..3e7c647 100644 | 31 | index 626eade9468..6cc62666269 100644 |
| 33 | --- a/gcc/config/microblaze/microblaze.md | 32 | --- a/gcc/config/microblaze/microblaze.md |
| 34 | +++ b/gcc/config/microblaze/microblaze.md | 33 | +++ b/gcc/config/microblaze/microblaze.md |
| 35 | @@ -547,7 +547,7 @@ | 34 | @@ -547,7 +547,7 @@ |
| @@ -475,5 +474,5 @@ index 830ef77..3e7c647 100644 | |||
| 475 | [(set_attr "type" "arith") | 474 | [(set_attr "type" "arith") |
| 476 | (set_attr "mode" "DI") | 475 | (set_attr "mode" "DI") |
| 477 | -- | 476 | -- |
| 478 | 2.7.4 | 477 | 2.17.1 |
| 479 | 478 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0061-Patch-microblaze-Add-TARGET_OPTION_OPTIMIZATION-and-.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0054-Patch-microblaze-Add-TARGET_OPTION_OPTIMIZATION-and-.patch index d3ed669c..70e05117 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0061-Patch-microblaze-Add-TARGET_OPTION_OPTIMIZATION-and-.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0054-Patch-microblaze-Add-TARGET_OPTION_OPTIMIZATION-and-.patch | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | From 11766e4f7aaad3f217944079335c71525b72201c Mon Sep 17 00:00:00 2001 | 1 | From 6bdb6f300593c4a633a8ec485ac2744a97b51460 Mon Sep 17 00:00:00 2001 |
| 2 | From: Nagaraju <nmekala@xilinx.com> | 2 | From: Nagaraju <nmekala@xilinx.com> |
| 3 | Date: Wed, 8 May 2019 14:12:03 +0530 | 3 | Date: Wed, 8 May 2019 14:12:03 +0530 |
| 4 | Subject: [PATCH 61/63] [Patch, microblaze]: Add TARGET_OPTION_OPTIMIZATION and | 4 | Subject: [PATCH 54/58] [Patch, microblaze]: Add TARGET_OPTION_OPTIMIZATION and |
| 5 | disable fivopts by default | 5 | disable fivopts by default |
| 6 | 6 | ||
| 7 | Added TARGET_OPTION_OPTIMIZATIONS and Turn off ivopts by default. | 7 | Added TARGET_OPTION_OPTIMIZATIONS and Turn off ivopts by default. |
| @@ -15,7 +15,7 @@ Signed-off-by: Nagaraju Mekala <nmekala@xilinx.com> | |||
| 15 | 1 file changed, 4 insertions(+), 2 deletions(-) | 15 | 1 file changed, 4 insertions(+), 2 deletions(-) |
| 16 | 16 | ||
| 17 | diff --git a/gcc/common/config/microblaze/microblaze-common.c b/gcc/common/config/microblaze/microblaze-common.c | 17 | diff --git a/gcc/common/config/microblaze/microblaze-common.c b/gcc/common/config/microblaze/microblaze-common.c |
| 18 | index 9b6ef21..3cae2a6 100644 | 18 | index 0b9d5a1b453..cf2db8afe36 100644 |
| 19 | --- a/gcc/common/config/microblaze/microblaze-common.c | 19 | --- a/gcc/common/config/microblaze/microblaze-common.c |
| 20 | +++ b/gcc/common/config/microblaze/microblaze-common.c | 20 | +++ b/gcc/common/config/microblaze/microblaze-common.c |
| 21 | @@ -27,13 +27,15 @@ | 21 | @@ -27,13 +27,15 @@ |
| @@ -37,5 +37,5 @@ index 9b6ef21..3cae2a6 100644 | |||
| 37 | +#define TARGET_OPTION_OPTIMIZATION_TABLE microblaze_option_optimization_table | 37 | +#define TARGET_OPTION_OPTIMIZATION_TABLE microblaze_option_optimization_table |
| 38 | struct gcc_targetm_common targetm_common = TARGETM_COMMON_INITIALIZER; | 38 | struct gcc_targetm_common targetm_common = TARGETM_COMMON_INITIALIZER; |
| 39 | -- | 39 | -- |
| 40 | 2.7.4 | 40 | 2.17.1 |
| 41 | 41 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0062-Added-new-MB-64-single-register-arithmetic-instructi.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0055-Added-new-MB-64-single-register-arithmetic-instructi.patch index ca1a2b9f..4ab3cec9 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0062-Added-new-MB-64-single-register-arithmetic-instructi.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0055-Added-new-MB-64-single-register-arithmetic-instructi.patch | |||
| @@ -1,14 +1,14 @@ | |||
| 1 | From bb65903ab6293a47d154764a585f6c53b5fcf853 Mon Sep 17 00:00:00 2001 | 1 | From 3198a31122bb0436d298d29e986bb69bc3c526a9 Mon Sep 17 00:00:00 2001 |
| 2 | From: Nagaraju <nmekala@xilinx.com> | 2 | From: Nagaraju <nmekala@xilinx.com> |
| 3 | Date: Fri, 23 Aug 2019 16:16:53 +0530 | 3 | Date: Fri, 23 Aug 2019 16:16:53 +0530 |
| 4 | Subject: [PATCH 62/63] Added new MB-64 single register arithmetic instructions | 4 | Subject: [PATCH 55/58] Added new MB-64 single register arithmetic instructions |
| 5 | 5 | ||
| 6 | --- | 6 | --- |
| 7 | gcc/config/microblaze/microblaze.md | 56 +++++++++++++++++++++++++++++++++++++ | 7 | gcc/config/microblaze/microblaze.md | 56 +++++++++++++++++++++++++++++ |
| 8 | 1 file changed, 56 insertions(+) | 8 | 1 file changed, 56 insertions(+) |
| 9 | 9 | ||
| 10 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md | 10 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md |
| 11 | index 3e7c647..4d40cc5 100644 | 11 | index 6cc62666269..696be7b300f 100644 |
| 12 | --- a/gcc/config/microblaze/microblaze.md | 12 | --- a/gcc/config/microblaze/microblaze.md |
| 13 | +++ b/gcc/config/microblaze/microblaze.md | 13 | +++ b/gcc/config/microblaze/microblaze.md |
| 14 | @@ -654,6 +654,18 @@ | 14 | @@ -654,6 +654,18 @@ |
| @@ -103,5 +103,5 @@ index 3e7c647..4d40cc5 100644 | |||
| 103 | [(set (match_operand:DI 0 "register_operand" "=d,d") | 103 | [(set (match_operand:DI 0 "register_operand" "=d,d") |
| 104 | (xor:DI (match_operand:DI 1 "arith_operand" "%d,d") | 104 | (xor:DI (match_operand:DI 1 "arith_operand" "%d,d") |
| 105 | -- | 105 | -- |
| 106 | 2.7.4 | 106 | 2.17.1 |
| 107 | 107 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0055-microblaze_linker_script_xilinx_ld.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0055-microblaze_linker_script_xilinx_ld.patch deleted file mode 100644 index c009c92d..00000000 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0055-microblaze_linker_script_xilinx_ld.patch +++ /dev/null | |||
| @@ -1,16 +0,0 @@ | |||
| 1 | diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h | ||
| 2 | index 740b8d9..4bda9c2 100644 | ||
| 3 | --- a/gcc/config/microblaze/microblaze.h | ||
| 4 | +++ b/gcc/config/microblaze/microblaze.h | ||
| 5 | @@ -114,8 +114,9 @@ extern enum pipeline_type microblaze_pipe; | ||
| 6 | %{m64:-EL --oformat=elf64-microblazeel} \ | ||
| 7 | %{Zxl-mode-xmdstub:-defsym _TEXT_START_ADDR=0x800} \ | ||
| 8 | %{mxl-mode-xmdstub:-defsym _TEXT_START_ADDR=0x800} \ | ||
| 9 | - %{mxl-gp-opt:%{G*}} %{!mxl-gp-opt: -G 0} \ | ||
| 10 | - %{!T*: -dT xilinx.ld%s}" | ||
| 11 | + %{mxl-gp-opt:%{G*}} %{!mxl-gp-opt: -G 0}" | ||
| 12 | + | ||
| 13 | +// %{!T*: -dT xilinx.ld%s}" | ||
| 14 | |||
| 15 | /* Specs for the compiler proper */ | ||
| 16 | |||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0063-Patch-MicroBlaze-Added-support-for-64-bit-Immediate-.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0056-Patch-MicroBlaze-Added-support-for-64-bit-Immediate-.patch index edf6a0f3..afe3ae96 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0063-Patch-MicroBlaze-Added-support-for-64-bit-Immediate-.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0056-Patch-MicroBlaze-Added-support-for-64-bit-Immediate-.patch | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | From d4b23a1dd0564bcf67b5b88a68d62eb49bdab15d Mon Sep 17 00:00:00 2001 | 1 | From 1dadde6d9a49010a495529c9b5ea6c2bb75cc5f1 Mon Sep 17 00:00:00 2001 |
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> |
| 3 | Date: Mon, 26 Aug 2019 15:55:22 +0530 | 3 | Date: Mon, 26 Aug 2019 15:55:22 +0530 |
| 4 | Subject: [PATCH 63/63] [Patch,MicroBlaze] : Added support for 64 bit Immediate | 4 | Subject: [PATCH 56/58] [Patch,MicroBlaze] : Added support for 64 bit Immediate |
| 5 | values. | 5 | values. |
| 6 | 6 | ||
| 7 | --- | 7 | --- |
| @@ -10,7 +10,7 @@ Subject: [PATCH 63/63] [Patch,MicroBlaze] : Added support for 64 bit Immediate | |||
| 10 | 2 files changed, 3 insertions(+), 4 deletions(-) | 10 | 2 files changed, 3 insertions(+), 4 deletions(-) |
| 11 | 11 | ||
| 12 | diff --git a/gcc/config/microblaze/constraints.md b/gcc/config/microblaze/constraints.md | 12 | diff --git a/gcc/config/microblaze/constraints.md b/gcc/config/microblaze/constraints.md |
| 13 | index 9a5aa6b..e87a90f 100644 | 13 | index 4a6cf419671..2432b480a2c 100644 |
| 14 | --- a/gcc/config/microblaze/constraints.md | 14 | --- a/gcc/config/microblaze/constraints.md |
| 15 | +++ b/gcc/config/microblaze/constraints.md | 15 | +++ b/gcc/config/microblaze/constraints.md |
| 16 | @@ -53,9 +53,9 @@ | 16 | @@ -53,9 +53,9 @@ |
| @@ -26,7 +26,7 @@ index 9a5aa6b..e87a90f 100644 | |||
| 26 | ;; Define floating point constraints | 26 | ;; Define floating point constraints |
| 27 | 27 | ||
| 28 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md | 28 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md |
| 29 | index 4d40cc5..6e74503 100644 | 29 | index 696be7b300f..f0a9701ab18 100644 |
| 30 | --- a/gcc/config/microblaze/microblaze.md | 30 | --- a/gcc/config/microblaze/microblaze.md |
| 31 | +++ b/gcc/config/microblaze/microblaze.md | 31 | +++ b/gcc/config/microblaze/microblaze.md |
| 32 | @@ -1334,8 +1334,7 @@ | 32 | @@ -1334,8 +1334,7 @@ |
| @@ -40,5 +40,5 @@ index 4d40cc5..6e74503 100644 | |||
| 40 | addlk\t%0,r0,r0\t | 40 | addlk\t%0,r0,r0\t |
| 41 | addlik\t%0,r0,%1\t #N1 %X1 | 41 | addlik\t%0,r0,%1\t #N1 %X1 |
| 42 | -- | 42 | -- |
| 43 | 2.7.4 | 43 | 2.17.1 |
| 44 | 44 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0056-fix-the-lto-wrapper-issue-on-windows.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0056-fix-the-lto-wrapper-issue-on-windows.patch deleted file mode 100644 index ff524770..00000000 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0056-fix-the-lto-wrapper-issue-on-windows.patch +++ /dev/null | |||
| @@ -1,36 +0,0 @@ | |||
| 1 | From f30b99b5b8d3f2a8d8e4973cd155a4b9f1849039 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Nagaraju <nmekala@xilinx.com> | ||
| 3 | Date: Thu, 14 Mar 2019 18:08:06 +0530 | ||
| 4 | Subject: [PATCH 56/57] fix the lto-wrapper issue on windows | ||
| 5 | |||
| 6 | --- | ||
| 7 | libiberty/simple-object.c | 6 +++++- | ||
| 8 | 1 file changed, 5 insertions(+), 1 deletion(-) | ||
| 9 | |||
| 10 | diff --git a/libiberty/simple-object.c b/libiberty/simple-object.c | ||
| 11 | index 42aa6ac..d2465c6 100644 | ||
| 12 | --- a/libiberty/simple-object.c | ||
| 13 | +++ b/libiberty/simple-object.c | ||
| 14 | @@ -44,6 +44,10 @@ Boston, MA 02110-1301, USA. */ | ||
| 15 | #define SEEK_SET 0 | ||
| 16 | #endif | ||
| 17 | |||
| 18 | +#ifndef O_BINARY | ||
| 19 | +#define O_BINARY 0 | ||
| 20 | +#endif | ||
| 21 | + | ||
| 22 | #include "simple-object-common.h" | ||
| 23 | |||
| 24 | /* The known object file formats. */ | ||
| 25 | @@ -326,7 +330,7 @@ simple_object_copy_lto_debug_sections (simple_object_read *sobj, | ||
| 26 | return errmsg; | ||
| 27 | } | ||
| 28 | |||
| 29 | - outfd = creat (dest, 00777); | ||
| 30 | + outfd = open (dest, O_CREAT|O_WRONLY|O_TRUNC|O_BINARY, 00777); | ||
| 31 | if (outfd == -1) | ||
| 32 | { | ||
| 33 | *err = errno; | ||
| 34 | -- | ||
| 35 | 2.7.4 | ||
| 36 | |||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0057-Fix-the-MB-64-bug-of-handling-QI-objects.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0057-Fix-the-MB-64-bug-of-handling-QI-objects.patch deleted file mode 100644 index a5a2039d..00000000 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0057-Fix-the-MB-64-bug-of-handling-QI-objects.patch +++ /dev/null | |||
| @@ -1,47 +0,0 @@ | |||
| 1 | From 6c58973f1cc1e37773aeab583aa3ac6331489106 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Nagaraju <nmekala@xilinx.com> | ||
| 3 | Date: Thu, 14 Mar 2019 18:11:04 +0530 | ||
| 4 | Subject: [PATCH 57/57] Fix the MB-64 bug of handling QI objects | ||
| 5 | |||
| 6 | --- | ||
| 7 | gcc/config/microblaze/microblaze.md | 14 +++++++------- | ||
| 8 | 1 file changed, 7 insertions(+), 7 deletions(-) | ||
| 9 | |||
| 10 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md | ||
| 11 | index e03b835..88aee9e 100644 | ||
| 12 | --- a/gcc/config/microblaze/microblaze.md | ||
| 13 | +++ b/gcc/config/microblaze/microblaze.md | ||
| 14 | @@ -2345,11 +2345,11 @@ else | ||
| 15 | |||
| 16 | (define_insn "branch_zero_64" | ||
| 17 | [(set (pc) | ||
| 18 | - (if_then_else (match_operator:SI 0 "ordered_comparison_operator" | ||
| 19 | + (if_then_else (match_operator 0 "ordered_comparison_operator" | ||
| 20 | [(match_operand:SI 1 "register_operand" "d") | ||
| 21 | (const_int 0)]) | ||
| 22 | - (match_operand:SI 2 "pc_or_label_operand" "") | ||
| 23 | - (match_operand:SI 3 "pc_or_label_operand" ""))) | ||
| 24 | + (match_operand 2 "pc_or_label_operand" "") | ||
| 25 | + (match_operand 3 "pc_or_label_operand" ""))) | ||
| 26 | ] | ||
| 27 | "TARGET_MB_64" | ||
| 28 | { | ||
| 29 | @@ -2365,11 +2365,11 @@ else | ||
| 30 | |||
| 31 | (define_insn "long_branch_zero" | ||
| 32 | [(set (pc) | ||
| 33 | - (if_then_else (match_operator 0 "ordered_comparison_operator" | ||
| 34 | - [(match_operand 1 "register_operand" "d") | ||
| 35 | + (if_then_else (match_operator:DI 0 "ordered_comparison_operator" | ||
| 36 | + [(match_operand:DI 1 "register_operand" "d") | ||
| 37 | (const_int 0)]) | ||
| 38 | - (match_operand 2 "pc_or_label_operand" "") | ||
| 39 | - (match_operand 3 "pc_or_label_operand" ""))) | ||
| 40 | + (match_operand:DI 2 "pc_or_label_operand" "") | ||
| 41 | + (match_operand:DI 3 "pc_or_label_operand" ""))) | ||
| 42 | ] | ||
| 43 | "TARGET_MB_64" | ||
| 44 | { | ||
| 45 | -- | ||
| 46 | 2.7.4 | ||
| 47 | |||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0064-Patch-microblaze-Fix-Compiler-crash-with-freg-struct.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0057-Patch-microblaze-Fix-Compiler-crash-with-freg-struct.patch index 41c90353..ebd707c9 100644 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0064-Patch-microblaze-Fix-Compiler-crash-with-freg-struct.patch +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0057-Patch-microblaze-Fix-Compiler-crash-with-freg-struct.patch | |||
| @@ -1,23 +1,32 @@ | |||
| 1 | From 5f54efe1e7d9604b45ddddd510ce439477d0e94f Mon Sep 17 00:00:00 2001 | 1 | From ab73daf6bf1bc652e9557386cba5eb237af66350 Mon Sep 17 00:00:00 2001 |
| 2 | From: Nagaraju <nmekala@xilinx.com> | 2 | From: Nagaraju <nmekala@xilinx.com> |
| 3 | Date: Thu, 9 Jan 2020 12:30:41 +0530 | 3 | Date: Thu, 9 Jan 2020 12:30:41 +0530 |
| 4 | Subject: [PATCH] [Patch, microblaze]: Fix Compiler crash with | 4 | Subject: [PATCH 57/58] [Patch, microblaze]: Fix Compiler crash with |
| 5 | -freg-struct-return This patch fixes a bug in MB GCC regarding the passing | 5 | -freg-struct-return This patch fixes a bug in MB GCC regarding the passing |
| 6 | struct values in registers. Currently we are only handling SImode With this | 6 | struct values in registers. Currently we are only handling SImode With this |
| 7 | patch all other modes are handled properly | 7 | patch all other modes are handled properly |
| 8 | 8 | ||
| 9 | Signed-off-by :Nagaraju Mekala <nmekala@xilix.com> | 9 | Signed-off-by :Nagaraju Mekala <nmekala@xilix.com> |
| 10 | 10 | ||
| 11 | ChangeLog: | ||
| 12 | 2020-01-09 Nagaraju Mekala <nmekala@xilix.com> | ||
| 13 | |||
| 14 | * gcc/config/microblaze/microblaze.h | ||
| 15 | (LIBCALL_Value): Remove macro | ||
| 16 | (PROMOTE_MODE): Remove macro | ||
| 17 | * gcc/config/microblaze/microblaze.c | ||
| 18 | (TARGET_LIBCALL_Value): Added new macro | ||
| 19 | (microblaze_function_value): Updated the return Value | ||
| 11 | --- | 20 | --- |
| 12 | gcc/config/microblaze/microblaze.c | 11 ++++++++++- | 21 | gcc/config/microblaze/microblaze.c | 11 ++++++++++- |
| 13 | gcc/config/microblaze/microblaze.h | 19 ------------------- | 22 | gcc/config/microblaze/microblaze.h | 19 ------------------- |
| 14 | 2 files changed, 10 insertions(+), 20 deletions(-) | 23 | 2 files changed, 10 insertions(+), 20 deletions(-) |
| 15 | 24 | ||
| 16 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c | 25 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c |
| 17 | index 5c09452..beccd12 100644 | 26 | index 5b4c21af365..31869982d27 100644 |
| 18 | --- a/gcc/config/microblaze/microblaze.c | 27 | --- a/gcc/config/microblaze/microblaze.c |
| 19 | +++ b/gcc/config/microblaze/microblaze.c | 28 | +++ b/gcc/config/microblaze/microblaze.c |
| 20 | @@ -4046,7 +4046,16 @@ microblaze_function_value (const_tree valtype, | 29 | @@ -4038,7 +4038,16 @@ microblaze_function_value (const_tree valtype, |
| 21 | const_tree func ATTRIBUTE_UNUSED, | 30 | const_tree func ATTRIBUTE_UNUSED, |
| 22 | bool outgoing ATTRIBUTE_UNUSED) | 31 | bool outgoing ATTRIBUTE_UNUSED) |
| 23 | { | 32 | { |
| @@ -36,7 +45,7 @@ index 5c09452..beccd12 100644 | |||
| 36 | 45 | ||
| 37 | /* Implement TARGET_SCHED_ADJUST_COST. */ | 46 | /* Implement TARGET_SCHED_ADJUST_COST. */ |
| 38 | diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h | 47 | diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h |
| 39 | index ab541f7..100e7b2 100644 | 48 | index 0c493b6f6e4..5eb95c2600a 100644 |
| 40 | --- a/gcc/config/microblaze/microblaze.h | 49 | --- a/gcc/config/microblaze/microblaze.h |
| 41 | +++ b/gcc/config/microblaze/microblaze.h | 50 | +++ b/gcc/config/microblaze/microblaze.h |
| 42 | @@ -266,13 +266,6 @@ extern enum pipeline_type microblaze_pipe; | 51 | @@ -266,13 +266,6 @@ extern enum pipeline_type microblaze_pipe; |
| @@ -73,5 +82,5 @@ index ab541f7..100e7b2 100644 | |||
| 73 | On the MicroBlaze, R2 R3 are the only register thus used. | 82 | On the MicroBlaze, R2 R3 are the only register thus used. |
| 74 | Currently, R2 are only implemented here (C has no complex type) */ | 83 | Currently, R2 are only implemented here (C has no complex type) */ |
| 75 | -- | 84 | -- |
| 76 | 1.8.3.1 | 85 | 2.17.1 |
| 77 | 86 | ||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0058-Patch-Microblaze-We-will-check-the-possibility-of-pe.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0058-Patch-Microblaze-We-will-check-the-possibility-of-pe.patch deleted file mode 100644 index 8bc47a43..00000000 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0058-Patch-Microblaze-We-will-check-the-possibility-of-pe.patch +++ /dev/null | |||
| @@ -1,87 +0,0 @@ | |||
| 1 | From bcbfd9f69d858306a080aa7213e96ca6eca66106 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | ||
| 3 | Date: Fri, 29 Mar 2019 12:08:39 +0530 | ||
| 4 | Subject: [PATCH 58/61] [Patch,Microblaze] : We will check the possibility of | ||
| 5 | peephole2 optimization,if we can then we will fix the compiler issue. | ||
| 6 | |||
| 7 | --- | ||
| 8 | gcc/config/microblaze/microblaze.md | 63 ++++++++++++++++++++++--------------- | ||
| 9 | 1 file changed, 38 insertions(+), 25 deletions(-) | ||
| 10 | |||
| 11 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md | ||
| 12 | index 88aee9e..8bd175f 100644 | ||
| 13 | --- a/gcc/config/microblaze/microblaze.md | ||
| 14 | +++ b/gcc/config/microblaze/microblaze.md | ||
| 15 | @@ -880,31 +880,44 @@ | ||
| 16 | (set_attr "mode" "SI") | ||
| 17 | (set_attr "length" "4")]) | ||
| 18 | |||
| 19 | -(define_peephole2 | ||
| 20 | - [(set (match_operand:SI 0 "register_operand") | ||
| 21 | - (fix:SI (match_operand:SF 1 "register_operand"))) | ||
| 22 | - (set (pc) | ||
| 23 | - (if_then_else (match_operator 2 "ordered_comparison_operator" | ||
| 24 | - [(match_operand:SI 3 "register_operand") | ||
| 25 | - (match_operand:SI 4 "arith_operand")]) | ||
| 26 | - (label_ref (match_operand 5)) | ||
| 27 | - (pc)))] | ||
| 28 | - "TARGET_HARD_FLOAT && !TARGET_MB_64" | ||
| 29 | - [(set (match_dup 1) (match_dup 3))] | ||
| 30 | - | ||
| 31 | - { | ||
| 32 | - rtx condition; | ||
| 33 | - rtx cmp_op0 = operands[3]; | ||
| 34 | - rtx cmp_op1 = operands[4]; | ||
| 35 | - rtx comp_reg = gen_rtx_REG (SImode, MB_ABI_ASM_TEMP_REGNUM); | ||
| 36 | - | ||
| 37 | - emit_insn (gen_cstoresf4 (comp_reg, operands[2], | ||
| 38 | - gen_rtx_REG (SFmode, REGNO (cmp_op0)), | ||
| 39 | - gen_rtx_REG (SFmode, REGNO (cmp_op1)))); | ||
| 40 | - condition = gen_rtx_NE (SImode, comp_reg, const0_rtx); | ||
| 41 | - emit_jump_insn (gen_condjump (condition, operands[5])); | ||
| 42 | - } | ||
| 43 | -) | ||
| 44 | +;; peephole2 optimization will be done only if fint and if-then-else | ||
| 45 | +;; are dependent.added condition for the same. | ||
| 46 | +;; if they are dependent then gcc is giving "flow control insn inside a basic block" | ||
| 47 | +;; testcase: | ||
| 48 | +;; volatile float vec = 1.0; | ||
| 49 | +;; volatile int ci = 2; | ||
| 50 | +;; register int cj = (int)(vec); | ||
| 51 | +;;// ci=cj; | ||
| 52 | +;;// if (ci <0) { | ||
| 53 | +;; if (cj < 0) { | ||
| 54 | +;; ci = 0; | ||
| 55 | +;; } | ||
| 56 | +;; commenting for now.we will check the possibility of this optimization later | ||
| 57 | + | ||
| 58 | +;;(define_peephole2 | ||
| 59 | +;; [(set (match_operand:SI 0 "register_operand") | ||
| 60 | +;; (fix:SI (match_operand:SF 1 "register_operand"))) | ||
| 61 | +;; (set (pc) | ||
| 62 | +;; (if_then_else (match_operator 2 "ordered_comparison_operator" | ||
| 63 | +;; [(match_operand:SI 3 "register_operand") | ||
| 64 | +;; (match_operand:SI 4 "arith_operand")]) | ||
| 65 | +;; (label_ref (match_operand 5)) | ||
| 66 | +;; (pc)))] | ||
| 67 | +;; "TARGET_HARD_FLOAT && !TARGET_MB_64 && ((REGNO (operands[0])) == (REGNO (operands[3])))" | ||
| 68 | +;; [(set (match_dup 1) (match_dup 3))] | ||
| 69 | +;; { | ||
| 70 | +;; rtx condition; | ||
| 71 | +;; rtx cmp_op0 = operands[3]; | ||
| 72 | +;; rtx cmp_op1 = operands[4]; | ||
| 73 | +;; rtx comp_reg = gen_rtx_REG (SImode, MB_ABI_ASM_TEMP_REGNUM); | ||
| 74 | +;; | ||
| 75 | +;; emit_insn (gen_cstoresf4 (comp_reg, operands[2], | ||
| 76 | +;; gen_rtx_REG (SFmode, REGNO (cmp_op0)), | ||
| 77 | +;; gen_rtx_REG (SFmode, REGNO (cmp_op1)))); | ||
| 78 | +;; condition = gen_rtx_NE (SImode, comp_reg, const0_rtx); | ||
| 79 | +;; emit_jump_insn (gen_condjump (condition, operands[5])); | ||
| 80 | +;; } | ||
| 81 | +;;) | ||
| 82 | |||
| 83 | ;;---------------------------------------------------------------- | ||
| 84 | ;; Negation and one's complement | ||
| 85 | -- | ||
| 86 | 2.7.4 | ||
| 87 | |||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0058-Reverting-the-patch-as-kernel-boot-is-not-working-wi.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0058-Reverting-the-patch-as-kernel-boot-is-not-working-wi.patch deleted file mode 100644 index 69b49898..00000000 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0058-Reverting-the-patch-as-kernel-boot-is-not-working-wi.patch +++ /dev/null | |||
| @@ -1,51 +0,0 @@ | |||
| 1 | From 8e7d7f3d2e103c34bbb28afe1338107b9fd824f0 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | ||
| 3 | Date: Tue, 16 Apr 2019 17:20:24 +0530 | ||
| 4 | Subject: [PATCH 58/63] Reverting the patch as kernel boot is not working with | ||
| 5 | this patch CR-1026413 Revert "[Patch,Microblaze]:reverting the cost check | ||
| 6 | before propagating constants." | ||
| 7 | |||
| 8 | This reverts commit 7156e379a67fa47a5fb9ede1448c0d528dbda65b. | ||
| 9 | --- | ||
| 10 | gcc/cprop.c | 4 ---- | ||
| 11 | 1 file changed, 4 deletions(-) | ||
| 12 | |||
| 13 | diff --git a/gcc/cprop.c b/gcc/cprop.c | ||
| 14 | index 42bcc81..65c0130 100644 | ||
| 15 | --- a/gcc/cprop.c | ||
| 16 | +++ b/gcc/cprop.c | ||
| 17 | @@ -733,7 +733,6 @@ try_replace_reg (rtx from, rtx to, rtx_insn *insn) | ||
| 18 | int success = 0; | ||
| 19 | rtx set = single_set (insn); | ||
| 20 | |||
| 21 | -#if 0 | ||
| 22 | bool check_rtx_costs = true; | ||
| 23 | bool speed = optimize_bb_for_speed_p (BLOCK_FOR_INSN (insn)); | ||
| 24 | int old_cost = set ? set_rtx_cost (set, speed) : 0; | ||
| 25 | @@ -745,7 +744,6 @@ try_replace_reg (rtx from, rtx to, rtx_insn *insn) | ||
| 26 | && (GET_CODE (XEXP (note, 0)) == CONST | ||
| 27 | || CONSTANT_P (XEXP (note, 0))))) | ||
| 28 | check_rtx_costs = false; | ||
| 29 | -#endif | ||
| 30 | |||
| 31 | /* Usually we substitute easy stuff, so we won't copy everything. | ||
| 32 | We however need to take care to not duplicate non-trivial CONST | ||
| 33 | @@ -754,7 +752,6 @@ try_replace_reg (rtx from, rtx to, rtx_insn *insn) | ||
| 34 | |||
| 35 | validate_replace_src_group (from, to, insn); | ||
| 36 | |||
| 37 | -#if 0 | ||
| 38 | /* If TO is a constant, check the cost of the set after propagation | ||
| 39 | to the cost of the set before the propagation. If the cost is | ||
| 40 | higher, then do not replace FROM with TO. */ | ||
| 41 | @@ -767,7 +764,6 @@ try_replace_reg (rtx from, rtx to, rtx_insn *insn) | ||
| 42 | return false; | ||
| 43 | } | ||
| 44 | |||
| 45 | -#endif | ||
| 46 | |||
| 47 | if (num_changes_pending () && apply_change_group ()) | ||
| 48 | success = 1; | ||
| 49 | -- | ||
| 50 | 2.7.4 | ||
| 51 | |||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0058-microblaze-Avoid-UINTPTR_TYPE-macro-redefinition.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0058-microblaze-Avoid-UINTPTR_TYPE-macro-redefinition.patch new file mode 100644 index 00000000..e3c4b87b --- /dev/null +++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0058-microblaze-Avoid-UINTPTR_TYPE-macro-redefinition.patch | |||
| @@ -0,0 +1,29 @@ | |||
| 1 | From dd73d8ba32c0c24f17a54538b9bb54beb5d8d4e0 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Mark Hatle <mark.hatle@kernel.crashing.org> | ||
| 3 | Date: Thu, 13 Aug 2020 16:28:57 -0500 | ||
| 4 | Subject: [PATCH 58/58] microblaze: Avoid UINTPTR_TYPE macro redefinition | ||
| 5 | |||
| 6 | Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org> | ||
| 7 | --- | ||
| 8 | gcc/config/microblaze/microblaze.h | 5 ----- | ||
| 9 | 1 file changed, 5 deletions(-) | ||
| 10 | |||
| 11 | diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h | ||
| 12 | index 5eb95c2600a..4cb98bac849 100644 | ||
| 13 | --- a/gcc/config/microblaze/microblaze.h | ||
| 14 | +++ b/gcc/config/microblaze/microblaze.h | ||
| 15 | @@ -246,11 +246,6 @@ extern enum pipeline_type microblaze_pipe; | ||
| 16 | #undef PTRDIFF_TYPE | ||
| 17 | #define PTRDIFF_TYPE (TARGET_MB_64 ? "long int" : "int") | ||
| 18 | |||
| 19 | -/*#undef INTPTR_TYPE | ||
| 20 | -#define INTPTR_TYPE (TARGET_MB_64 ? "long int" : "int")*/ | ||
| 21 | -#undef UINTPTR_TYPE | ||
| 22 | -#define UINTPTR_TYPE (TARGET_MB_64 ? "long unsigned int" : "unsigned int") | ||
| 23 | - | ||
| 24 | #define DATA_ALIGNMENT(TYPE, ALIGN) \ | ||
| 25 | ((((ALIGN) < BITS_PER_WORD) \ | ||
| 26 | && (TREE_CODE (TYPE) == ARRAY_TYPE \ | ||
| 27 | -- | ||
| 28 | 2.17.1 | ||
| 29 | |||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0059-Patch-MicroBlaze-fixed-typos-in-mul-div-and-mod-asse.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0059-Patch-MicroBlaze-fixed-typos-in-mul-div-and-mod-asse.patch deleted file mode 100644 index 2e570330..00000000 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0059-Patch-MicroBlaze-fixed-typos-in-mul-div-and-mod-asse.patch +++ /dev/null | |||
| @@ -1,466 +0,0 @@ | |||
| 1 | From e1a10a708f209704a3921cf66dd3ff4d0814befc Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | ||
| 3 | Date: Wed, 17 Apr 2019 12:36:16 +0530 | ||
| 4 | Subject: [PATCH 59/63] [Patch,MicroBlaze]: fixed typos in mul,div and mod | ||
| 5 | assembly files. | ||
| 6 | |||
| 7 | --- | ||
| 8 | libgcc/config/microblaze/divsi3.S | 47 ++++++++++++++++++++++++++---- | ||
| 9 | libgcc/config/microblaze/modsi3.S | 40 +++++++++++++++++++++++--- | ||
| 10 | libgcc/config/microblaze/mulsi3.S | 33 +++++++++++++++++++++- | ||
| 11 | libgcc/config/microblaze/udivsi3.S | 54 +++++++++++++++++++++++++++++++---- | ||
| 12 | libgcc/config/microblaze/umodsi3.S | 58 +++++++++++++++++++++++++++++++++++--- | ||
| 13 | 5 files changed, 212 insertions(+), 20 deletions(-) | ||
| 14 | |||
| 15 | diff --git a/libgcc/config/microblaze/divsi3.S b/libgcc/config/microblaze/divsi3.S | ||
| 16 | index 2765e42..bd56522 100644 | ||
| 17 | --- a/libgcc/config/microblaze/divsi3.S | ||
| 18 | +++ b/libgcc/config/microblaze/divsi3.S | ||
| 19 | @@ -46,7 +46,7 @@ | ||
| 20 | __divsi3: | ||
| 21 | .frame r1,0,r15 | ||
| 22 | |||
| 23 | - ADDIK r1,r1,-32 | ||
| 24 | + ADDLIK r1,r1,-32 | ||
| 25 | SLI r28,r1,0 | ||
| 26 | SLI r29,r1,8 | ||
| 27 | SLI r30,r1,16 | ||
| 28 | @@ -61,13 +61,23 @@ __divsi3: | ||
| 29 | SWI r30,r1,8 | ||
| 30 | SWI r31,r1,12 | ||
| 31 | #endif | ||
| 32 | - BEQI r6,$LaDiv_By_Zero # Div_by_Zero # Division Error | ||
| 33 | - BEQI r5,$LaResult_Is_Zero # Result is Zero | ||
| 34 | - BGEID r5,$LaR5_Pos | ||
| 35 | +#ifdef __arch64__ | ||
| 36 | + BEAEQI r6,$LaDiv_By_Zero # Div_by_Zero # Division Error | ||
| 37 | + BEAEQI r5,$LaResult_Is_Zero # Result is Zero | ||
| 38 | + BEAGEID r5,$LaR5_Pos | ||
| 39 | +#else | ||
| 40 | + BEQI r6,$LaDiv_By_Zero # Div_by_Zero # Division Error | ||
| 41 | + BEQI r5,$LaResult_Is_Zero # Result is Zero | ||
| 42 | + BGEID r5,$LaR5_Pos | ||
| 43 | +#endif | ||
| 44 | XOR r28,r5,r6 # Get the sign of the result | ||
| 45 | RSUBI r5,r5,0 # Make r5 positive | ||
| 46 | $LaR5_Pos: | ||
| 47 | - BGEI r6,$LaR6_Pos | ||
| 48 | +#ifdef __arch64__ | ||
| 49 | + BEAGEI r6,$LaR6_Pos | ||
| 50 | +#else | ||
| 51 | + BGEI r6,$LaR6_Pos | ||
| 52 | +#endif | ||
| 53 | RSUBI r6,r6,0 # Make r6 positive | ||
| 54 | $LaR6_Pos: | ||
| 55 | ADDIK r30,r0,0 # Clear mod | ||
| 56 | @@ -76,26 +86,51 @@ $LaR6_Pos: | ||
| 57 | |||
| 58 | # First part try to find the first '1' in the r5 | ||
| 59 | $LaDIV0: | ||
| 60 | - BLTI r5,$LaDIV2 # This traps r5 == 0x80000000 | ||
| 61 | +#ifdef __arch64__ | ||
| 62 | + BEALTI r5,$LaDIV2 # This traps r5 == 0x80000000 | ||
| 63 | +#else | ||
| 64 | + BLTI r5,$LaDIV2 # This traps r5 == 0x80000000 | ||
| 65 | +#endif | ||
| 66 | $LaDIV1: | ||
| 67 | ADD r5,r5,r5 # left shift logical r5 | ||
| 68 | +#ifdef __arch64__ | ||
| 69 | + BEAGTID r5,$LaDIV1 | ||
| 70 | +#else | ||
| 71 | BGTID r5,$LaDIV1 | ||
| 72 | +#endif | ||
| 73 | ADDIK r29,r29,-1 | ||
| 74 | $LaDIV2: | ||
| 75 | ADD r5,r5,r5 # left shift logical r5 get the '1' into the Carry | ||
| 76 | ADDC r30,r30,r30 # Move that bit into the Mod register | ||
| 77 | RSUB r31,r6,r30 # Try to subtract (r30 a r6) | ||
| 78 | +#ifdef __arch64__ | ||
| 79 | + BEALTI r31,$LaMOD_TOO_SMALL | ||
| 80 | +#else | ||
| 81 | BLTI r31,$LaMOD_TOO_SMALL | ||
| 82 | +#endif | ||
| 83 | OR r30,r0,r31 # Move the r31 to mod since the result was positive | ||
| 84 | ADDIK r3,r3,1 | ||
| 85 | $LaMOD_TOO_SMALL: | ||
| 86 | ADDIK r29,r29,-1 | ||
| 87 | +#ifdef __arch64__ | ||
| 88 | + BEAEQi r29,$LaLOOP_END | ||
| 89 | +#else | ||
| 90 | BEQi r29,$LaLOOP_END | ||
| 91 | +#endif | ||
| 92 | ADD r3,r3,r3 # Shift in the '1' into div | ||
| 93 | +#ifdef __arch64__ | ||
| 94 | + BREAI $LaDIV2 # Div2 | ||
| 95 | +#else | ||
| 96 | BRI $LaDIV2 # Div2 | ||
| 97 | +#endif | ||
| 98 | $LaLOOP_END: | ||
| 99 | +#ifdef __arch64__ | ||
| 100 | + BEAGEI r28,$LaRETURN_HERE | ||
| 101 | + BREAID $LaRETURN_HERE | ||
| 102 | +#else | ||
| 103 | BGEI r28,$LaRETURN_HERE | ||
| 104 | BRID $LaRETURN_HERE | ||
| 105 | +#endif | ||
| 106 | RSUBI r3,r3,0 # Negate the result | ||
| 107 | $LaDiv_By_Zero: | ||
| 108 | $LaResult_Is_Zero: | ||
| 109 | diff --git a/libgcc/config/microblaze/modsi3.S b/libgcc/config/microblaze/modsi3.S | ||
| 110 | index b0e6cad..3632fad 100644 | ||
| 111 | --- a/libgcc/config/microblaze/modsi3.S | ||
| 112 | +++ b/libgcc/config/microblaze/modsi3.S | ||
| 113 | @@ -62,40 +62,72 @@ __modsi3: | ||
| 114 | swi r31,r1,12 | ||
| 115 | #endif | ||
| 116 | |||
| 117 | +#ifdef __arch64__ | ||
| 118 | + BEAEQI r6,$LaDiv_By_Zero # Div_by_Zero # Division Error | ||
| 119 | + BEAEQI r5,$LaResult_Is_Zero # Result is Zero | ||
| 120 | + BEAGEId r5,$LaR5_Pos | ||
| 121 | +#else | ||
| 122 | BEQI r6,$LaDiv_By_Zero # Div_by_Zero # Division Error | ||
| 123 | BEQI r5,$LaResult_Is_Zero # Result is Zero | ||
| 124 | BGEId r5,$LaR5_Pos | ||
| 125 | +#endif | ||
| 126 | ADD r28,r5,r0 # Get the sign of the result [ Depends only on the first arg] | ||
| 127 | RSUBI r5,r5,0 # Make r5 positive | ||
| 128 | $LaR5_Pos: | ||
| 129 | - BGEI r6,$LaR6_Pos | ||
| 130 | +#ifdef __arch64__ | ||
| 131 | + BEAGEI r6,$LaR6_Pos | ||
| 132 | +#else | ||
| 133 | + BGEI r6,$LaR6_Pos | ||
| 134 | +#endif | ||
| 135 | RSUBI r6,r6,0 # Make r6 positive | ||
| 136 | $LaR6_Pos: | ||
| 137 | ADDIK r3,r0,0 # Clear mod | ||
| 138 | ADDIK r30,r0,0 # clear div | ||
| 139 | - BLTId r5,$LaDIV2 # If r5 is still negative (0x80000000), skip | ||
| 140 | +#ifdef __arch64__ | ||
| 141 | + BEALTId r5,$LaDIV2 # If r5 is still negative (0x80000000), skip | ||
| 142 | # the first bit search. | ||
| 143 | +#else | ||
| 144 | + BLTId r5,$LaDIV2 # If r5 is still negative (0x80000000), skip | ||
| 145 | + # the first bit search. | ||
| 146 | +#endif | ||
| 147 | ADDIK r29,r0,32 # Initialize the loop count | ||
| 148 | # First part try to find the first '1' in the r5 | ||
| 149 | $LaDIV1: | ||
| 150 | ADD r5,r5,r5 # left shift logical r5 | ||
| 151 | - BGEID r5,$LaDIV1 # | ||
| 152 | +#ifdef __arch64__ | ||
| 153 | + BEAGEID r5,$LaDIV1 # | ||
| 154 | +#else | ||
| 155 | + BGEID r5,$LaDIV1 # | ||
| 156 | +#endif | ||
| 157 | ADDIK r29,r29,-1 | ||
| 158 | $LaDIV2: | ||
| 159 | ADD r5,r5,r5 # left shift logical r5 get the '1' into the Carry | ||
| 160 | ADDC r3,r3,r3 # Move that bit into the Mod register | ||
| 161 | rSUB r31,r6,r3 # Try to subtract (r30 a r6) | ||
| 162 | +#ifdef __arch64__ | ||
| 163 | + BEALTi r31,$LaMOD_TOO_SMALL | ||
| 164 | +#else | ||
| 165 | BLTi r31,$LaMOD_TOO_SMALL | ||
| 166 | +#endif | ||
| 167 | OR r3,r0,r31 # Move the r31 to mod since the result was positive | ||
| 168 | ADDIK r30,r30,1 | ||
| 169 | $LaMOD_TOO_SMALL: | ||
| 170 | ADDIK r29,r29,-1 | ||
| 171 | +#ifdef __arch64__ | ||
| 172 | + BEAEQi r29,$LaLOOP_END | ||
| 173 | + ADD r30,r30,r30 # Shift in the '1' into div | ||
| 174 | + BREAI $LaDIV2 # Div2 | ||
| 175 | +$LaLOOP_END: | ||
| 176 | + BEAGEI r28,$LaRETURN_HERE | ||
| 177 | + BREAId $LaRETURN_HERE | ||
| 178 | +#else | ||
| 179 | BEQi r29,$LaLOOP_END | ||
| 180 | ADD r30,r30,r30 # Shift in the '1' into div | ||
| 181 | BRI $LaDIV2 # Div2 | ||
| 182 | $LaLOOP_END: | ||
| 183 | BGEI r28,$LaRETURN_HERE | ||
| 184 | BRId $LaRETURN_HERE | ||
| 185 | +#endif | ||
| 186 | rsubi r3,r3,0 # Negate the result | ||
| 187 | $LaDiv_By_Zero: | ||
| 188 | $LaResult_Is_Zero: | ||
| 189 | @@ -108,7 +140,7 @@ $LaRETURN_HERE: | ||
| 190 | lli r29,r1,8 | ||
| 191 | lli r30,r1,16 | ||
| 192 | lli r31,r1,24 | ||
| 193 | - addik r1,r1,32 | ||
| 194 | + addlik r1,r1,32 | ||
| 195 | rtsd r15,8 | ||
| 196 | nop | ||
| 197 | #else | ||
| 198 | diff --git a/libgcc/config/microblaze/mulsi3.S b/libgcc/config/microblaze/mulsi3.S | ||
| 199 | index e28c69a..991dbcd 100644 | ||
| 200 | --- a/libgcc/config/microblaze/mulsi3.S | ||
| 201 | +++ b/libgcc/config/microblaze/mulsi3.S | ||
| 202 | @@ -43,7 +43,37 @@ | ||
| 203 | .type __mulsi3,@function | ||
| 204 | #ifdef __arch64__ | ||
| 205 | .align 3 | ||
| 206 | -#endif | ||
| 207 | +__mulsi3: | ||
| 208 | + .frame r1,0,r15 | ||
| 209 | + add r3,r0,r0 | ||
| 210 | + BEAEQI r5,$L_Result_Is_Zero # Multiply by Zero | ||
| 211 | + BEAEQI r6,$L_Result_Is_Zero # Multiply by Zero | ||
| 212 | + BEAGEId r5,$L_R5_Pos | ||
| 213 | + XOR r4,r5,r6 # Get the sign of the result | ||
| 214 | + RSUBI r5,r5,0 # Make r5 positive | ||
| 215 | +$L_R5_Pos: | ||
| 216 | + BEAGEI r6,$L_R6_Pos | ||
| 217 | + RSUBI r6,r6,0 # Make r6 positive | ||
| 218 | +$L_R6_Pos: | ||
| 219 | + breai $L1 | ||
| 220 | +$L2: | ||
| 221 | + add r5,r5,r5 | ||
| 222 | +$L1: | ||
| 223 | + srl r6,r6 | ||
| 224 | + addc r7,r0,r0 | ||
| 225 | + beaeqi r7,$L2 | ||
| 226 | + beaneid r6,$L2 | ||
| 227 | + add r3,r3,r5 | ||
| 228 | + bealti r4,$L_NegateResult | ||
| 229 | + rtsd r15,8 | ||
| 230 | + nop | ||
| 231 | +$L_NegateResult: | ||
| 232 | + rtsd r15,8 | ||
| 233 | + rsub r3,r3,r0 | ||
| 234 | +$L_Result_Is_Zero: | ||
| 235 | + rtsd r15,8 | ||
| 236 | + addi r3,r0,0 | ||
| 237 | +#else | ||
| 238 | __mulsi3: | ||
| 239 | .frame r1,0,r15 | ||
| 240 | add r3,r0,r0 | ||
| 241 | @@ -74,5 +104,6 @@ $L_NegateResult: | ||
| 242 | $L_Result_Is_Zero: | ||
| 243 | rtsd r15,8 | ||
| 244 | addi r3,r0,0 | ||
| 245 | +#endif | ||
| 246 | .end __mulsi3 | ||
| 247 | .size __mulsi3, . - __mulsi3 | ||
| 248 | diff --git a/libgcc/config/microblaze/udivsi3.S b/libgcc/config/microblaze/udivsi3.S | ||
| 249 | index b1e44b6..42b086e 100644 | ||
| 250 | --- a/libgcc/config/microblaze/udivsi3.S | ||
| 251 | +++ b/libgcc/config/microblaze/udivsi3.S | ||
| 252 | @@ -59,52 +59,96 @@ __udivsi3: | ||
| 253 | SWI r30,r1,4 | ||
| 254 | SWI r31,r1,8 | ||
| 255 | #endif | ||
| 256 | +#ifdef __arch64__ | ||
| 257 | + BEAEQI r6,$LaDiv_By_Zero # Div_by_Zero # Division Error | ||
| 258 | + BEAEQID r5,$LaResult_Is_Zero # Result is Zero | ||
| 259 | +#else | ||
| 260 | BEQI r6,$LaDiv_By_Zero # Div_by_Zero # Division Error | ||
| 261 | BEQID r5,$LaResult_Is_Zero # Result is Zero | ||
| 262 | +#endif | ||
| 263 | ADDIK r30,r0,0 # Clear mod | ||
| 264 | ADDIK r29,r0,32 # Initialize the loop count | ||
| 265 | |||
| 266 | # Check if r6 and r5 are equal # if yes, return 1 | ||
| 267 | RSUB r18,r5,r6 | ||
| 268 | +#ifdef __arch64__ | ||
| 269 | + BEAEQID r18,$LaRETURN_HERE | ||
| 270 | +#else | ||
| 271 | BEQID r18,$LaRETURN_HERE | ||
| 272 | +#endif | ||
| 273 | ADDIK r3,r0,1 | ||
| 274 | |||
| 275 | # Check if (uns)r6 is greater than (uns)r5. In that case, just return 0 | ||
| 276 | XOR r18,r5,r6 | ||
| 277 | - BGEID r18,16 | ||
| 278 | +#ifdef __arch64__ | ||
| 279 | + BEAGEID r18,16 | ||
| 280 | +#else | ||
| 281 | + BGEID r18,16 | ||
| 282 | +#endif | ||
| 283 | ADD r3,r0,r0 # We would anyways clear r3 | ||
| 284 | +#ifdef __arch64__ | ||
| 285 | + BEALTI r6,$LaRETURN_HERE # r6[bit 31 = 1] hence is greater | ||
| 286 | + BREAI $LCheckr6 | ||
| 287 | + RSUB r18,r6,r5 # MICROBLAZEcmp | ||
| 288 | + BEALTI r18,$LaRETURN_HERE | ||
| 289 | +#else | ||
| 290 | BLTI r6,$LaRETURN_HERE # r6[bit 31 = 1] hence is greater | ||
| 291 | BRI $LCheckr6 | ||
| 292 | RSUB r18,r6,r5 # MICROBLAZEcmp | ||
| 293 | BLTI r18,$LaRETURN_HERE | ||
| 294 | - | ||
| 295 | +#endif | ||
| 296 | # If r6 [bit 31] is set, then return result as 1 | ||
| 297 | $LCheckr6: | ||
| 298 | - BGTI r6,$LaDIV0 | ||
| 299 | - BRID $LaRETURN_HERE | ||
| 300 | +#ifdef __arch64__ | ||
| 301 | + BEAGTI r6,$LaDIV0 | ||
| 302 | + BREAID $LaRETURN_HERE | ||
| 303 | +#else | ||
| 304 | + BGTI r6,$LaDIV0 | ||
| 305 | + BRID $LaRETURN_HERE | ||
| 306 | +#endif | ||
| 307 | ADDIK r3,r0,1 | ||
| 308 | |||
| 309 | # First part try to find the first '1' in the r5 | ||
| 310 | $LaDIV0: | ||
| 311 | +#ifdef __arch64__ | ||
| 312 | + BEALTI r5,$LaDIV2 | ||
| 313 | +#else | ||
| 314 | BLTI r5,$LaDIV2 | ||
| 315 | +#endif | ||
| 316 | $LaDIV1: | ||
| 317 | ADD r5,r5,r5 # left shift logical r5 | ||
| 318 | +#ifdef __arch64__ | ||
| 319 | + BEAGTID r5,$LaDIV1 | ||
| 320 | +#else | ||
| 321 | BGTID r5,$LaDIV1 | ||
| 322 | +#endif | ||
| 323 | ADDIK r29,r29,-1 | ||
| 324 | $LaDIV2: | ||
| 325 | ADD r5,r5,r5 # left shift logical r5 get the '1' into the Carry | ||
| 326 | ADDC r30,r30,r30 # Move that bit into the Mod register | ||
| 327 | RSUB r31,r6,r30 # Try to subtract (r30 a r6) | ||
| 328 | +#ifdef __arch64__ | ||
| 329 | + BEALTI r31,$LaMOD_TOO_SMALL | ||
| 330 | +#else | ||
| 331 | BLTI r31,$LaMOD_TOO_SMALL | ||
| 332 | +#endif | ||
| 333 | OR r30,r0,r31 # Move the r31 to mod since the result was positive | ||
| 334 | ADDIK r3,r3,1 | ||
| 335 | $LaMOD_TOO_SMALL: | ||
| 336 | ADDIK r29,r29,-1 | ||
| 337 | +#ifdef __arch64__ | ||
| 338 | + BEAEQi r29,$LaLOOP_END | ||
| 339 | + ADD r3,r3,r3 # Shift in the '1' into div | ||
| 340 | + BREAI $LaDIV2 # Div2 | ||
| 341 | +$LaLOOP_END: | ||
| 342 | + BREAI $LaRETURN_HERE | ||
| 343 | +#else | ||
| 344 | BEQi r29,$LaLOOP_END | ||
| 345 | ADD r3,r3,r3 # Shift in the '1' into div | ||
| 346 | BRI $LaDIV2 # Div2 | ||
| 347 | $LaLOOP_END: | ||
| 348 | BRI $LaRETURN_HERE | ||
| 349 | +#endif | ||
| 350 | $LaDiv_By_Zero: | ||
| 351 | $LaResult_Is_Zero: | ||
| 352 | OR r3,r0,r0 # set result to 0 | ||
| 353 | @@ -115,7 +159,7 @@ $LaRETURN_HERE: | ||
| 354 | LLI r29,r1,0 | ||
| 355 | LLI r30,r1,8 | ||
| 356 | LLI r31,r1,16 | ||
| 357 | - ADDIK r1,r1,24 | ||
| 358 | + ADDLIK r1,r1,24 | ||
| 359 | RTSD r15,8 | ||
| 360 | NOP | ||
| 361 | #else | ||
| 362 | diff --git a/libgcc/config/microblaze/umodsi3.S b/libgcc/config/microblaze/umodsi3.S | ||
| 363 | index 1b3070e..91430a6 100644 | ||
| 364 | --- a/libgcc/config/microblaze/umodsi3.S | ||
| 365 | +++ b/libgcc/config/microblaze/umodsi3.S | ||
| 366 | @@ -46,7 +46,7 @@ | ||
| 367 | __umodsi3: | ||
| 368 | .frame r1,0,r15 | ||
| 369 | |||
| 370 | - addik r1,r1,-24 | ||
| 371 | + addlik r1,r1,-24 | ||
| 372 | sli r29,r1,0 | ||
| 373 | sli r30,r1,8 | ||
| 374 | sli r31,r1,16 | ||
| 375 | @@ -59,27 +59,77 @@ __umodsi3: | ||
| 376 | swi r30,r1,4 | ||
| 377 | swi r31,r1,8 | ||
| 378 | #endif | ||
| 379 | +#ifdef __arch64__ | ||
| 380 | + BEAEQI r6,$LaDiv_By_Zero # Div_by_Zero # Division Error | ||
| 381 | + BEAEQId r5,$LaResult_Is_Zero # Result is Zero | ||
| 382 | +#else | ||
| 383 | BEQI r6,$LaDiv_By_Zero # Div_by_Zero # Division Error | ||
| 384 | BEQId r5,$LaResult_Is_Zero # Result is Zero | ||
| 385 | +#endif | ||
| 386 | ADDIK r3,r0,0 # Clear div | ||
| 387 | ADDIK r30,r0,0 # clear mod | ||
| 388 | ADDIK r29,r0,32 # Initialize the loop count | ||
| 389 | |||
| 390 | # Check if r6 and r5 are equal # if yes, return 0 | ||
| 391 | rsub r18,r5,r6 | ||
| 392 | - beqi r18,$LaRETURN_HERE | ||
| 393 | |||
| 394 | +#ifdef __arch64__ | ||
| 395 | + beaeqi r18,$LaRETURN_HERE | ||
| 396 | +#else | ||
| 397 | + beqi r18,$LaRETURN_HERE | ||
| 398 | +#endif | ||
| 399 | # Check if (uns)r6 is greater than (uns)r5. In that case, just return r5 | ||
| 400 | xor r18,r5,r6 | ||
| 401 | +#ifdef __arch64__ | ||
| 402 | + beageid r18,16 | ||
| 403 | + addik r3,r5,0 | ||
| 404 | + bealti r6,$LaRETURN_HERE | ||
| 405 | + breai $LCheckr6 | ||
| 406 | + rsub r18,r5,r6 # MICROBLAZEcmp | ||
| 407 | + beagti r18,$LaRETURN_HERE | ||
| 408 | +#else | ||
| 409 | bgeid r18,16 | ||
| 410 | addik r3,r5,0 | ||
| 411 | blti r6,$LaRETURN_HERE | ||
| 412 | bri $LCheckr6 | ||
| 413 | rsub r18,r5,r6 # MICROBLAZEcmp | ||
| 414 | bgti r18,$LaRETURN_HERE | ||
| 415 | - | ||
| 416 | +#endif | ||
| 417 | # If r6 [bit 31] is set, then return result as r5-r6 | ||
| 418 | $LCheckr6: | ||
| 419 | +#ifdef __arch64__ | ||
| 420 | + beagtid r6,$LaDIV0 | ||
| 421 | + addik r3,r0,0 | ||
| 422 | + addik r18,r0,0x7fffffff | ||
| 423 | + and r5,r5,r18 | ||
| 424 | + and r6,r6,r18 | ||
| 425 | + breaid $LaRETURN_HERE | ||
| 426 | + rsub r3,r6,r5 | ||
| 427 | +# First part: try to find the first '1' in the r5 | ||
| 428 | +$LaDIV0: | ||
| 429 | + BEALTI r5,$LaDIV2 | ||
| 430 | +$LaDIV1: | ||
| 431 | + ADD r5,r5,r5 # left shift logical r5 | ||
| 432 | + BEAGEID r5,$LaDIV1 # | ||
| 433 | + ADDIK r29,r29,-1 | ||
| 434 | +$LaDIV2: | ||
| 435 | + ADD r5,r5,r5 # left shift logical r5 get the '1' into the Carry | ||
| 436 | + ADDC r3,r3,r3 # Move that bit into the Mod register | ||
| 437 | + rSUB r31,r6,r3 # Try to subtract (r3 a r6) | ||
| 438 | + BEALTi r31,$LaMOD_TOO_SMALL | ||
| 439 | + OR r3,r0,r31 # Move the r31 to mod since the result was positive | ||
| 440 | + ADDIK r30,r30,1 | ||
| 441 | +$LaMOD_TOO_SMALL: | ||
| 442 | + ADDIK r29,r29,-1 | ||
| 443 | + BEAEQi r29,$LaLOOP_END | ||
| 444 | + ADD r30,r30,r30 # Shift in the '1' into div | ||
| 445 | + BREAI $LaDIV2 # Div2 | ||
| 446 | +$LaLOOP_END: | ||
| 447 | + BREAI $LaRETURN_HERE | ||
| 448 | +$LaDiv_By_Zero: | ||
| 449 | +$LaResult_Is_Zero: | ||
| 450 | + or r3,r0,r0 # set result to 0 | ||
| 451 | +#else | ||
| 452 | bgtid r6,$LaDIV0 | ||
| 453 | addik r3,r0,0 | ||
| 454 | addik r18,r0,0x7fffffff | ||
| 455 | @@ -111,7 +161,7 @@ $LaLOOP_END: | ||
| 456 | $LaDiv_By_Zero: | ||
| 457 | $LaResult_Is_Zero: | ||
| 458 | or r3,r0,r0 # set result to 0 | ||
| 459 | - | ||
| 460 | +#endif | ||
| 461 | #ifdef __arch64__ | ||
| 462 | $LaRETURN_HERE: | ||
| 463 | # Restore values of CSRs and that of r3 and the divisor and the dividend | ||
| 464 | -- | ||
| 465 | 2.7.4 | ||
| 466 | |||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0059-Reverting-the-patch-as-kernel-boot-is-not-working-wi.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0059-Reverting-the-patch-as-kernel-boot-is-not-working-wi.patch deleted file mode 100644 index be4dfad5..00000000 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0059-Reverting-the-patch-as-kernel-boot-is-not-working-wi.patch +++ /dev/null | |||
| @@ -1,51 +0,0 @@ | |||
| 1 | From 2f22090a7e8216f7a9f7e958b77ac83006a7ce89 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Mahesh Bodapati <mbodapat@xilinx.com> | ||
| 3 | Date: Tue, 16 Apr 2019 17:20:24 +0530 | ||
| 4 | Subject: [PATCH 59/61] Reverting the patch as kernel boot is not working with | ||
| 5 | this patch CR-1026413 Revert "[Patch,Microblaze]:reverting the cost check | ||
| 6 | before propagating constants." | ||
| 7 | |||
| 8 | This reverts commit 7156e379a67fa47a5fb9ede1448c0d528dbda65b. | ||
| 9 | --- | ||
| 10 | gcc/cprop.c | 4 ---- | ||
| 11 | 1 file changed, 4 deletions(-) | ||
| 12 | |||
| 13 | diff --git a/gcc/cprop.c b/gcc/cprop.c | ||
| 14 | index deb706b..e4df509 100644 | ||
| 15 | --- a/gcc/cprop.c | ||
| 16 | +++ b/gcc/cprop.c | ||
| 17 | @@ -733,7 +733,6 @@ try_replace_reg (rtx from, rtx to, rtx_insn *insn) | ||
| 18 | int success = 0; | ||
| 19 | rtx set = single_set (insn); | ||
| 20 | |||
| 21 | -#if 0 | ||
| 22 | bool check_rtx_costs = true; | ||
| 23 | bool speed = optimize_bb_for_speed_p (BLOCK_FOR_INSN (insn)); | ||
| 24 | int old_cost = set ? set_rtx_cost (set, speed) : 0; | ||
| 25 | @@ -745,7 +744,6 @@ try_replace_reg (rtx from, rtx to, rtx_insn *insn) | ||
| 26 | && (GET_CODE (XEXP (note, 0)) == CONST | ||
| 27 | || CONSTANT_P (XEXP (note, 0))))) | ||
| 28 | check_rtx_costs = false; | ||
| 29 | -#endif | ||
| 30 | |||
| 31 | /* Usually we substitute easy stuff, so we won't copy everything. | ||
| 32 | We however need to take care to not duplicate non-trivial CONST | ||
| 33 | @@ -754,7 +752,6 @@ try_replace_reg (rtx from, rtx to, rtx_insn *insn) | ||
| 34 | |||
| 35 | validate_replace_src_group (from, to, insn); | ||
| 36 | |||
| 37 | -#if 0 | ||
| 38 | /* If TO is a constant, check the cost of the set after propagation | ||
| 39 | to the cost of the set before the propagation. If the cost is | ||
| 40 | higher, then do not replace FROM with TO. */ | ||
| 41 | @@ -767,7 +764,6 @@ try_replace_reg (rtx from, rtx to, rtx_insn *insn) | ||
| 42 | return false; | ||
| 43 | } | ||
| 44 | |||
| 45 | -#endif | ||
| 46 | |||
| 47 | if (num_changes_pending () && apply_change_group ()) | ||
| 48 | success = 1; | ||
| 49 | -- | ||
| 50 | 2.7.4 | ||
| 51 | |||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0061-Author-Nagaraju-nmekala-xilinx.com.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0061-Author-Nagaraju-nmekala-xilinx.com.patch deleted file mode 100644 index 690bc727..00000000 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0061-Author-Nagaraju-nmekala-xilinx.com.patch +++ /dev/null | |||
| @@ -1,479 +0,0 @@ | |||
| 1 | From e1b8cfe6c0b4a0bd90ecbd3e85ae7114df21b6cc Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Nagaraju <nmekala@xilinx.com> | ||
| 3 | Date: Thu, 18 Apr 2019 16:00:37 +0530 | ||
| 4 | Subject: [PATCH 61/62] Author: Nagaraju <nmekala@xilinx.com> Date: Wed Apr | ||
| 5 | 17 14:11:00 2019 +0530 | ||
| 6 | |||
| 7 | [Patch, microblaze]: MB-64 removal of barrel-shift instructions from default | ||
| 8 | By default MB-64 is generatting barrel-shift instructions. It has been | ||
| 9 | removed from default. Barrel-shift instructions will be generated only if | ||
| 10 | barrel-shifter is enabled. Similarly to double instructions as well. | ||
| 11 | |||
| 12 | Signed-off-by :Nagaraju Mekala <nmekala@xilix.com> | ||
| 13 | --- | ||
| 14 | gcc/config/microblaze/microblaze.c | 2 +- | ||
| 15 | gcc/config/microblaze/microblaze.md | 269 +++++++++++++++++++++++++++++++++--- | ||
| 16 | 2 files changed, 252 insertions(+), 19 deletions(-) | ||
| 17 | |||
| 18 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c | ||
| 19 | index 33d183e..c321b03 100644 | ||
| 20 | --- a/gcc/config/microblaze/microblaze.c | ||
| 21 | +++ b/gcc/config/microblaze/microblaze.c | ||
| 22 | @@ -3868,7 +3868,7 @@ microblaze_expand_divide (rtx operands[]) | ||
| 23 | emit_insn (gen_rtx_CLOBBER (Pmode, reg18)); | ||
| 24 | |||
| 25 | if (TARGET_MB_64) { | ||
| 26 | - emit_insn (gen_ashldi3_long (regt1, operands[1], GEN_INT(4))); | ||
| 27 | + emit_insn (gen_ashldi3 (regt1, operands[1], GEN_INT(4))); | ||
| 28 | emit_insn (gen_adddi3 (regt1, regt1, operands[2])); | ||
| 29 | } | ||
| 30 | else { | ||
| 31 | diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md | ||
| 32 | index 8bd175f..b5b60fb 100644 | ||
| 33 | --- a/gcc/config/microblaze/microblaze.md | ||
| 34 | +++ b/gcc/config/microblaze/microblaze.md | ||
| 35 | @@ -545,7 +545,7 @@ | ||
| 36 | [(set (match_operand:DF 0 "register_operand" "=d") | ||
| 37 | (plus:DF (match_operand:DF 1 "register_operand" "d") | ||
| 38 | (match_operand:DF 2 "register_operand" "d")))] | ||
| 39 | - "TARGET_MB_64" | ||
| 40 | + "TARGET_MB_64 && TARGET_HARD_FLOAT && TARGET_FLOAT_CONVERT" | ||
| 41 | "dadd\t%0,%1,%2" | ||
| 42 | [(set_attr "type" "fadd") | ||
| 43 | (set_attr "mode" "DF") | ||
| 44 | @@ -555,7 +555,7 @@ | ||
| 45 | [(set (match_operand:DF 0 "register_operand" "=d") | ||
| 46 | (minus:DF (match_operand:DF 1 "register_operand" "d") | ||
| 47 | (match_operand:DF 2 "register_operand" "d")))] | ||
| 48 | - "TARGET_MB_64" | ||
| 49 | + "TARGET_MB_64 && TARGET_HARD_FLOAT && TARGET_FLOAT_CONVERT" | ||
| 50 | "drsub\t%0,%2,%1" | ||
| 51 | [(set_attr "type" "frsub") | ||
| 52 | (set_attr "mode" "DF") | ||
| 53 | @@ -565,7 +565,7 @@ | ||
| 54 | [(set (match_operand:DF 0 "register_operand" "=d") | ||
| 55 | (mult:DF (match_operand:DF 1 "register_operand" "d") | ||
| 56 | (match_operand:DF 2 "register_operand" "d")))] | ||
| 57 | - "TARGET_MB_64" | ||
| 58 | + "TARGET_MB_64 && TARGET_HARD_FLOAT && TARGET_FLOAT_CONVERT" | ||
| 59 | "dmul\t%0,%1,%2" | ||
| 60 | [(set_attr "type" "fmul") | ||
| 61 | (set_attr "mode" "DF") | ||
| 62 | @@ -575,7 +575,7 @@ | ||
| 63 | [(set (match_operand:DF 0 "register_operand" "=d") | ||
| 64 | (div:DF (match_operand:DF 1 "register_operand" "d") | ||
| 65 | (match_operand:DF 2 "register_operand" "d")))] | ||
| 66 | - "TARGET_MB_64" | ||
| 67 | + "TARGET_MB_64 && TARGET_HARD_FLOAT && TARGET_FLOAT_CONVERT" | ||
| 68 | "ddiv\t%0,%2,%1" | ||
| 69 | [(set_attr "type" "fdiv") | ||
| 70 | (set_attr "mode" "DF") | ||
| 71 | @@ -585,7 +585,7 @@ | ||
| 72 | (define_insn "sqrtdf2" | ||
| 73 | [(set (match_operand:DF 0 "register_operand" "=d") | ||
| 74 | (sqrt:DF (match_operand:DF 1 "register_operand" "d")))] | ||
| 75 | - "TARGET_MB_64" | ||
| 76 | + "TARGET_MB_64 && TARGET_HARD_FLOAT && TARGET_FLOAT_CONVERT" | ||
| 77 | "dsqrt\t%0,%1" | ||
| 78 | [(set_attr "type" "fsqrt") | ||
| 79 | (set_attr "mode" "DF") | ||
| 80 | @@ -594,7 +594,7 @@ | ||
| 81 | (define_insn "floatdidf2" | ||
| 82 | [(set (match_operand:DF 0 "register_operand" "=d") | ||
| 83 | (float:DF (match_operand:DI 1 "register_operand" "d")))] | ||
| 84 | - "TARGET_MB_64" | ||
| 85 | + "TARGET_MB_64 && TARGET_HARD_FLOAT && TARGET_FLOAT_CONVERT" | ||
| 86 | "dbl\t%0,%1" | ||
| 87 | [(set_attr "type" "fcvt") | ||
| 88 | (set_attr "mode" "DF") | ||
| 89 | @@ -603,7 +603,7 @@ | ||
| 90 | (define_insn "fix_truncdfdi2" | ||
| 91 | [(set (match_operand:DI 0 "register_operand" "=d") | ||
| 92 | (fix:DI (fix:DF (match_operand:DF 1 "register_operand" "d"))))] | ||
| 93 | - "TARGET_MB_64" | ||
| 94 | + "TARGET_MB_64 && TARGET_HARD_FLOAT && TARGET_FLOAT_CONVERT" | ||
| 95 | "dlong\t%0,%1" | ||
| 96 | [(set_attr "type" "fcvt") | ||
| 97 | (set_attr "mode" "DI") | ||
| 98 | @@ -1299,6 +1299,34 @@ | ||
| 99 | (set_attr "mode" "DI") | ||
| 100 | (set_attr "length" "4")]) | ||
| 101 | |||
| 102 | +(define_insn "*movdi_internal2_bshift" | ||
| 103 | + [(set (match_operand:DI 0 "nonimmediate_operand" "=d,d,d, d,d,R,m") | ||
| 104 | + (match_operand:DI 1 "move_src_operand" " d,I,Mnis,R,m,dJ,dJ"))] | ||
| 105 | + "TARGET_MB_64 && TARGET_BARREL_SHIFT" | ||
| 106 | + { | ||
| 107 | + switch (which_alternative) | ||
| 108 | + { | ||
| 109 | + case 0: | ||
| 110 | + return "addlk\t%0,%1,r0"; | ||
| 111 | + case 1: | ||
| 112 | + case 2: | ||
| 113 | + if (GET_CODE (operands[1]) == CONST_INT && | ||
| 114 | + (INTVAL (operands[1]) > (long long)549755813887 || INTVAL (operands[1]) < (long long)-549755813888)) | ||
| 115 | + return "addlik\t%0,r0,%h1\n\tbsllli\t%0,%0,32\n\taddlik\t%0,%0,%j1 #li => la"; | ||
| 116 | + else | ||
| 117 | + return "addlik\t%0,r0,%1"; | ||
| 118 | + case 3: | ||
| 119 | + case 4: | ||
| 120 | + return "ll%i1\t%0,%1"; | ||
| 121 | + case 5: | ||
| 122 | + case 6: | ||
| 123 | + return "sl%i0\t%z1,%0"; | ||
| 124 | + } | ||
| 125 | + } | ||
| 126 | + [(set_attr "type" "load,no_delay_load,no_delay_load,no_delay_load,no_delay_load,no_delay_store,no_delay_store") | ||
| 127 | + (set_attr "mode" "DI") | ||
| 128 | + (set_attr "length" "4,4,12,4,8,4,8")]) | ||
| 129 | + | ||
| 130 | (define_insn "*movdi_internal2" | ||
| 131 | [(set (match_operand:DI 0 "nonimmediate_operand" "=d,d,d, d,d,R,m") | ||
| 132 | (match_operand:DI 1 "move_src_operand" " d,I,Mnis,R,m,dJ,dJ"))] | ||
| 133 | @@ -1312,7 +1340,15 @@ | ||
| 134 | case 2: | ||
| 135 | if (GET_CODE (operands[1]) == CONST_INT && | ||
| 136 | (INTVAL (operands[1]) > (long long)549755813887 || INTVAL (operands[1]) < (long long)-549755813888)) | ||
| 137 | - return "addlik\t%0,r0,%h1\n\tbsllli\t%0,%0,32\n\taddlik\t%0,%0,%j1 #li => la"; | ||
| 138 | + { | ||
| 139 | + operands[2] = gen_rtx_REG (DImode, MB_ABI_ASM_TEMP_REGNUM); | ||
| 140 | + output_asm_insn ("addlik\t%0,r0,%h1", operands); | ||
| 141 | + output_asm_insn ("addlik\t%2,r0,32", operands); | ||
| 142 | + output_asm_insn ("addlik\t%2,%2,-1", operands); | ||
| 143 | + output_asm_insn ("beaneid\t%2,.-8", operands); | ||
| 144 | + output_asm_insn ("addlk\t%0,%0,%0", operands); | ||
| 145 | + return "addlik\t%0,%0,%j1 #li => la"; | ||
| 146 | + } | ||
| 147 | else | ||
| 148 | return "addlik\t%0,r0,%1"; | ||
| 149 | case 3: | ||
| 150 | @@ -1386,7 +1422,7 @@ | ||
| 151 | (define_insn "movdi_long_int" | ||
| 152 | [(set (match_operand:DI 0 "nonimmediate_operand" "=d") | ||
| 153 | (match_operand:DI 1 "general_operand" "i"))] | ||
| 154 | - "TARGET_MB_64" | ||
| 155 | + "TARGET_MB_64 && TARGET_BARREL_SHIFT" | ||
| 156 | "addlik\t%0,r0,%h1\n\tbsllli\t%0,%0,32\n\taddlik\t%0,%0,%j1 #li => la"; | ||
| 157 | [(set_attr "type" "no_delay_arith") | ||
| 158 | (set_attr "mode" "DI") | ||
| 159 | @@ -1653,6 +1689,33 @@ | ||
| 160 | ;; movdf_internal | ||
| 161 | ;; Applies to both TARGET_SOFT_FLOAT and TARGET_HARD_FLOAT | ||
| 162 | ;; | ||
| 163 | +(define_insn "*movdf_internal_64_bshift" | ||
| 164 | + [(set (match_operand:DF 0 "nonimmediate_operand" "=d,d,d,d,d,m") | ||
| 165 | + (match_operand:DF 1 "general_operand" "d,dG,m,F,T,d"))] | ||
| 166 | + "TARGET_MB_64 && TARGET_BARREL_SHIFT" | ||
| 167 | + { | ||
| 168 | + switch (which_alternative) | ||
| 169 | + { | ||
| 170 | + case 0: | ||
| 171 | + return "addlk\t%0,%1,r0"; | ||
| 172 | + case 1: | ||
| 173 | + return "addlk\t%0,r0,r0"; | ||
| 174 | + case 2: | ||
| 175 | + case 4: | ||
| 176 | + return "ll%i1\t%0,%1"; | ||
| 177 | + case 3: | ||
| 178 | + { | ||
| 179 | + return "addlik\t%0,r0,%j1 \n\tbsllli\t%0,%0,32\n\taddlik\t%0,%0,%h1 #Xfer Lo"; | ||
| 180 | + } | ||
| 181 | + case 5: | ||
| 182 | + return "sl%i0\t%1,%0"; | ||
| 183 | + } | ||
| 184 | + gcc_unreachable (); | ||
| 185 | + } | ||
| 186 | + [(set_attr "type" "no_delay_move,no_delay_move,no_delay_load,no_delay_load,no_delay_load,no_delay_store") | ||
| 187 | + (set_attr "mode" "DF") | ||
| 188 | + (set_attr "length" "4,4,4,16,4,4")]) | ||
| 189 | + | ||
| 190 | (define_insn "*movdf_internal_64" | ||
| 191 | [(set (match_operand:DF 0 "nonimmediate_operand" "=d,d,d,d,d,m") | ||
| 192 | (match_operand:DF 1 "general_operand" "d,dG,m,F,T,d"))] | ||
| 193 | @@ -1669,7 +1732,13 @@ | ||
| 194 | return "ll%i1\t%0,%1"; | ||
| 195 | case 3: | ||
| 196 | { | ||
| 197 | - return "addlik\t%0,r0,%j1 \n\tbsllli\t%0,%0,32\n\taddlik\t%0,%0,%h1 #Xfer Lo"; | ||
| 198 | + operands[2] = gen_rtx_REG (DImode, MB_ABI_ASM_TEMP_REGNUM); | ||
| 199 | + output_asm_insn ("addlik\t%0,r0,%h1", operands); | ||
| 200 | + output_asm_insn ("addlik\t%2,r0,32", operands); | ||
| 201 | + output_asm_insn ("addlik\t%2,%2,-1", operands); | ||
| 202 | + output_asm_insn ("beaneid\t%2,.-8", operands); | ||
| 203 | + output_asm_insn ("addlk\t%0,%0,%0", operands); | ||
| 204 | + return "addlik\t%0,%0,%j1 #li => la"; | ||
| 205 | } | ||
| 206 | case 5: | ||
| 207 | return "sl%i0\t%1,%0"; | ||
| 208 | @@ -1789,11 +1858,21 @@ | ||
| 209 | "TARGET_MB_64" | ||
| 210 | { | ||
| 211 | ;;if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65) | ||
| 212 | -if (INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65) | ||
| 213 | +if (INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65 && TARGET_BARREL_SHIFT) | ||
| 214 | { | ||
| 215 | emit_insn(gen_ashldi3_long (operands[0], operands[1],operands[2])); | ||
| 216 | DONE; | ||
| 217 | } | ||
| 218 | +else if(INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65 && CONST_INT_P (operands[2])) | ||
| 219 | + { | ||
| 220 | + emit_insn(gen_ashldi3_const (operands[0], operands[1],operands[2])); | ||
| 221 | + DONE; | ||
| 222 | + } | ||
| 223 | +else if(INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65 && GET_CODE (operands[2]) == REG) | ||
| 224 | + { | ||
| 225 | + emit_insn(gen_ashldi3_reg (operands[0], operands[1],operands[2])); | ||
| 226 | + DONE; | ||
| 227 | + } | ||
| 228 | else | ||
| 229 | FAIL; | ||
| 230 | } | ||
| 231 | @@ -1803,7 +1882,7 @@ else | ||
| 232 | [(set (match_operand:DI 0 "register_operand" "=d,d") | ||
| 233 | (ashift:DI (match_operand:DI 1 "register_operand" "d,d") | ||
| 234 | (match_operand:DI 2 "arith_operand" "I,d")))] | ||
| 235 | - "TARGET_MB_64" | ||
| 236 | + "TARGET_MB_64 && TARGET_BARREL_SHIFT" | ||
| 237 | "@ | ||
| 238 | bsllli\t%0,%1,%2 | ||
| 239 | bslll\t%0,%1,%2" | ||
| 240 | @@ -1811,6 +1890,51 @@ else | ||
| 241 | (set_attr "mode" "DI,DI") | ||
| 242 | (set_attr "length" "4,4")] | ||
| 243 | ) | ||
| 244 | + | ||
| 245 | +(define_insn "ashldi3_const" | ||
| 246 | + [(set (match_operand:DI 0 "register_operand" "=&d") | ||
| 247 | + (ashift:DI (match_operand:DI 1 "register_operand" "d") | ||
| 248 | + (match_operand:DI 2 "immediate_operand" "I")))] | ||
| 249 | + "TARGET_MB_64" | ||
| 250 | + { | ||
| 251 | + operands[3] = gen_rtx_REG (DImode, MB_ABI_ASM_TEMP_REGNUM); | ||
| 252 | + | ||
| 253 | + output_asm_insn ("orli\t%3,r0,%2", operands); | ||
| 254 | + if (REGNO (operands[0]) != REGNO (operands[1])) | ||
| 255 | + output_asm_insn ("addlk\t%0,%1,r0", operands); | ||
| 256 | + | ||
| 257 | + output_asm_insn ("addlik\t%3,%3,-1", operands); | ||
| 258 | + output_asm_insn ("beaneid\t%3,.-8", operands); | ||
| 259 | + return "addlk\t%0,%0,%0"; | ||
| 260 | + } | ||
| 261 | + [(set_attr "type" "multi") | ||
| 262 | + (set_attr "mode" "DI") | ||
| 263 | + (set_attr "length" "20")] | ||
| 264 | +) | ||
| 265 | + | ||
| 266 | +(define_insn "ashldi3_reg" | ||
| 267 | + [(set (match_operand:DI 0 "register_operand" "=&d") | ||
| 268 | + (ashift:DI (match_operand:DI 1 "register_operand" "d") | ||
| 269 | + (match_operand:DI 2 "register_operand" "d")))] | ||
| 270 | + "TARGET_MB_64" | ||
| 271 | + { | ||
| 272 | + operands[3] = gen_rtx_REG (DImode, MB_ABI_ASM_TEMP_REGNUM); | ||
| 273 | + output_asm_insn ("andli\t%3,%2,31", operands); | ||
| 274 | + if (REGNO (operands[0]) != REGNO (operands[1])) | ||
| 275 | + output_asm_insn ("addlk\t%0,r0,%1", operands); | ||
| 276 | + /* Exit the loop if zero shift. */ | ||
| 277 | + output_asm_insn ("beaeqid\t%3,.+24", operands); | ||
| 278 | + /* Emit the loop. */ | ||
| 279 | + output_asm_insn ("addlk\t%0,%0,r0", operands); | ||
| 280 | + output_asm_insn ("addlik\t%3,%3,-1", operands); | ||
| 281 | + output_asm_insn ("beaneid\t%3,.-8", operands); | ||
| 282 | + return "addlk\t%0,%0,%0"; | ||
| 283 | + } | ||
| 284 | + [(set_attr "type" "multi") | ||
| 285 | + (set_attr "mode" "DI") | ||
| 286 | + (set_attr "length" "28")] | ||
| 287 | +) | ||
| 288 | + | ||
| 289 | ;; The following patterns apply when there is no barrel shifter present | ||
| 290 | |||
| 291 | (define_insn "*ashlsi3_with_mul_delay" | ||
| 292 | @@ -1944,11 +2068,21 @@ else | ||
| 293 | "TARGET_MB_64" | ||
| 294 | { | ||
| 295 | ;;if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65) | ||
| 296 | -if (INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65) | ||
| 297 | +if (INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65 && TARGET_BARREL_SHIFT) | ||
| 298 | { | ||
| 299 | emit_insn(gen_ashrdi3_long (operands[0], operands[1],operands[2])); | ||
| 300 | DONE; | ||
| 301 | } | ||
| 302 | +else if(INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65 && CONST_INT_P (operands[2])) | ||
| 303 | + { | ||
| 304 | + emit_insn(gen_ashrdi3_const (operands[0], operands[1],operands[2])); | ||
| 305 | + DONE; | ||
| 306 | + } | ||
| 307 | +else if(INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65 && GET_CODE (operands[2]) == REG) | ||
| 308 | + { | ||
| 309 | + emit_insn(gen_ashrdi3_reg (operands[0], operands[1],operands[2])); | ||
| 310 | + DONE; | ||
| 311 | + } | ||
| 312 | else | ||
| 313 | FAIL; | ||
| 314 | } | ||
| 315 | @@ -1958,7 +2092,7 @@ else | ||
| 316 | [(set (match_operand:DI 0 "register_operand" "=d,d") | ||
| 317 | (ashiftrt:DI (match_operand:DI 1 "register_operand" "d,d") | ||
| 318 | (match_operand:DI 2 "arith_operand" "I,d")))] | ||
| 319 | - "TARGET_MB_64" | ||
| 320 | + "TARGET_MB_64 && TARGET_BARREL_SHIFT" | ||
| 321 | "@ | ||
| 322 | bslrai\t%0,%1,%2 | ||
| 323 | bslra\t%0,%1,%2" | ||
| 324 | @@ -1966,6 +2100,51 @@ else | ||
| 325 | (set_attr "mode" "DI,DI") | ||
| 326 | (set_attr "length" "4,4")] | ||
| 327 | ) | ||
| 328 | + | ||
| 329 | +(define_insn "ashrdi3_const" | ||
| 330 | + [(set (match_operand:DI 0 "register_operand" "=&d") | ||
| 331 | + (ashiftrt:DI (match_operand:DI 1 "register_operand" "d") | ||
| 332 | + (match_operand:DI 2 "immediate_operand" "I")))] | ||
| 333 | + "TARGET_MB_64" | ||
| 334 | + { | ||
| 335 | + operands[3] = gen_rtx_REG (DImode, MB_ABI_ASM_TEMP_REGNUM); | ||
| 336 | + | ||
| 337 | + output_asm_insn ("orli\t%3,r0,%2", operands); | ||
| 338 | + if (REGNO (operands[0]) != REGNO (operands[1])) | ||
| 339 | + output_asm_insn ("addlk\t%0,%1,r0", operands); | ||
| 340 | + | ||
| 341 | + output_asm_insn ("addlik\t%3,%3,-1", operands); | ||
| 342 | + output_asm_insn ("beaneid\t%3,.-8", operands); | ||
| 343 | + return "srla\t%0,%0"; | ||
| 344 | + } | ||
| 345 | + [(set_attr "type" "arith") | ||
| 346 | + (set_attr "mode" "DI") | ||
| 347 | + (set_attr "length" "20")] | ||
| 348 | +) | ||
| 349 | + | ||
| 350 | +(define_insn "ashrdi3_reg" | ||
| 351 | + [(set (match_operand:DI 0 "register_operand" "=&d") | ||
| 352 | + (ashiftrt:DI (match_operand:DI 1 "register_operand" "d") | ||
| 353 | + (match_operand:DI 2 "register_operand" "d")))] | ||
| 354 | + "TARGET_MB_64" | ||
| 355 | + { | ||
| 356 | + operands[3] = gen_rtx_REG (DImode, MB_ABI_ASM_TEMP_REGNUM); | ||
| 357 | + output_asm_insn ("andli\t%3,%2,31", operands); | ||
| 358 | + if (REGNO (operands[0]) != REGNO (operands[1])) | ||
| 359 | + output_asm_insn ("addlk\t%0,r0,%1", operands); | ||
| 360 | + /* Exit the loop if zero shift. */ | ||
| 361 | + output_asm_insn ("beaeqid\t%3,.+24", operands); | ||
| 362 | + /* Emit the loop. */ | ||
| 363 | + output_asm_insn ("addlk\t%0,%0,r0", operands); | ||
| 364 | + output_asm_insn ("addlik\t%3,%3,-1", operands); | ||
| 365 | + output_asm_insn ("beaneid\t%3,.-8", operands); | ||
| 366 | + return "srla\t%0,%0"; | ||
| 367 | + } | ||
| 368 | + [(set_attr "type" "multi") | ||
| 369 | + (set_attr "mode" "DI") | ||
| 370 | + (set_attr "length" "28")] | ||
| 371 | +) | ||
| 372 | + | ||
| 373 | (define_expand "ashrsi3" | ||
| 374 | [(set (match_operand:SI 0 "register_operand" "=&d") | ||
| 375 | (ashiftrt:SI (match_operand:SI 1 "register_operand" "d") | ||
| 376 | @@ -2083,11 +2262,21 @@ else | ||
| 377 | "TARGET_MB_64" | ||
| 378 | { | ||
| 379 | ;;if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65) | ||
| 380 | -if (INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65) | ||
| 381 | +if (INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65 && TARGET_BARREL_SHIFT) | ||
| 382 | { | ||
| 383 | emit_insn(gen_lshrdi3_long (operands[0], operands[1],operands[2])); | ||
| 384 | DONE; | ||
| 385 | } | ||
| 386 | +else if(INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65 && CONST_INT_P (operands[2])) | ||
| 387 | + { | ||
| 388 | + emit_insn(gen_lshrdi3_const (operands[0], operands[1],operands[2])); | ||
| 389 | + DONE; | ||
| 390 | + } | ||
| 391 | +else if(INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65 && GET_CODE (operands[2]) == REG) | ||
| 392 | + { | ||
| 393 | + emit_insn(gen_lshrdi3_reg (operands[0], operands[1],operands[2])); | ||
| 394 | + DONE; | ||
| 395 | + } | ||
| 396 | else | ||
| 397 | FAIL; | ||
| 398 | } | ||
| 399 | @@ -2097,7 +2286,7 @@ else | ||
| 400 | [(set (match_operand:DI 0 "register_operand" "=d,d") | ||
| 401 | (lshiftrt:DI (match_operand:DI 1 "register_operand" "d,d") | ||
| 402 | (match_operand:DI 2 "arith_operand" "I,d")))] | ||
| 403 | - "TARGET_MB_64" | ||
| 404 | + "TARGET_MB_64 && TARGET_BARREL_SHIFT" | ||
| 405 | "@ | ||
| 406 | bslrli\t%0,%1,%2 | ||
| 407 | bslrl\t%0,%1,%2" | ||
| 408 | @@ -2106,6 +2295,50 @@ else | ||
| 409 | (set_attr "length" "4,4")] | ||
| 410 | ) | ||
| 411 | |||
| 412 | +(define_insn "lshrdi3_const" | ||
| 413 | + [(set (match_operand:DI 0 "register_operand" "=&d") | ||
| 414 | + (lshiftrt:DI (match_operand:DI 1 "register_operand" "d") | ||
| 415 | + (match_operand:DI 2 "immediate_operand" "I")))] | ||
| 416 | + "TARGET_MB_64" | ||
| 417 | + { | ||
| 418 | + operands[3] = gen_rtx_REG (DImode, MB_ABI_ASM_TEMP_REGNUM); | ||
| 419 | + | ||
| 420 | + output_asm_insn ("orli\t%3,r0,%2", operands); | ||
| 421 | + if (REGNO (operands[0]) != REGNO (operands[1])) | ||
| 422 | + output_asm_insn ("addlk\t%0,%1,r0", operands); | ||
| 423 | + | ||
| 424 | + output_asm_insn ("addlik\t%3,%3,-1", operands); | ||
| 425 | + output_asm_insn ("beaneid\t%3,.-8", operands); | ||
| 426 | + return "srll\t%0,%0"; | ||
| 427 | + } | ||
| 428 | + [(set_attr "type" "multi") | ||
| 429 | + (set_attr "mode" "DI") | ||
| 430 | + (set_attr "length" "20")] | ||
| 431 | +) | ||
| 432 | + | ||
| 433 | +(define_insn "lshrdi3_reg" | ||
| 434 | + [(set (match_operand:DI 0 "register_operand" "=&d") | ||
| 435 | + (lshiftrt:DI (match_operand:DI 1 "register_operand" "d") | ||
| 436 | + (match_operand:DI 2 "register_operand" "d")))] | ||
| 437 | + "TARGET_MB_64" | ||
| 438 | + { | ||
| 439 | + operands[3] = gen_rtx_REG (DImode, MB_ABI_ASM_TEMP_REGNUM); | ||
| 440 | + output_asm_insn ("andli\t%3,%2,31", operands); | ||
| 441 | + if (REGNO (operands[0]) != REGNO (operands[1])) | ||
| 442 | + output_asm_insn ("addlk\t%0,r0,%1", operands); | ||
| 443 | + /* Exit the loop if zero shift. */ | ||
| 444 | + output_asm_insn ("beaeqid\t%3,.+24", operands); | ||
| 445 | + /* Emit the loop. */ | ||
| 446 | + output_asm_insn ("addlk\t%0,%0,r0", operands); | ||
| 447 | + output_asm_insn ("addlik\t%3,%3,-1", operands); | ||
| 448 | + output_asm_insn ("beaneid\t%3,.-8", operands); | ||
| 449 | + return "srll\t%0,%0"; | ||
| 450 | + } | ||
| 451 | + [(set_attr "type" "multi") | ||
| 452 | + (set_attr "mode" "SI") | ||
| 453 | + (set_attr "length" "28")] | ||
| 454 | +) | ||
| 455 | + | ||
| 456 | (define_expand "lshrsi3" | ||
| 457 | [(set (match_operand:SI 0 "register_operand" "=&d") | ||
| 458 | (lshiftrt:SI (match_operand:SI 1 "register_operand" "d") | ||
| 459 | @@ -2233,7 +2466,7 @@ else | ||
| 460 | (eq:DI | ||
| 461 | (match_operand:DI 1 "register_operand" "d") | ||
| 462 | (match_operand:DI 2 "register_operand" "d")))] | ||
| 463 | - "TARGET_MB_64" | ||
| 464 | + "TARGET_MB_64 && TARGET_PATTERN_COMPARE" | ||
| 465 | "pcmpleq\t%0,%1,%2" | ||
| 466 | [(set_attr "type" "arith") | ||
| 467 | (set_attr "mode" "DI") | ||
| 468 | @@ -2245,7 +2478,7 @@ else | ||
| 469 | (ne:DI | ||
| 470 | (match_operand:DI 1 "register_operand" "d") | ||
| 471 | (match_operand:DI 2 "register_operand" "d")))] | ||
| 472 | - "TARGET_MB_64" | ||
| 473 | + "TARGET_MB_64 && TARGET_PATTERN_COMPARE" | ||
| 474 | "pcmplne\t%0,%1,%2" | ||
| 475 | [(set_attr "type" "arith") | ||
| 476 | (set_attr "mode" "DI") | ||
| 477 | -- | ||
| 478 | 2.7.4 | ||
| 479 | |||
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0062-Patch-microblaze-Add-TARGET_OPTION_OPTIMIZATION-and-.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0062-Patch-microblaze-Add-TARGET_OPTION_OPTIMIZATION-and-.patch deleted file mode 100644 index e7dfa89c..00000000 --- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0062-Patch-microblaze-Add-TARGET_OPTION_OPTIMIZATION-and-.patch +++ /dev/null | |||
| @@ -1,41 +0,0 @@ | |||
| 1 | From 612e6579116e6714417ea21e6c13b0968bb6aac2 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Nagaraju <nmekala@xilinx.com> | ||
| 3 | Date: Wed, 8 May 2019 14:12:03 +0530 | ||
| 4 | Subject: [PATCH 62/62] [Patch, microblaze]: Add TARGET_OPTION_OPTIMIZATION and | ||
| 5 | disable fivopts by default | ||
| 6 | |||
| 7 | Added TARGET_OPTION_OPTIMIZATIONS and Turn off ivopts by default. | ||
| 8 | |||
| 9 | * gcc/common/config/microblaze/microblaze-common.c | ||
| 10 | (microblaze_option_optimization_table): Disable fivopts by default. | ||
| 11 | |||
| 12 | Signed-off-by: Nagaraju Mekala <nmekala@xilinx.com> | ||
| 13 | --- | ||
| 14 | gcc/common/config/microblaze/microblaze-common.c | 6 ++++-- | ||
| 15 | 1 file changed, 4 insertions(+), 2 deletions(-) | ||
| 16 | |||
| 17 | diff --git a/gcc/common/config/microblaze/microblaze-common.c b/gcc/common/config/microblaze/microblaze-common.c | ||
| 18 | index fe45f2e..2873d4b 100644 | ||
| 19 | --- a/gcc/common/config/microblaze/microblaze-common.c | ||
| 20 | +++ b/gcc/common/config/microblaze/microblaze-common.c | ||
| 21 | @@ -27,13 +27,15 @@ | ||
| 22 | /* Implement TARGET_OPTION_OPTIMIZATION_TABLE. */ | ||
| 23 | static const struct default_options microblaze_option_optimization_table[] = | ||
| 24 | { | ||
| 25 | - /* Turn off ivopts by default. It messes up cse. */ | ||
| 26 | + /* Turn off ivopts by default. It messes up cse. | ||
| 27 | + { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, */ | ||
| 28 | { OPT_LEVELS_ALL, OPT_fivopts, NULL, 0 }, | ||
| 29 | - { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, | ||
| 30 | { OPT_LEVELS_NONE, 0, NULL, 0 } | ||
| 31 | }; | ||
| 32 | |||
| 33 | #undef TARGET_DEFAULT_TARGET_FLAGS | ||
| 34 | #define TARGET_DEFAULT_TARGET_FLAGS TARGET_DEFAULT | ||
| 35 | |||
| 36 | +#undef TARGET_OPTION_OPTIMIZATION_TABLE | ||
| 37 | +#define TARGET_OPTION_OPTIMIZATION_TABLE microblaze_option_optimization_table | ||
| 38 | struct gcc_targetm_common targetm_common = TARGETM_COMMON_INITIALIZER; | ||
| 39 | -- | ||
| 40 | 2.7.4 | ||
| 41 | |||
