summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Hatle <mark.hatle@xilinx.com>2020-12-03 16:37:39 -0800
committerMark Hatle <mark.hatle@xilinx.com>2020-12-04 16:24:49 -0800
commitb0973557c0938c72bc0045ecacd5aad716c69874 (patch)
tree5a0b4cc90da989fcb85e068d2df022812c80fabd
parentc9bf136ef42d5672a645c3caed23e1f99ac75a20 (diff)
downloadmeta-xilinx-b0973557c0938c72bc0045ecacd5aad716c69874.tar.gz
gcc: update to early gatesgarth version
Signed-off-by: Mark Hatle <mark.hatle@xilinx.com>
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0001-LOCAL-Testsuite-builtins-tests-require-fpic.patch20
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0002-LOCAL-Quick-fail-g-.dg-opt-memcpy1.C.patch11
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0003-LOCAL-For-dejagnu-static-testing-on-qemu-suppress-wa.patch35
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0003-LOCAL-Testsuite-explicitly-add-fivopts-for-tests-tha.patch117
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0004-LOCAL-For-dejagnu-static-testing-on-qemu-suppress-wa.patch30
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0004-Patch-testsuite-Add-MicroBlaze-to-target-supports-fo.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0005-Patch-testsuite-Add-MicroBlaze-to-target-supports-fo.patch)10
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0005-Patch-testsuite-Update-MicroBlaze-strings-test.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0006-Patch-testsuite-Update-MicroBlaze-strings-test.patch)7
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0006-Patch-testsuite-Allow-MicroBlaze-.weakext-pattern-in.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0007-Patch-testsuite-Allow-MicroBlaze-.weakext-pattern-in.patch)10
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0007-Patch-testsuite-Add-MicroBlaze-to-check_profiling_av.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0008-Patch-testsuite-Add-MicroBlaze-to-check_profiling_av.patch)13
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0008-Patch-microblaze-Fix-atomic-side-effects.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0009-Patch-microblaze-Fix-atomic-side-effects.patch)13
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0009-Patch-microblaze-Fix-atomic-boolean-return-value.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0010-Patch-microblaze-Fix-atomic-boolean-return-value.patch)10
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0010-Patch-microblaze-Fix-the-Microblaze-crash-with-msmal.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0011-Patch-microblaze-Fix-the-Microblaze-crash-with-msmal.patch)17
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0011-Patch-microblaze-Added-ashrsi3_with_size_opt.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0012-Patch-microblaze-Added-ashrsi3_with_size_opt.patch)11
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0012-Patch-microblaze-Use-bralid-for-profiler-calls.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0013-Patch-microblaze-Use-bralid-for-profiler-calls.patch)6
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0013-Patch-microblaze-Removed-moddi3-routinue.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0015-Patch-microblaze-Removed-moddi3-routinue.patch)10
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0014-Patch-microblaze-Add-INIT_PRIORITY-support.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0016-Patch-microblaze-Add-INIT_PRIORITY-support.patch)7
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0014-Patch-microblaze-Disable-fivopts-by-default.patch43
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0015-Patch-microblaze-Add-optimized-lshrsi3.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0017-Patch-microblaze-Add-optimized-lshrsi3.patch)10
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0016-Patch-microblaze-Add-cbranchsi4_reg.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0019-Patch-microblaze-Add-cbranchsi4_reg.patch)13
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0017-Patch-microblaze-Inline-Expansion-of-fsqrt-builtin.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0020-Patch-microblaze-Inline-Expansion-of-fsqrt-builtin.patch)31
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0018-PATCH-microblaze.md-Improve-adddi3-and-subdi3-insn-d.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0022-PATCH-microblaze.md-Improve-adddi3-and-subdi3-insn-d.patch)21
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0019-Patch-microblaze-Update-ashlsi3-movsf-patterns.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0023-Patch-microblaze-Update-ashlsi3-movsf-patterns.patch)30
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0020-Patch-microblaze-8-stage-pipeline-for-microblaze.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0024-Patch-microblaze-8-stage-pipeline-for-microblaze.patch)53
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0021-Patch-OPT-Update-heuristics-for-loop-invariant-for-a.patch47
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0021-Patch-microblaze-Correct-the-const-high-double-immed.patch58
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0022-Fix-microblaze-Fix-internal-compiler-error-with-msma.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0027-Fix-microblaze-Fix-internal-compiler-error-with-msma.patch)17
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0023-patch-microblaze-Fix-the-calculation-of-high-word-in.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0028-patch-microblaze-Fix-the-calculation-of-high-word-in.patch)10
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0024-Patch-microblaze-Add-new-bit-field-instructions.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0029-Patch-microblaze-Add-new-bit-field-instructions.patch)55
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0025-Patch-microblaze-Fix-bug-in-MB-version-calculation.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0030-Patch-microblaze-Fix-bug-in-MB-version-calculation.patch)26
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0025-Patch-rtl-Optimization-Better-register-pressure-esti.patch142
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0026-Fixing-the-issue-with-the-builtin_alloc.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0031-Fixing-the-issue-with-the-builtin_alloc.patch)11
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0026-Patch-microblaze-Correct-the-const-high-double-immed.patch69
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0027-Patch-Microblaze-update-in-constraints-for-bitfield-.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0032-Patch-Microblaze-update-in-constraints-for-bitfield-.patch)22
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0028-Patch-Microblaze-Removed-fsqrt-generation-for-double.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0033-Patch-Microblaze-Removed-fsqrt-generation-for-double.patch)6
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0029-Patch-MicroBlaze-Intial-commit-of-64-bit-Microblaze.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0034-Intial-commit-of-64-bit-Microblaze.patch)67
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0030-Intial-commit-for-64bit-MB-sources.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0035-Intial-commit-for-64bit-MB-sources.patch)170
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0031-re-arrangement-of-the-compare-branches.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0036-re-arrangement-of-the-compare-branches.patch)30
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0032-Patch-Microblaze-previous-commit-broke-the-handling-.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0037-Patch-Microblaze-previous-commit-broke-the-handling-.patch)8
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0033-Patch-Microblaze-Support-of-multilibs-with-m64.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0038-Patch-Microblaze-Support-of-multilibs-with-m64.patch)4
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0034-Fixed-issues-like.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0039-Fix-various-issues.patch)18
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0035-Fixed-below-issues.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0040-Fixed-below-issues.patch)35
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0036-Added-double-arith-instructions.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0041-Fix-various.patch)9
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0037-Fixed-the-issue-in-the-delay-slot-with-swap-instruct.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0042-Fixed-the-issue-in-the-delay-slot-with-swap-instruct.patch)6
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0038-Fixed-the-load-store-issue-with-the-32bit-arith-libr.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0043-Fixed-the-load-store-issue-with-the-32bit-arith-libr.patch)4
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0039-extending-the-Dwarf-support-to-64bit-Microblaze.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0044-extending-the-Dwarf-support-to-64bit-Microblaze.patch)6
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0040-fixing-the-typo-errors-in-umodsi3-file.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0045-fixing-the-typo-errors-in-umodsi3-file.patch)4
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0041-fixing-the-32bit-LTO-related-issue9-1014024.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0046-fixing-the-32bit-LTO-related-issue9-1014024.patch)6
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0042-Fixed-the-missing-stack-adjustment-in-prologue-of-mo.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0047-Fixed-the-missing-stack-adjustment-in-prologue-of-mo.patch)4
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0043-Patch-Microblaze-corrected-SPN-for-dlong-instruction.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0048-Patch-Microblaze-corrected-SPN-for-dlong-instruction.patch)6
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0044-fixing-the-long-long-long-mingw-toolchain-issue.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0049-fixing-the-long-long-long-mingw-toolchain-issue.patch)10
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0045-Fix-the-MB-64-bug-of-handling-QI-objects.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0050-Fix-the-MB-64-bug-of-handling-QI-objects.patch)10
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0046-Patch-Microblaze-We-will-check-the-possibility-of-pe.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0051-Patch-Microblaze-Check-the-possibiity-of-peephole2-o.patch)10
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0047-Patch-MicroBlaze-fixed-typos-in-mul-div-and-mod-asse.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0052-Patch-MicroBlaze-fixed-typos-in-mul-div-and-mod-asse.patch)4
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0048-Author-Nagaraju-nmekala-xilinx.com.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0053-Patch-microblaze-MB-64-removal-of-barrel-shift-instr.patch)49
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0049-Added-new-MB-64-single-register-arithmetic-instructi.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0055-Added-new-MB-64-single-register-arithmetic-instructi.patch)6
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0050-Patch-MicroBlaze-Added-support-for-64-bit-Immediate-.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0056-Patch-MicroBlaze-Added-support-for-64-bit-Immediate-.patch)10
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0051-Patch-microblaze-Fix-Compiler-crash-with-freg-struct.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0057-Patch-microblaze-Fix-Compiler-crash-with-freg-struct.patch)10
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0052-Patch-microblaze-Add-TARGET_OPTION_OPTIMIZATION-and-.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0054-Patch-microblaze-Add-TARGET_OPTION_OPTIMIZATION-and-.patch)34
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0053-Patch-microblaze-Reducing-Stack-space-for-arguments.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0018-Patch-microblaze-Reducing-Stack-space-for-arguments.patch)43
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/0058-microblaze-Avoid-UINTPTR_TYPE-macro-redefinition.patch29
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-10/microblaze-mulitlib-hack.patch (renamed from meta-microblaze/recipes-devtools/gcc/gcc-10/0059-microblaze-multilib-hack.patch)0
-rw-r--r--meta-microblaze/recipes-devtools/gcc/gcc-source_10.%.bbappend109
62 files changed, 641 insertions, 1051 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 af5a65cb..e0f7b12e 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,26 +1,32 @@
1From d2ebb14b318166dd91fe35bf3531d758dcbc995a Mon Sep 17 00:00:00 2001 1From e3f148dff6d6d926d1f39802f54abd59bd9e887c Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com> 2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Wed, 11 Jan 2017 13:13:57 +0530 3Date: Wed, 11 Jan 2017 13:13:57 +0530
4Subject: [PATCH 01/58] [LOCAL]: Testsuite - builtins tests require fpic 4Subject: [PATCH 01/54] LOCAL]: Testsuite - builtins tests require fpic
5 Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
5 6
6Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com> 7Conflicts:
8
9 gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp
7--- 10---
8 gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp | 5 +++++ 11 gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp | 8 ++++++++
9 1 file changed, 5 insertions(+) 12 1 file changed, 8 insertions(+)
10 13
11diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp b/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp 14diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp b/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp
12index 594c9297958..4103d43748d 100644 15index 594c9297958..8350d9401d2 100644
13--- a/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp 16--- a/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp
14+++ b/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp 17+++ b/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp
15@@ -48,6 +48,11 @@ if { [istarget *-*-eabi*] 18@@ -48,6 +48,14 @@ if { [istarget *-*-eabi*]
16 lappend additional_flags "-Wl,--allow-multiple-definition" 19 lappend additional_flags "-Wl,--allow-multiple-definition"
17 } 20 }
18 21
22+<<<<<<< HEAD
23+=======
19+if [istarget "microblaze*-*-linux*"] { 24+if [istarget "microblaze*-*-linux*"] {
20+ lappend additional_flags "-Wl,-zmuldefs" 25+ lappend additional_flags "-Wl,-zmuldefs"
21+ lappend additional_flags "-fPIC" 26+ lappend additional_flags "-fPIC"
22+} 27+}
23+ 28+
29+>>>>>>> 6ef6e5b... [LOCAL]: Testsuite - builtins tests require fpic
24 foreach src [lsort [find $srcdir/$subdir *.c]] { 30 foreach src [lsort [find $srcdir/$subdir *.c]] {
25 if {![string match *-lib.c $src] && [runtest_file_p $runtests $src]} { 31 if {![string match *-lib.c $src] && [runtest_file_p $runtests $src]} {
26 c-torture-execute [list $src \ 32 c-torture-execute [list $src \
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 976896da..431dc7ef 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,11 +1,10 @@
1From 54394232ffbaa9474f8a78c6882f08a48842242e Mon Sep 17 00:00:00 2001 1From bef1a4116efded9972e693ded5152f1d8670862e Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com> 2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Wed, 11 Jan 2017 14:31:10 +0530 3Date: Wed, 11 Jan 2017 14:31:10 +0530
4Subject: [PATCH 02/58] [LOCAL]: Quick fail g++.dg/opt/memcpy1.C 4Subject: [PATCH 02/54] [LOCAL]: Quick fail g++.dg/opt/memcpy1.C This
5 5 particular testcase fails with a timeout. Instead, fail it at compile-time
6This particular testcase fails with a timeout. Instead, fail it 6 for microblaze. This speeds up the testsuite without removing it from the
7at compile-time for microblaze. This speeds up the testsuite without 7 FAIL reports.
8removing it from the FAIL reports.
9 8
10Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com> 9Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
11--- 10---
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0003-LOCAL-For-dejagnu-static-testing-on-qemu-suppress-wa.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0003-LOCAL-For-dejagnu-static-testing-on-qemu-suppress-wa.patch
new file mode 100644
index 00000000..a2dc7ccc
--- /dev/null
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0003-LOCAL-For-dejagnu-static-testing-on-qemu-suppress-wa.patch
@@ -0,0 +1,35 @@
1From a063597f875142af49003e2f28b6c0f56e3b914d Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Wed, 11 Jan 2017 15:46:28 +0530
4Subject: [PATCH 03/54] [LOCAL]: For dejagnu static testing on qemu, suppress
5 warnings about multiple definitions from the test function and libc in line
6 with method used by powerpc. Dynamic linking and using a qemu binary which
7 understands sysroot resolves all test failures with builtins
8
9Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
10---
11 gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp | 4 ----
12 1 file changed, 4 deletions(-)
13
14diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp b/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp
15index 8350d9401d2..d7c9b281d01 100644
16--- a/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp
17+++ b/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp
18@@ -48,14 +48,10 @@ if { [istarget *-*-eabi*]
19 lappend additional_flags "-Wl,--allow-multiple-definition"
20 }
21
22-<<<<<<< HEAD
23-=======
24 if [istarget "microblaze*-*-linux*"] {
25 lappend additional_flags "-Wl,-zmuldefs"
26- lappend additional_flags "-fPIC"
27 }
28
29->>>>>>> 6ef6e5b... [LOCAL]: Testsuite - builtins tests require fpic
30 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--
342.17.1
35
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
deleted file mode 100644
index 8e6d22db..00000000
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0003-LOCAL-Testsuite-explicitly-add-fivopts-for-tests-tha.patch
+++ /dev/null
@@ -1,117 +0,0 @@
1From f0a446bcb453630d8116b30f542aee79407228ea Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Wed, 11 Jan 2017 15:28:38 +0530
4Subject: [PATCH 03/58] [LOCAL]: Testsuite - explicitly add -fivopts for tests
5 that depend on it
6
7(test gcc/testsuite/gcc.dg/tree-ssa/ivopts-lt.c doesnt exist in 4.6 branch)
8
9Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
10---
11 gcc/testsuite/g++.dg/tree-ssa/ivopts-2.C | 2 +-
12 gcc/testsuite/g++.dg/tree-ssa/ivopts-3.C | 2 +-
13 gcc/testsuite/gcc.dg/tree-ssa/loop-2.c | 2 +-
14 gcc/testsuite/gcc.dg/tree-ssa/loop-4.c | 2 +-
15 gcc/testsuite/gcc.dg/tree-ssa/loop-5.c | 2 +-
16 gcc/testsuite/gcc.dg/tree-ssa/pr19210-1.c | 2 +-
17 gcc/testsuite/gcc.dg/tree-ssa/pr19590.c | 2 +-
18 gcc/testsuite/gcc.dg/tree-ssa/reassoc-19.c | 2 +-
19 8 files changed, 8 insertions(+), 8 deletions(-)
20
21diff --git a/gcc/testsuite/g++.dg/tree-ssa/ivopts-2.C b/gcc/testsuite/g++.dg/tree-ssa/ivopts-2.C
22index 438db882043..ede883eb284 100644
23--- a/gcc/testsuite/g++.dg/tree-ssa/ivopts-2.C
24+++ b/gcc/testsuite/g++.dg/tree-ssa/ivopts-2.C
25@@ -1,5 +1,5 @@
26 /* { dg-do compile { target { i?86-*-* x86_64-*-* } } } */
27-/* { dg-options "-O2 -fdump-tree-ivopts-details" } */
28+/* { dg-options "-O2 -fivopts -fdump-tree-ivopts-details" } */
29
30 void test (int *b, int *e, int stride)
31 {
32diff --git a/gcc/testsuite/g++.dg/tree-ssa/ivopts-3.C b/gcc/testsuite/g++.dg/tree-ssa/ivopts-3.C
33index cbb6c850baa..34248021c23 100644
34--- a/gcc/testsuite/g++.dg/tree-ssa/ivopts-3.C
35+++ b/gcc/testsuite/g++.dg/tree-ssa/ivopts-3.C
36@@ -1,5 +1,5 @@
37 // { dg-do compile }
38-// { dg-options "-O2 -fdump-tree-ivopts-details" }
39+// { dg-options "-O2 -fivopts -fdump-tree-ivopts-details" }
40
41 class MinimalVec3
42 {
43diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c
44index bda25167353..22c8a5dcffe 100644
45--- a/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c
46+++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c
47@@ -1,7 +1,7 @@
48 /* A test for strength reduction and induction variable elimination. */
49
50 /* { dg-do compile } */
51-/* { dg-options "-O1 -fdump-tree-optimized" } */
52+/* { dg-options "-O1 -fivopts -fdump-tree-optimized" } */
53 /* { dg-require-effective-target size32plus } */
54
55 /* Size of this structure should be sufficiently weird so that no memory
56diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c
57index f0770abdbbc..65d74c8e620 100644
58--- a/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c
59+++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c
60@@ -1,7 +1,7 @@
61 /* A test for strength reduction and induction variable elimination. */
62
63 /* { dg-do compile } */
64-/* { dg-options "-O1 -fdump-tree-optimized" } */
65+/* { dg-options "-O1 -fivopts -fdump-tree-optimized" } */
66 /* { dg-require-effective-target size32plus } */
67
68 /* Size of this structure should be sufficiently weird so that no memory
69diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-5.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-5.c
70index 5f42857fe13..9bc86ee0d23 100644
71--- a/gcc/testsuite/gcc.dg/tree-ssa/loop-5.c
72+++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-5.c
73@@ -1,7 +1,7 @@
74 /* A test for induction variable merging. */
75
76 /* { dg-do compile } */
77-/* { dg-options "-O1 -fdump-tree-optimized" } */
78+/* { dg-options "-O1 -fivopts -fdump-tree-optimized" } */
79
80 void foo(long);
81
82diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr19210-1.c b/gcc/testsuite/gcc.dg/tree-ssa/pr19210-1.c
83index 50d86a00485..1e3eacd33d1 100644
84--- a/gcc/testsuite/gcc.dg/tree-ssa/pr19210-1.c
85+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr19210-1.c
86@@ -1,5 +1,5 @@
87 /* { dg-do compile } */
88-/* { dg-options "-O2 -fopt-info-loop-missed" } */
89+/* { dg-options "-O2 -fivopts -fopt-info-loop-missed" } */
90 extern void g(void);
91
92 void
93diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr19590.c b/gcc/testsuite/gcc.dg/tree-ssa/pr19590.c
94index 2c6cfc6f831..648e6e67e80 100644
95--- a/gcc/testsuite/gcc.dg/tree-ssa/pr19590.c
96+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr19590.c
97@@ -1,5 +1,5 @@
98 /* { dg-do compile } */
99-/* { dg-options "-O2 -fdump-tree-ivopts" } */
100+/* { dg-options "-O2 -fivopts -fdump-tree-ivopts" } */
101
102 void vnum_test8(int *data)
103 {
104diff --git a/gcc/testsuite/gcc.dg/tree-ssa/reassoc-19.c b/gcc/testsuite/gcc.dg/tree-ssa/reassoc-19.c
105index e911bfcd521..5d3e7e0801a 100644
106--- a/gcc/testsuite/gcc.dg/tree-ssa/reassoc-19.c
107+++ b/gcc/testsuite/gcc.dg/tree-ssa/reassoc-19.c
108@@ -1,5 +1,5 @@
109 /* { dg-do compile } */
110-/* { dg-options "-Os -fdump-tree-optimized" } */
111+/* { dg-options "-Os -fivopts -fdump-tree-optimized" } */
112
113 /* Slightly changed testcase from PR middle-end/40815. */
114 void bar(char*, char*, int);
115--
1162.17.1
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
deleted file mode 100644
index 4974462c..00000000
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0004-LOCAL-For-dejagnu-static-testing-on-qemu-suppress-wa.patch
+++ /dev/null
@@ -1,30 +0,0 @@
1From f8809fdebc3ef3927695c84224d3446fa13447d6 Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Wed, 11 Jan 2017 15:46:28 +0530
4Subject: [PATCH 04/58] [LOCAL]: For dejagnu static testing on qemu, suppress
5 warnings
6
7about multiple definitions from the test function and libc in line
8with method used by powerpc. Dynamic linking and using a qemu binary
9which understands sysroot resolves all test failures with builtins
10
11Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
12---
13 gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp | 1 -
14 1 file changed, 1 deletion(-)
15
16diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp b/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp
17index 4103d43748d..d7c9b281d01 100644
18--- a/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp
19+++ b/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp
20@@ -50,7 +50,6 @@ if { [istarget *-*-eabi*]
21
22 if [istarget "microblaze*-*-linux*"] {
23 lappend additional_flags "-Wl,-zmuldefs"
24- lappend additional_flags "-fPIC"
25 }
26
27 foreach src [lsort [find $srcdir/$subdir *.c]] {
28--
292.17.1
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/0004-Patch-testsuite-Add-MicroBlaze-to-target-supports-fo.patch
index c21492e8..661417d7 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/0004-Patch-testsuite-Add-MicroBlaze-to-target-supports-fo.patch
@@ -1,8 +1,8 @@
1From 802078fa3e76ea7fdb29f3baf1d4d9baae42bc0b Mon Sep 17 00:00:00 2001 1From c1028bcb40ccd8d61afc1ab798198948fbf74aa0 Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com> 2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Wed, 11 Jan 2017 15:50:35 +0530 3Date: Wed, 11 Jan 2017 15:50:35 +0530
4Subject: [PATCH 05/58] [Patch, testsuite]: Add MicroBlaze to target-supports 4Subject: [PATCH 04/54] [Patch, testsuite]: Add MicroBlaze to target-supports
5 for atomic builtin tests 5 for atomic buil. .tin tests
6 6
7MicroBlaze added to supported targets for atomic builtin tests. 7MicroBlaze 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
21diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp 21diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
22index 13761491e63..d2f65dac32c 100644 22index 0dfe3ae0651..86caf6db9a9 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@@ -7581,6 +7581,7 @@ proc check_effective_target_sync_int_long { } { 25@@ -7468,6 +7468,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*]
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/0005-Patch-testsuite-Update-MicroBlaze-strings-test.patch
index 9c8cce92..d34988c5 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/0005-Patch-testsuite-Update-MicroBlaze-strings-test.patch
@@ -1,9 +1,8 @@
1From 8c24cb4f95f46793ac7500a5d6181d93f2b0d2c5 Mon Sep 17 00:00:00 2001 1From ae5ce07a67df89dabba61414ba7dabbdabc1ee1b Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com> 2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Wed, 11 Jan 2017 16:20:01 +0530 3Date: Wed, 11 Jan 2017 16:20:01 +0530
4Subject: [PATCH 06/58] [Patch, testsuite]: Update MicroBlaze strings test 4Subject: [PATCH 05/54] [Patch, testsuite]: Update MicroBlaze strings test for
5 5 new scan-assembly output resulting in use of $LC label
6for new scan-assembly output resulting in use of $LC label
7 6
8ChangeLog/testsuite 7ChangeLog/testsuite
9 8
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/0006-Patch-testsuite-Allow-MicroBlaze-.weakext-pattern-in.patch
index 4d1e2017..4b45fcf1 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/0006-Patch-testsuite-Allow-MicroBlaze-.weakext-pattern-in.patch
@@ -1,11 +1,9 @@
1From 38ece4b2dc5d34c1b88b6ea8dd8e62a0986f8f6c Mon Sep 17 00:00:00 2001 1From 49cf9cd3fedce80a63e9d03d42482dd4596c27a7 Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com> 2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Thu, 12 Jan 2017 16:14:15 +0530 3Date: Thu, 12 Jan 2017 16:14:15 +0530
4Subject: [PATCH 07/58] [Patch, testsuite]: Allow MicroBlaze .weakext pattern 4Subject: [PATCH 06/54] [Patch, testsuite]: Allow MicroBlaze .weakext pattern
5 in regex match 5 in regex match Extend regex pattern to include optional ext at the end of
6 6 .weak to match the MicroBlaze weak label .weakext
7Extend regex pattern to include optional ext at the end of
8.weak to match the MicroBlaze weak label .weakext
9 7
10ChangeLog/testsuite 8ChangeLog/testsuite
11 9
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/0007-Patch-testsuite-Add-MicroBlaze-to-check_profiling_av.patch
index f96d7d57..8fa324ad 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/0007-Patch-testsuite-Add-MicroBlaze-to-check_profiling_av.patch
@@ -1,11 +1,10 @@
1From bc5f423bcfa24aa8c15548379bfc6b3f49e57c15 Mon Sep 17 00:00:00 2001 1From dc6cbb4e18a3f31441403146b8f159554c329897 Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com> 2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Thu, 12 Jan 2017 16:34:27 +0530 3Date: Thu, 12 Jan 2017 16:34:27 +0530
4Subject: [PATCH 08/58] [Patch, testsuite]: Add MicroBlaze to 4Subject: [PATCH 07/54] [Patch, testsuite]: Add MicroBlaze to
5 check_profiling_available 5 check_profiling_available Testsuite, add microblaze*-*-* target in
6 6 check_profiling_available inline with other archs setting
7Testsuite, add microblaze*-*-* target in check_profiling_available 7 profiling_available_saved to 0
8inline with other archs setting profiling_available_saved to 0
9 8
10Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com> 9Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
11--- 10---
@@ -13,7 +12,7 @@ Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
13 1 file changed, 1 insertion(+) 12 1 file changed, 1 insertion(+)
14 13
15diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp 14diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
16index d2f65dac32c..d949fbd8464 100644 15index 86caf6db9a9..cbd9024ece9 100644
17--- a/gcc/testsuite/lib/target-supports.exp 16--- a/gcc/testsuite/lib/target-supports.exp
18+++ b/gcc/testsuite/lib/target-supports.exp 17+++ b/gcc/testsuite/lib/target-supports.exp
19@@ -707,6 +707,7 @@ proc check_profiling_available { test_what } { 18@@ -707,6 +707,7 @@ proc check_profiling_available { test_what } {
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/0008-Patch-microblaze-Fix-atomic-side-effects.patch
index 45d93cee..1fa55729 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/0008-Patch-microblaze-Fix-atomic-side-effects.patch
@@ -1,12 +1,11 @@
1From eeeb8ecda7cb71c033c850ce36162c92c7d0b781 Mon Sep 17 00:00:00 2001 1From 602713d07d2e1b3a33a7f097baff270266aa4254 Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com> 2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Thu, 12 Jan 2017 16:41:43 +0530 3Date: Thu, 12 Jan 2017 16:41:43 +0530
4Subject: [PATCH 09/58] [Patch, microblaze]: Fix atomic side effects. 4Subject: [PATCH 08/54] [Patch, microblaze]: Fix atomic side effects. In
5 5 atomic_compare_and_swapsi, add side effects to prevent incorrect assumptions
6In atomic_compare_and_swapsi, add side effects to prevent incorrect 6 during optimization. Previously, the outputs were considered unused; this
7assumptions during optimization. Previously, the outputs were 7 generated assembly code with undefined side effects after invocation of the
8considered unused; this generated assembly code with 8 atomic.
9undefined side effects after invocation of the atomic.
10 9
11Signed-off-by: Kirk Meyer <kirk.meyer@sencore.com> 10Signed-off-by: Kirk Meyer <kirk.meyer@sencore.com>
12Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com> 11Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
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/0009-Patch-microblaze-Fix-atomic-boolean-return-value.patch
index 48f77215..666d344f 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/0009-Patch-microblaze-Fix-atomic-boolean-return-value.patch
@@ -1,11 +1,9 @@
1From 834448fc3493be56cc6a4f6b504569142f7f6070 Mon Sep 17 00:00:00 2001 1From d3d065c9645d795e03dab6db827c08231e011a1f Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com> 2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Thu, 12 Jan 2017 16:45:45 +0530 3Date: Thu, 12 Jan 2017 16:45:45 +0530
4Subject: [PATCH 10/58] [Patch, microblaze]: Fix atomic boolean return value. 4Subject: [PATCH 09/54] [Patch, microblaze]: Fix atomic boolean return value.
5 5 In atomic_compare_and_swapsi, fix boolean return value. Previously, it
6In atomic_compare_and_swapsi, fix boolean return value. 6 contained zero if successful and non-zero if unsuccessful.
7Previously, it contained zero if successful and non-zero
8if unsuccessful.
9 7
10Signed-off-by: Kirk Meyer <kirk.meyer@sencore.com> 8Signed-off-by: Kirk Meyer <kirk.meyer@sencore.com>
11Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com> 9Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
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/0010-Patch-microblaze-Fix-the-Microblaze-crash-with-msmal.patch
index e60e6f2f..22bf521d 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/0010-Patch-microblaze-Fix-the-Microblaze-crash-with-msmal.patch
@@ -1,14 +1,13 @@
1From 19457459592123c41c3ce9e084e165525e4d7bb0 Mon Sep 17 00:00:00 2001 1From 8d9d1f457e1e270250d8a6700d4a1e1fa09465df Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com> 2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Thu, 12 Jan 2017 16:50:17 +0530 3Date: Thu, 12 Jan 2017 16:50:17 +0530
4Subject: [PATCH 11/58] [Patch, microblaze]: Fix the Microblaze crash with 4Subject: [PATCH 10/54] [Patch, microblaze]: Fix the Microblaze crash with
5 msmall-divides flag 5 msmall-divides flag Compiler is crashing when we use msmall-divides and
6 6 mxl-barrel-shift flag. This is because when use above flags
7Compiler is crashing when we use msmall-divides and mxl-barrel-shift flag. 7 microblaze_expand_divide function will be called for division operation. In
8This is because when use above flags microblaze_expand_divide function will be 8 microblaze_expand_divide function we are using sub_reg but MicroBlaze doesn't
9called for division operation. In microblaze_expand_divide function we are 9 have subreg register due to this compiler was crashing. Changed the logic to
10using sub_reg but MicroBlaze doesn't have subreg register due to this compiler 10 avoid sub_reg call
11was crashing. Changed the logic to avoid sub_reg call
12 11
13Signed-off-by:Nagaraju Mekala <nmekala@xilix.com> 12Signed-off-by:Nagaraju Mekala <nmekala@xilix.com>
14--- 13---
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/0011-Patch-microblaze-Added-ashrsi3_with_size_opt.patch
index b9e39928..cce812bb 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/0011-Patch-microblaze-Added-ashrsi3_with_size_opt.patch
@@ -1,11 +1,10 @@
1From 9da28a01ffb778fc5cb5df27332cef21f890a63f Mon Sep 17 00:00:00 2001 1From 03429c91d1db134e1deda4c8e58bc0939d5fedf9 Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com> 2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Thu, 12 Jan 2017 16:52:56 +0530 3Date: Thu, 12 Jan 2017 16:52:56 +0530
4Subject: [PATCH 12/58] [Patch, microblaze]: Added ashrsi3_with_size_opt 4Subject: [PATCH 11/54] [Patch, microblaze]: Added ashrsi3_with_size_opt Added
5 5 ashrsi3_with_size_opt pattern to optimize the sra instructions when the -Os
6Added ashrsi3_with_size_opt pattern to optimize the sra instructions 6 optimization is used. lshrsi3_with_size_opt is being removed as it has
7when the -Os optimization is used. lshrsi3_with_size_opt is 7 conflicts with unsigned int variables
8being removed as it has conflicts with unsigned int variables
9 8
10Signed-off-by:Nagaraju Mekala <nmekala@xilix.com> 9Signed-off-by:Nagaraju Mekala <nmekala@xilix.com>
11--- 10---
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0013-Patch-microblaze-Use-bralid-for-profiler-calls.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0012-Patch-microblaze-Use-bralid-for-profiler-calls.patch
index 36af2652..e393f0fe 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0013-Patch-microblaze-Use-bralid-for-profiler-calls.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0012-Patch-microblaze-Use-bralid-for-profiler-calls.patch
@@ -1,9 +1,9 @@
1From 07a5c8b22a1cef99b2d4570ea080c503260161e4 Mon Sep 17 00:00:00 2001 1From 6803fbc540db39865037994daa122cf10c0eb33a Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com> 2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Tue, 17 Jan 2017 10:57:19 +0530 3Date: Tue, 17 Jan 2017 10:57:19 +0530
4Subject: [PATCH 13/58] [Patch, microblaze]: Use bralid for profiler calls 4Subject: [PATCH 12/54] [Patch, microblaze]: Use bralid for profiler calls
5 Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
5 6
6Signed-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(-)
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0015-Patch-microblaze-Removed-moddi3-routinue.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0013-Patch-microblaze-Removed-moddi3-routinue.patch
index e7fb9393..b601c98a 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0015-Patch-microblaze-Removed-moddi3-routinue.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0013-Patch-microblaze-Removed-moddi3-routinue.patch
@@ -1,14 +1,10 @@
1From c2a6652176751bc95e2f990179e90cfe58026feb Mon Sep 17 00:00:00 2001 1From 5de3888c460a341667150d569548b3309188e7e8 Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com> 2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Thu, 12 Jan 2017 17:36:16 +0530 3Date: Thu, 12 Jan 2017 17:36:16 +0530
4Subject: [PATCH 15/58] [Patch, microblaze]: Removed moddi3 routinue 4Subject: [PATCH 13/54] [Patch, microblaze]: Removed moddi3 routinue Using the
5 5 default moddi3 function as the existing implementation has many bugs
6Using the default moddi3 function as the existing implementation has many bugs
7 6
8Signed-off-by:Nagaraju <nmekala@xilix.com> 7Signed-off-by:Nagaraju <nmekala@xilix.com>
9
10Conflicts:
11 libgcc/config/microblaze/moddi3.S
12--- 8---
13 libgcc/config/microblaze/moddi3.S | 121 -------------------------- 9 libgcc/config/microblaze/moddi3.S | 121 --------------------------
14 libgcc/config/microblaze/t-microblaze | 3 +- 10 libgcc/config/microblaze/t-microblaze | 3 +-
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0016-Patch-microblaze-Add-INIT_PRIORITY-support.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0014-Patch-microblaze-Add-INIT_PRIORITY-support.patch
index 13c3ccd9..3bd6efd5 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0016-Patch-microblaze-Add-INIT_PRIORITY-support.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0014-Patch-microblaze-Add-INIT_PRIORITY-support.patch
@@ -1,9 +1,8 @@
1From 9a4253a92a5e1811693ea1707b5fc272908ec556 Mon Sep 17 00:00:00 2001 1From b9a9e8f9d0994c76819ec605a0b7cd113f3b2cf0 Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com> 2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Tue, 17 Jan 2017 14:41:58 +0530 3Date: Tue, 17 Jan 2017 14:41:58 +0530
4Subject: [PATCH 16/58] [Patch, microblaze]: Add INIT_PRIORITY support 4Subject: [PATCH 14/54] [Patch, microblaze]: Add INIT_PRIORITY support Added
5 5 TARGET_ASM_CONSTRUCTOR and TARGET_ASM_DESTRUCTOR macros.
6Added TARGET_ASM_CONSTRUCTOR and TARGET_ASM_DESTRUCTOR macros.
7 6
8These macros allows users to control the order of initialization 7These macros allows users to control the order of initialization
9of objects defined at namespace scope with the init_priority 8of objects defined at namespace scope with the init_priority
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0014-Patch-microblaze-Disable-fivopts-by-default.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0014-Patch-microblaze-Disable-fivopts-by-default.patch
deleted file mode 100644
index 51563ecb..00000000
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0014-Patch-microblaze-Disable-fivopts-by-default.patch
+++ /dev/null
@@ -1,43 +0,0 @@
1From 616f16089f0b01ab02008d7291df0972a99782e0 Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Tue, 17 Jan 2017 11:10:21 +0530
4Subject: [PATCH 14/58] [Patch, microblaze]: Disable fivopts by default
5
6Turn off ivopts by default. Interferes with cse.
7
8Changelog
9
102013-03-18 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
11
12 * gcc/common/config/microblaze/microblaze-common.c
13 (microblaze_option_optimization_table): Disable fivopts by default.
14
15Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
16Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
17---
18 gcc/common/config/microblaze/microblaze-common.c | 9 +++++++++
19 1 file changed, 9 insertions(+)
20
21diff --git a/gcc/common/config/microblaze/microblaze-common.c b/gcc/common/config/microblaze/microblaze-common.c
22index 4391f939626..0b9d5a1b453 100644
23--- a/gcc/common/config/microblaze/microblaze-common.c
24+++ b/gcc/common/config/microblaze/microblaze-common.c
25@@ -24,6 +24,15 @@
26 #include "common/common-target.h"
27 #include "common/common-target-def.h"
28
29+/* Implement TARGET_OPTION_OPTIMIZATION_TABLE. */
30+static const struct default_options microblaze_option_optimization_table[] =
31+ {
32+ /* Turn off ivopts by default. It messes up cse. */
33+ { OPT_LEVELS_ALL, OPT_fivopts, NULL, 0 },
34+ { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 },
35+ { OPT_LEVELS_NONE, 0, NULL, 0 }
36+ };
37+
38 #undef TARGET_DEFAULT_TARGET_FLAGS
39 #define TARGET_DEFAULT_TARGET_FLAGS TARGET_DEFAULT
40
41--
422.17.1
43
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0017-Patch-microblaze-Add-optimized-lshrsi3.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0015-Patch-microblaze-Add-optimized-lshrsi3.patch
index cfc06f74..ba20cf07 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0017-Patch-microblaze-Add-optimized-lshrsi3.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0015-Patch-microblaze-Add-optimized-lshrsi3.patch
@@ -1,11 +1,9 @@
1From 27c27a8876152bac78059a1b2d5a6f0ac9b8cee2 Mon Sep 17 00:00:00 2001 1From f448485f5e0507a7ab8be7f83c08f807200a3501 Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com> 2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Tue, 17 Jan 2017 15:23:57 +0530 3Date: Tue, 17 Jan 2017 15:23:57 +0530
4Subject: [PATCH 17/58] [Patch, microblaze]: Add optimized lshrsi3 4Subject: [PATCH 15/54] [Patch, microblaze]: Add optimized lshrsi3 When barrel
5 5 shifter is not present, the immediate value is greater than #5 and
6When barrel shifter is not present, the immediate value 6 optimization is -OS, the compiler will generate shift operation using loop.
7is greater than #5 and optimization is -OS, the
8compiler will generate shift operation using loop.
9 7
10Changelog 8Changelog
11 9
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0019-Patch-microblaze-Add-cbranchsi4_reg.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0016-Patch-microblaze-Add-cbranchsi4_reg.patch
index b78a9814..0c865224 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0019-Patch-microblaze-Add-cbranchsi4_reg.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0016-Patch-microblaze-Add-cbranchsi4_reg.patch
@@ -1,11 +1,10 @@
1From f43cb8572131074c7ce43a1d39c7ba6c85611e18 Mon Sep 17 00:00:00 2001 1From 386b8dcef2d774e9138515814be0fd579ade5af5 Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com> 2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Tue, 17 Jan 2017 17:04:37 +0530 3Date: Tue, 17 Jan 2017 17:04:37 +0530
4Subject: [PATCH 19/58] [Patch, microblaze]: Add cbranchsi4_reg 4Subject: [PATCH 16/54] [Patch, microblaze]: Add cbranchsi4_reg This patch
5 5 optimizes the generation of pcmpne/pcmpeq instruction if the compare
6This patch optimizes the generation of pcmpne/pcmpeq instruction if the 6 instruction has no immediate values.For the immediate values the xor
7compare instruction has no immediate values.For the immediate values the 7 instruction is generated
8xor instruction is generated
9 8
10Signed-off-by: Nagaraju Mekala <nmekala@xilix.com> 9Signed-off-by: Nagaraju Mekala <nmekala@xilix.com>
11Signed-off-by: Ajit Agarwal <ajitkum@xilinx.com> 10Signed-off-by: Ajit Agarwal <ajitkum@xilinx.com>
@@ -31,7 +30,7 @@ Conflicts:
31 7 files changed, 18 insertions(+), 18 deletions(-) 30 7 files changed, 18 insertions(+), 18 deletions(-)
32 31
33diff --git a/gcc/config/microblaze/microblaze-protos.h b/gcc/config/microblaze/microblaze-protos.h 32diff --git a/gcc/config/microblaze/microblaze-protos.h b/gcc/config/microblaze/microblaze-protos.h
34index 96f7bb67f6c..76ffc682df2 100644 33index 982b2abd2d4..c2f88813a8d 100644
35--- a/gcc/config/microblaze/microblaze-protos.h 34--- a/gcc/config/microblaze/microblaze-protos.h
36+++ b/gcc/config/microblaze/microblaze-protos.h 35+++ b/gcc/config/microblaze/microblaze-protos.h
37@@ -33,7 +33,7 @@ extern int microblaze_expand_shift (rtx *); 36@@ -33,7 +33,7 @@ extern int microblaze_expand_shift (rtx *);
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0020-Patch-microblaze-Inline-Expansion-of-fsqrt-builtin.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0017-Patch-microblaze-Inline-Expansion-of-fsqrt-builtin.patch
index cc1c3d7e..504083f3 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0020-Patch-microblaze-Inline-Expansion-of-fsqrt-builtin.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0017-Patch-microblaze-Inline-Expansion-of-fsqrt-builtin.patch
@@ -1,22 +1,19 @@
1From 1bbf48097cf2da98e03139b499a5a74bc68e6abc Mon Sep 17 00:00:00 2001 1From b6298861681965533c9b6dac5e26fbd62b52839d Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com> 2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Tue, 17 Jan 2017 17:11:04 +0530 3Date: Tue, 17 Jan 2017 17:11:04 +0530
4Subject: [PATCH 20/58] [Patch,microblaze]: Inline Expansion of fsqrt builtin. 4Subject: [PATCH 17/54] [Patch,microblaze]: Inline Expansion of fsqrt builtin.
5 5 The changes are made in the patch for the inline expansion of the fsqrt
6The changes are made in the patch for the inline expansion of 6 builtin with fqrt instruction. The sqrt math function takes double as
7the fsqrt builtin with fqrt instruction. The sqrt math function 7 argument and return double as argument. The pattern is selected while
8takes double as argument and return double as argument. The 8 expanding the unary op through expand_unop which passes DFmode and the DFmode
9pattern is selected while expanding the unary op through 9 pattern was not there returning zero. Thus the sqrt math function is not
10expand_unop which passes DFmode and the DFmode pattern was 10 inlined and expanded. The pattern with DFmode argument is added. Also the
11not there returning zero. Thus the sqrt math function is not 11 source and destination argument is not same the DF through two different
12inlined and expanded. The pattern with DFmode argument is added. 12 consecutive registers with lower 32 bit is the argument passed to sqrt and
13Also the source and destination argument is not same the DF 13 the higher 32 bit is zero. If the source and destinations are different the
14through two different consecutive registers with lower 32 bit 14 DFmode 64 bits registers is not set properly giving the problem in runtime.
15is the argument passed to sqrt and the higher 32 bit is zero. 15 Such changes are taken care in the implementation of the pattern for DFmode
16If the source and destinations are different the DFmode 64 bits 16 for inline expansion of the sqrt.
17registers is not set properly giving the problem in runtime. Such
18changes are taken care in the implementation of the pattern for
19DFmode for inline expansion of the sqrt.
20 17
21ChangeLog: 18ChangeLog:
222015-06-16 Ajit Agarwal <ajitkum@xilinx.com> 192015-06-16 Ajit Agarwal <ajitkum@xilinx.com>
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0022-PATCH-microblaze.md-Improve-adddi3-and-subdi3-insn-d.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0018-PATCH-microblaze.md-Improve-adddi3-and-subdi3-insn-d.patch
index 2e5afed8..14095d83 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0022-PATCH-microblaze.md-Improve-adddi3-and-subdi3-insn-d.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0018-PATCH-microblaze.md-Improve-adddi3-and-subdi3-insn-d.patch
@@ -1,17 +1,14 @@
1From b066cb189302814fcd91b38f2f9da830a2c5b8fe Mon Sep 17 00:00:00 2001 1From a8c6c13cc322ecc300bb2cdf22e3d6f1680e56be Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com> 2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Tue, 17 Jan 2017 18:07:24 +0530 3Date: Tue, 17 Jan 2017 18:07:24 +0530
4Subject: [PATCH 22/58] [PATCH] microblaze.md: Improve 'adddi3' and 'subdi3' 4Subject: [PATCH 18/54] [PATCH] microblaze.md: Improve 'adddi3' and 'subdi3'
5 insn definitions 5 insn definitions Change adddi3 to handle DI immediates as the second operand,
6 6 this requires modification to the output template however reduces the need to
7Change adddi3 to handle DI immediates as the second operand, this 7 specify seperate templates for 16-bit positive/negative immediate operands.
8requires modification to the output template however reduces the need to 8 The use of 32-bit immediates for the addi and addic instructions is handled
9specify seperate templates for 16-bit positive/negative immediate 9 by the assembler, which will emit the imm instructions when required. This
10operands. The use of 32-bit immediates for the addi and addic 10 conveniently handles the optimizable cases where the immediate constant value
11instructions is handled by the assembler, which will emit the imm 11 does not need the higher half words of the operands upper/lower words.
12instructions when required. This conveniently handles the optimizable
13cases where the immediate constant value does not need the higher half
14words of the operands upper/lower words.
15 12
16Change the constraints of the subdi3 instruction definition such that it 13Change the constraints of the subdi3 instruction definition such that it
17does not match the second operand as an immediate value. This is because 14does not match the second operand as an immediate value. This is because
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0023-Patch-microblaze-Update-ashlsi3-movsf-patterns.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0019-Patch-microblaze-Update-ashlsi3-movsf-patterns.patch
index fa16749e..4a490119 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0023-Patch-microblaze-Update-ashlsi3-movsf-patterns.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0019-Patch-microblaze-Update-ashlsi3-movsf-patterns.patch
@@ -1,13 +1,11 @@
1From 98018d020d9fbae38ea19627dec64d03d7f21fac Mon Sep 17 00:00:00 2001 1From 3a9ee185eb462f880ceb4ddd125d4a98e0759873 Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com> 2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Tue, 17 Jan 2017 18:18:41 +0530 3Date: Tue, 17 Jan 2017 18:18:41 +0530
4Subject: [PATCH 23/58] [Patch, microblaze]: Update ashlsi3 & movsf patterns 4Subject: [PATCH 19/54] [Patch, microblaze]: Update ashlsi3 & movsf patterns
5 5 This patch removes the use of HOST_WIDE_INT_PRINT_HEX macro in print_operand
6This patch removes the use of HOST_WIDE_INT_PRINT_HEX macro in 6 of ashlsi3_with_mul_nodelay,ashlsi3_with_mul_delay and movsf_internal
7print_operand of ashlsi3_with_mul_nodelay,ashlsi3_with_mul_delay 7 patterns beacuse HOST_WIDE_INT_PRINT_HEX is generating 64-bit value which our
8and movsf_internal patterns beacuse HOST_WIDE_INT_PRINT_HEX 8 instruction doesn't support so using gen_int_mode function
9is generating 64-bit value which our instruction doesn't support
10so using gen_int_mode function
11 9
12Signed-off-by :Nagaraju Mekala <nmekala@xilix.com> 10Signed-off-by :Nagaraju Mekala <nmekala@xilix.com>
13 :Ajit Agarwal <ajitkum@xilinx.com> 11 :Ajit Agarwal <ajitkum@xilinx.com>
@@ -24,9 +22,23 @@ ChangeLog:
24 updated the 'F' case to use "unsinged int" instead 22 updated the 'F' case to use "unsinged int" instead
25 of HOST_WIDE_INT_PRINT_HEX 23 of HOST_WIDE_INT_PRINT_HEX
26--- 24---
25 gcc/config/microblaze/microblaze.c | 2 +-
27 gcc/config/microblaze/microblaze.md | 10 ++++++++-- 26 gcc/config/microblaze/microblaze.md | 10 ++++++++--
28 1 file changed, 8 insertions(+), 2 deletions(-) 27 2 files changed, 9 insertions(+), 3 deletions(-)
29 28
29diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c
30index 9eae5515c60..0a4619eec0c 100644
31--- a/gcc/config/microblaze/microblaze.c
32+++ b/gcc/config/microblaze/microblaze.c
33@@ -2468,7 +2468,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, "0x%lx", value_long);
38+ fprintf (file, "0x%08x", (unsigned int) value_long);
39 }
40 else
41 {
30diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md 42diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md
31index efd2c34e0b7..be8bbda2bfb 100644 43index efd2c34e0b7..be8bbda2bfb 100644
32--- a/gcc/config/microblaze/microblaze.md 44--- a/gcc/config/microblaze/microblaze.md
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0024-Patch-microblaze-8-stage-pipeline-for-microblaze.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0020-Patch-microblaze-8-stage-pipeline-for-microblaze.patch
index 8e0eda3c..07cf635d 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0024-Patch-microblaze-8-stage-pipeline-for-microblaze.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0020-Patch-microblaze-8-stage-pipeline-for-microblaze.patch
@@ -1,61 +1,28 @@
1From 3f98e90620e0ae6d76a1ba18e97389feb095c3e4 Mon Sep 17 00:00:00 2001 1From bfdb38133201f7df01d09dc7e7ee3043a35c1d3e Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com> 2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Tue, 17 Jan 2017 19:50:34 +0530 3Date: Mon, 9 Nov 2020 19:54:39 +0530
4Subject: [PATCH 24/58] [Patch, microblaze]: 8-stage pipeline for microblaze 4Subject: [PATCH 20/54] [Patch, microblaze]: 8-stage pipeline for microblaze
5 5
6This patch adds the support for the 8-stage pipeline. The new 8-stage 6This patch adds the support for the 8-stage pipeline. The new 8-stage
7pipeline reduces the latencies of float & integer division drastically 7pipeline reduces the latencies of float & integer division drastically
8 8
9Signed-off-by :Nagaraju Mekala <nmekala@xilix.com> 9Signed-off-by :Nagaraju Mekala <nmekala@xilix.com>
10
11ChangeLog:
122016-01-18 Nagaraju Mekala <nmekala@xilix.com>
13
14 *microblaze.md (define_automaton mbpipe_8): New
15
16 *microblaze.c (microblaze_option_override): Update
17 Updated the logic to generate only when MB version is 10.0
18
19 *microblaze.h (pipeline_type): Update
20 Update the enum with MICROBLAZE_PIPE_8
21
22 *microblaze.opt (mxl-frequency): New
23 New flag added for 8-stage pipeline
24--- 10---
25 gcc/config/microblaze/microblaze.c | 18 ++++++- 11 gcc/config/microblaze/microblaze.c | 11 ++++
26 gcc/config/microblaze/microblaze.h | 3 +- 12 gcc/config/microblaze/microblaze.h | 3 +-
27 gcc/config/microblaze/microblaze.md | 79 +++++++++++++++++++++++++++- 13 gcc/config/microblaze/microblaze.md | 79 +++++++++++++++++++++++++++-
28 gcc/config/microblaze/microblaze.opt | 4 ++ 14 gcc/config/microblaze/microblaze.opt | 4 ++
29 4 files changed, 100 insertions(+), 4 deletions(-) 15 4 files changed, 94 insertions(+), 3 deletions(-)
30 16
31diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c 17diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c
32index a4bdf66f045..a3996119bd7 100644 18index 0a4619eec0c..0dc96e481b7 100644
33--- a/gcc/config/microblaze/microblaze.c 19--- a/gcc/config/microblaze/microblaze.c
34+++ b/gcc/config/microblaze/microblaze.c 20+++ b/gcc/config/microblaze/microblaze.c
35@@ -164,6 +164,9 @@ int microblaze_no_unsafe_delay; 21@@ -1840,6 +1840,17 @@ microblaze_option_override (void)
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)
55 "%<-mcpu=v8.30.a%>"); 22 "%<-mcpu=v8.30.a%>");
56 TARGET_REORDER = 0; 23 TARGET_REORDER = 0;
57 } 24 }
58+ ver = ver_int - microblaze_version_to_int("v10.0"); 25+ ver = microblaze_version_to_int("v10.0");
59+ if (ver < 0) 26+ if (ver < 0)
60+ { 27+ {
61+ if (TARGET_AREA_OPTIMIZED_2) 28+ if (TARGET_AREA_OPTIMIZED_2)
@@ -65,14 +32,12 @@ index a4bdf66f045..a3996119bd7 100644
65+ { 32+ {
66+ if (TARGET_AREA_OPTIMIZED_2) 33+ if (TARGET_AREA_OPTIMIZED_2)
67+ microblaze_pipe = MICROBLAZE_PIPE_8; 34+ microblaze_pipe = MICROBLAZE_PIPE_8;
68+ if (TARGET_BARREL_SHIFT)
69+ microblaze_has_bitfield = 1;
70+ } 35+ }
71 36
72 if (TARGET_MULTIPLY_HIGH && TARGET_SOFT_MUL) 37 if (TARGET_MULTIPLY_HIGH && TARGET_SOFT_MUL)
73 error ("%<-mxl-multiply-high%> requires %<-mno-xl-soft-mul%>"); 38 error ("%<-mxl-multiply-high%> requires %<-mno-xl-soft-mul%>");
74diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h 39diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h
75index 1e155e4041c..8b0db2c1718 100644 40index 8aa3f155790..8a668278337 100644
76--- a/gcc/config/microblaze/microblaze.h 41--- a/gcc/config/microblaze/microblaze.h
77+++ b/gcc/config/microblaze/microblaze.h 42+++ b/gcc/config/microblaze/microblaze.h
78@@ -27,7 +27,8 @@ 43@@ -27,7 +27,8 @@
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0021-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
deleted file mode 100644
index b4d03172..00000000
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0021-Patch-OPT-Update-heuristics-for-loop-invariant-for-a.patch
+++ /dev/null
@@ -1,47 +0,0 @@
1From fe7962c6cc54a5d5f80db90ccc06b8603ddeb74f Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Tue, 17 Jan 2017 17:33:31 +0530
4Subject: [PATCH 21/58] [Patch] OPT: Update heuristics for loop-invariant for
5 address arithmetic
6
7The changes are made in the patch to update the heuristics
8for loop invariant for address arithmetic. The heuristics is
9changed to calculate the estimated register pressure cost when
10ira based register pressure is not enabled. The estimated
11register pressure cost modifies the existing calculation cost
12associated to perform the Loop invariant code motion for address
13arithmetic.
14
15ChangeLog:
162015-06-17 Ajit Agarwal <ajitkum@xilinx.com>
17 Nagaraju Mekala <nmekala@xilinx.com>
18
19 * loop-invariant.c (gain_for_invariant): update the
20 heuristics for estimate_reg_pressure_cost.
21
22Signed-off-by:Ajit Agarwal ajitkum@xilinx.com
23 Nagaraju Mekala nmekala@xilinx.com
24---
25 gcc/loop-invariant.c | 6 ++----
26 1 file changed, 2 insertions(+), 4 deletions(-)
27
28diff --git a/gcc/loop-invariant.c b/gcc/loop-invariant.c
29index 37ae6549e56..f6385d6cf43 100644
30--- a/gcc/loop-invariant.c
31+++ b/gcc/loop-invariant.c
32@@ -1465,10 +1465,8 @@ gain_for_invariant (struct invariant *inv, unsigned *regs_needed,
33
34 if (! flag_ira_loop_pressure)
35 {
36- size_cost = (estimate_reg_pressure_cost (new_regs[0] + regs_needed[0],
37- regs_used, speed, call_p)
38- - estimate_reg_pressure_cost (new_regs[0],
39- regs_used, speed, call_p));
40+ size_cost = estimate_reg_pressure_cost (regs_needed[0],
41+ regs_used, speed, call_p);
42 }
43 else if (ret < 0)
44 return -1;
45--
462.17.1
47
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0021-Patch-microblaze-Correct-the-const-high-double-immed.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0021-Patch-microblaze-Correct-the-const-high-double-immed.patch
new file mode 100644
index 00000000..f362cea8
--- /dev/null
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0021-Patch-microblaze-Correct-the-const-high-double-immed.patch
@@ -0,0 +1,58 @@
1From af01da22797795408d45dcf03076dc8153c7029e Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Mon, 9 Nov 2020 21:14:54 +0530
4Subject: [PATCH 21/54] [Patch, microblaze]: Correct the const high double
5 immediate value with this patch the loading of the DI mode immediate values
6 will be using REAL_VALUE_FROM_CONST_DOUBLE and REAL_VALUE_TO_TARGET_DOUBLE
7 functions, as CONST_DOUBLE_HIGH was returning the sign extension value even
8 of the unsigned long long constants also
9
10Signed-off-by :Nagaraju Mekala <nmekala@xilix.com>
11 Ajit Agarwal <ajitkum@xilinx.com>
12---
13 gcc/config/microblaze/microblaze.c | 6 ++++--
14 gcc/testsuite/gcc.target/microblaze/others/long.c | 9 +++++++++
15 2 files changed, 13 insertions(+), 2 deletions(-)
16 create mode 100644 gcc/testsuite/gcc.target/microblaze/others/long.c
17
18diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c
19index 0dc96e481b7..5d395f047f7 100644
20--- a/gcc/config/microblaze/microblaze.c
21+++ b/gcc/config/microblaze/microblaze.c
22@@ -2452,14 +2452,16 @@ print_operand (FILE * file, rtx op, int letter)
23 else if (letter == 'h' || letter == 'j')
24 {
25 long val[2];
26+ long l[2];
27 if (code == CONST_DOUBLE)
28 {
29 if (GET_MODE (op) == DFmode)
30 REAL_VALUE_TO_TARGET_DOUBLE (*CONST_DOUBLE_REAL_VALUE (op), val);
31 else
32 {
33- val[0] = CONST_DOUBLE_HIGH (op);
34- val[1] = CONST_DOUBLE_LOW (op);
35+ REAL_VALUE_TO_TARGET_DOUBLE (*CONST_DOUBLE_REAL_VALUE (op), l);
36+ val[1] = l[WORDS_BIG_ENDIAN == 0];
37+ val[0] = l[WORDS_BIG_ENDIAN != 0];
38 }
39 }
40 else if (code == CONST_INT)
41diff --git a/gcc/testsuite/gcc.target/microblaze/others/long.c b/gcc/testsuite/gcc.target/microblaze/others/long.c
42new file mode 100644
43index 00000000000..b6b55d5ad65
44--- /dev/null
45+++ b/gcc/testsuite/gcc.target/microblaze/others/long.c
46@@ -0,0 +1,9 @@
47+#define BASEADDR 0xF0000000ULL
48+int main ()
49+{
50+ unsigned long long start;
51+ start = (unsigned long long) BASEADDR;
52+ return 0;
53+}
54+/* { dg-final { scan-assembler "addik\tr(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),r0,0x00000000" } } */
55+/* { dg-final { scan-assembler "addik\tr(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),r0,0xf0000000" } } */
56--
572.17.1
58
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0027-Fix-microblaze-Fix-internal-compiler-error-with-msma.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0022-Fix-microblaze-Fix-internal-compiler-error-with-msma.patch
index 3869db15..3faef052 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0027-Fix-microblaze-Fix-internal-compiler-error-with-msma.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0022-Fix-microblaze-Fix-internal-compiler-error-with-msma.patch
@@ -1,12 +1,11 @@
1From ea79d97f430d554921d94d30cb8db851cce6664b Mon Sep 17 00:00:00 2001 1From 7349def8102c09fd09e735daa9fc890bee323e79 Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com> 2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Wed, 18 Jan 2017 11:49:58 +0530 3Date: Wed, 18 Jan 2017 11:49:58 +0530
4Subject: [PATCH 27/58] [Fix, microblaze]: Fix internal compiler error with 4Subject: [PATCH 22/54] [Fix, microblaze]: Fix internal compiler error with
5 msmall-divides 5 msmall-divides This patch will fix the internal error
6 6 microblaze_expand_divide function which comes because of rtx PLUS where the
7This patch will fix the internal error microblaze_expand_divide function which comes because 7 mem_rtx is of type SI and the operand is of type QImode. This patch modifies
8of rtx PLUS where the mem_rtx is of type SI and the operand is of type QImode. 8 the mem_rtx as QImode and Plus as QImode to fix the error.
9This patch modifies the mem_rtx as QImode and Plus as QImode to fix the error.
10 9
11Signed-off-by :Nagaraju Mekala <nmekala@xilix.com> 10Signed-off-by :Nagaraju Mekala <nmekala@xilix.com>
12 Ajit Agarwal <ajitkum@xilinx.com> 11 Ajit Agarwal <ajitkum@xilinx.com>
@@ -20,10 +19,10 @@ ChangeLog:
20 1 file changed, 1 insertion(+), 1 deletion(-) 19 1 file changed, 1 insertion(+), 1 deletion(-)
21 20
22diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c 21diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c
23index 73d0e010cda..f7c29ef28f5 100644 22index 5d395f047f7..29b2f6b016b 100644
24--- a/gcc/config/microblaze/microblaze.c 23--- a/gcc/config/microblaze/microblaze.c
25+++ b/gcc/config/microblaze/microblaze.c 24+++ b/gcc/config/microblaze/microblaze.c
26@@ -3902,7 +3902,7 @@ microblaze_expand_divide (rtx operands[]) 25@@ -3767,7 +3767,7 @@ microblaze_expand_divide (rtx operands[])
27 emit_insn (gen_ashlsi3_bshift (regt1, operands[1], GEN_INT(4))); 26 emit_insn (gen_ashlsi3_bshift (regt1, operands[1], GEN_INT(4)));
28 emit_insn (gen_addsi3 (regt1, regt1, operands[2])); 27 emit_insn (gen_addsi3 (regt1, regt1, operands[2]));
29 mem_rtx = gen_rtx_MEM (QImode, 28 mem_rtx = gen_rtx_MEM (QImode,
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0028-patch-microblaze-Fix-the-calculation-of-high-word-in.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0023-patch-microblaze-Fix-the-calculation-of-high-word-in.patch
index 3f9dd69b..1c4f8ca9 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0028-patch-microblaze-Fix-the-calculation-of-high-word-in.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0023-patch-microblaze-Fix-the-calculation-of-high-word-in.patch
@@ -1,8 +1,8 @@
1From fa067a4b7b65aae3671bb02d77c580c9e35fc384 Mon Sep 17 00:00:00 2001 1From ad3d0a29a4895351008ce959138c13b8f5924464 Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com> 2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Wed, 18 Jan 2017 12:03:39 +0530 3Date: Wed, 18 Jan 2017 12:03:39 +0530
4Subject: [PATCH 28/58] [patch,microblaze]: Fix the calculation of high word in 4Subject: [PATCH 23/54] [patch,microblaze]: Fix the calculation of high word in
5 a long long 64-bit 5 a long long 6. .4-bit
6 6
7This patch will change the calculation of high word in a long long 64-bit. 7This patch will change the calculation of high word in a long long 64-bit.
8Earlier to this patch the high word of long long word (0xF0000000ULL) is 8Earlier 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
29diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c 29diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c
30index f7c29ef28f5..0a73a6c32b4 100644 30index 29b2f6b016b..4710def18cf 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@@ -2603,9 +2603,6 @@ print_operand (FILE * file, rtx op, int letter) 33@@ -2468,9 +2468,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;
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0029-Patch-microblaze-Add-new-bit-field-instructions.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0024-Patch-microblaze-Add-new-bit-field-instructions.patch
index dfdb479c..590cb38c 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0029-Patch-microblaze-Add-new-bit-field-instructions.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0024-Patch-microblaze-Add-new-bit-field-instructions.patch
@@ -1,7 +1,7 @@
1From 341bf8ad4e55693d00d4d8c916f4c347e7186dd4 Mon Sep 17 00:00:00 2001 1From 50f5f8341ba39f2e12eef4a149e59f71f032f7d3 Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com> 2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Wed, 18 Jan 2017 12:14:51 +0530 3Date: Tue, 10 Nov 2020 09:51:24 +0530
4Subject: [PATCH 29/58] [Patch, microblaze]: Add new bit-field instructions 4Subject: [PATCH 24/54] [Patch, microblaze]: Add new bit-field instructions
5 5
6This patches adds new bsefi and bsifi instructions. 6This patches adds new bsefi and bsifi instructions.
7BSEFI- The instruction shall extract a bit field from a 7BSEFI- The instruction shall extract a bit field from a
@@ -12,18 +12,37 @@ from a register at another position in the destination register.
12The rest of the bits in the destination register shall be unchanged 12The rest of the bits in the destination register shall be unchanged
13 13
14Signed-off-by :Nagaraju Mekala <nmekala@xilix.com> 14Signed-off-by :Nagaraju Mekala <nmekala@xilix.com>
15
16ChangeLog:
17 2016-02-03 Nagaraju Mekala <nmekala@xilix.com>
18
19 *microblaze.md (Update): Added new patterns
20--- 15---
16 gcc/config/microblaze/microblaze.c | 5 ++
21 gcc/config/microblaze/microblaze.h | 2 + 17 gcc/config/microblaze/microblaze.h | 2 +
22 gcc/config/microblaze/microblaze.md | 73 +++++++++++++++++++++++++++++ 18 gcc/config/microblaze/microblaze.md | 73 +++++++++++++++++++++++++++++
23 2 files changed, 75 insertions(+) 19 3 files changed, 80 insertions(+)
24 20
21diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c
22index 4710def18cf..14c652325a8 100644
23--- a/gcc/config/microblaze/microblaze.c
24+++ b/gcc/config/microblaze/microblaze.c
25@@ -164,6 +164,9 @@ int microblaze_no_unsafe_delay;
26 /* Set to one if the targeted core has the CLZ insn. */
27 int microblaze_has_clz = 0;
28
29+/* Set to one if the targeted core has barrel-shift and cpu > 10.0 */
30+int microblaze_has_bitfield = 0;
31+
32 /* Which CPU pipeline do we use. We haven't really standardized on a CPU
33 version having only a particular type of pipeline. There can still be
34 options on the CPU to scale pipeline features up or down. :(
35@@ -1850,6 +1853,8 @@ microblaze_option_override (void)
36 {
37 if (TARGET_AREA_OPTIMIZED_2)
38 microblaze_pipe = MICROBLAZE_PIPE_8;
39+ if (TARGET_BARREL_SHIFT)
40+ microblaze_has_bitfield = 1;
41 }
42
43 if (TARGET_MULTIPLY_HIGH && TARGET_SOFT_MUL)
25diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h 44diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h
26index 8b0db2c1718..b5b7b22cec9 100644 45index 8a668278337..857cb1cd9d0 100644
27--- a/gcc/config/microblaze/microblaze.h 46--- a/gcc/config/microblaze/microblaze.h
28+++ b/gcc/config/microblaze/microblaze.h 47+++ b/gcc/config/microblaze/microblaze.h
29@@ -44,6 +44,7 @@ extern int microblaze_dbx_regno[]; 48@@ -44,6 +44,7 @@ extern int microblaze_dbx_regno[];
@@ -34,16 +53,16 @@ index 8b0db2c1718..b5b7b22cec9 100644
34 extern enum pipeline_type microblaze_pipe; 53 extern enum pipeline_type microblaze_pipe;
35 54
36 #define OBJECT_FORMAT_ELF 55 #define OBJECT_FORMAT_ELF
37@@ -62,6 +63,7 @@ extern enum pipeline_type microblaze_pipe; 56@@ -63,6 +64,7 @@ extern enum pipeline_type microblaze_pipe;
38
39 /* Do we have CLZ? */ 57 /* Do we have CLZ? */
40 #define TARGET_HAS_CLZ (TARGET_PATTERN_COMPARE && microblaze_has_clz) 58 #define TARGET_HAS_CLZ (TARGET_PATTERN_COMPARE && microblaze_has_clz)
41+#define TARGET_HAS_BITFIELD (TARGET_BARREL_SHIFT && microblaze_has_bitfield)
42 59
60+#define TARGET_HAS_BITFIELD (TARGET_BARREL_SHIFT && microblaze_has_bitfield)
43 /* The default is to support PIC. */ 61 /* The default is to support PIC. */
44 #define TARGET_SUPPORTS_PIC 1 62 #define TARGET_SUPPORTS_PIC 1
63
45diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md 64diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md
46index c407a81c51e..fa6aabdb9d4 100644 65index c407a81c51e..3e6e2b9276d 100644
47--- a/gcc/config/microblaze/microblaze.md 66--- a/gcc/config/microblaze/microblaze.md
48+++ b/gcc/config/microblaze/microblaze.md 67+++ b/gcc/config/microblaze/microblaze.md
49@@ -982,6 +982,8 @@ 68@@ -982,6 +982,8 @@
@@ -72,7 +91,7 @@ index c407a81c51e..fa6aabdb9d4 100644
72+ (zero_extract:SI (match_operand:SI 1 "register_operand" "r") 91+ (zero_extract:SI (match_operand:SI 1 "register_operand" "r")
73+ (match_operand:SI 2 "immediate_operand" "I") 92+ (match_operand:SI 2 "immediate_operand" "I")
74+ (match_operand:SI 3 "immediate_operand" "I")))] 93+ (match_operand:SI 3 "immediate_operand" "I")))]
75+"TARGET_HAS_BITFIELD" 94+""
76+" 95+"
77+{ 96+{
78+ unsigned HOST_WIDE_INT len = UINTVAL (operands[2]); 97+ unsigned HOST_WIDE_INT len = UINTVAL (operands[2]);
@@ -98,7 +117,7 @@ index c407a81c51e..fa6aabdb9d4 100644
98+ (zero_extract:SI (match_operand:SI 1 "register_operand" "r") 117+ (zero_extract:SI (match_operand:SI 1 "register_operand" "r")
99+ (match_operand:SI 2 "immediate_operand" "I") 118+ (match_operand:SI 2 "immediate_operand" "I")
100+ (match_operand:SI 3 "immediate_operand" "I")))] 119+ (match_operand:SI 3 "immediate_operand" "I")))]
101+ "TARGET_HAS_BITFIELD && (UINTVAL (operands[2]) > 0) 120+ "TARGET_BARREL_SHIFT && (UINTVAL (operands[2]) > 0)
102+ && ((UINTVAL (operands[2]) + UINTVAL (operands[3])) <= 32)" 121+ && ((UINTVAL (operands[2]) + UINTVAL (operands[3])) <= 32)"
103+ "bsefi %0,%1,%2,%3" 122+ "bsefi %0,%1,%2,%3"
104+ [(set_attr "type" "bshift") 123+ [(set_attr "type" "bshift")
@@ -109,7 +128,7 @@ index c407a81c51e..fa6aabdb9d4 100644
109+ (match_operand:SI 1 "immediate_operand" "I") 128+ (match_operand:SI 1 "immediate_operand" "I")
110+ (match_operand:SI 2 "immediate_operand" "I")) 129+ (match_operand:SI 2 "immediate_operand" "I"))
111+ (match_operand:SI 3 "register_operand" "r"))] 130+ (match_operand:SI 3 "register_operand" "r"))]
112+ "TARGET_HAS_BITFIELD" 131+ ""
113+ " 132+ "
114+{ 133+{
115+ unsigned HOST_WIDE_INT len = UINTVAL (operands[1]); 134+ unsigned HOST_WIDE_INT len = UINTVAL (operands[1]);
@@ -131,7 +150,7 @@ index c407a81c51e..fa6aabdb9d4 100644
131+ (match_operand:SI 1 "immediate_operand" "I") 150+ (match_operand:SI 1 "immediate_operand" "I")
132+ (match_operand:SI 2 "immediate_operand" "I")) 151+ (match_operand:SI 2 "immediate_operand" "I"))
133+ (match_operand:SI 3 "register_operand" "r"))] 152+ (match_operand:SI 3 "register_operand" "r"))]
134+ "TARGET_HAS_BITFIELD && UINTVAL (operands[1]) > 0 153+ "TARGET_BARREL_SHIFT && UINTVAL (operands[1]) > 0
135+ && UINTVAL (operands[1]) + UINTVAL (operands[2]) <= 32" 154+ && UINTVAL (operands[1]) + UINTVAL (operands[2]) <= 32"
136+ "bsifi %0, %3, %1, %2" 155+ "bsifi %0, %3, %1, %2"
137+ [(set_attr "type" "bshift") 156+ [(set_attr "type" "bshift")
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0030-Patch-microblaze-Fix-bug-in-MB-version-calculation.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0025-Patch-microblaze-Fix-bug-in-MB-version-calculation.patch
index bb773239..da24f113 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0030-Patch-microblaze-Fix-bug-in-MB-version-calculation.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0025-Patch-microblaze-Fix-bug-in-MB-version-calculation.patch
@@ -1,20 +1,18 @@
1From df38540af411564f428079335c8d1e695dc1d723 Mon Sep 17 00:00:00 2001 1From cb67b2e64c0d5bd32d36cb32def5f889122fc37a Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com> 2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Wed, 18 Jan 2017 12:42:10 +0530 3Date: Wed, 18 Jan 2017 12:42:10 +0530
4Subject: [PATCH 30/58] [Patch, microblaze]: Fix bug in MB version calculation 4Subject: [PATCH 25/54] [Patch, microblaze]: Fix bug in MB version calculation
5 5 This patch fixes the bug in microblaze_version_to_int function. Earlier the
6This patch fixes the bug in microblaze_version_to_int function. 6 conversion of vXX.YY.Z to int has a bug which is fixed now.
7Earlier the conversion of vXX.YY.Z to int has a bug which is
8fixed now.
9 7
10Signed-off-by : Mahesh Bodapati <mbodapat@xilinx.com> 8Signed-off-by : Mahesh Bodapati <mbodapat@xilinx.com>
11 Nagaraju Mekala <nmekala@xilix.com> 9 Nagaraju Mekala <nmekala@xilix.com>
12--- 10---
13 gcc/config/microblaze/microblaze.c | 145 ++++++++++++++--------------- 11 gcc/config/microblaze/microblaze.c | 147 ++++++++++++++---------------
14 1 file changed, 69 insertions(+), 76 deletions(-) 12 1 file changed, 70 insertions(+), 77 deletions(-)
15 13
16diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c 14diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c
17index 0a73a6c32b4..4b5699671e8 100644 15index 14c652325a8..451db9c79b0 100644
18--- a/gcc/config/microblaze/microblaze.c 16--- a/gcc/config/microblaze/microblaze.c
19+++ b/gcc/config/microblaze/microblaze.c 17+++ b/gcc/config/microblaze/microblaze.c
20@@ -242,6 +242,63 @@ section *sdata2_section; 18@@ -242,6 +242,63 @@ section *sdata2_section;
@@ -101,7 +99,7 @@ index 0a73a6c32b4..4b5699671e8 100644
101 *total = COSTS_N_INSNS (1); 99 *total = COSTS_N_INSNS (1);
102 else 100 else
103 *total = COSTS_N_INSNS (3); 101 *total = COSTS_N_INSNS (3);
104@@ -1677,65 +1732,6 @@ function_arg_partial_bytes (cumulative_args_t cum_v, 102@@ -1677,72 +1732,13 @@ function_arg_partial_bytes (cumulative_args_t cum_v,
105 return 0; 103 return 0;
106 } 104 }
107 105
@@ -167,6 +165,14 @@ index 0a73a6c32b4..4b5699671e8 100644
167 static void 165 static void
168 microblaze_option_override (void) 166 microblaze_option_override (void)
169 { 167 {
168 register int i, start;
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
170@@ -1763,13 +1759,13 @@ microblaze_option_override (void) 176@@ -1763,13 +1759,13 @@ microblaze_option_override (void)
171 /* Check the MicroBlaze CPU version for any special action to be done. */ 177 /* Check the MicroBlaze CPU version for any special action to be done. */
172 if (microblaze_select_cpu == NULL) 178 if (microblaze_select_cpu == NULL)
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0025-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
deleted file mode 100644
index f1b793f3..00000000
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0025-Patch-rtl-Optimization-Better-register-pressure-esti.patch
+++ /dev/null
@@ -1,142 +0,0 @@
1From eca67041b3d6e20663313732df0038d75fd2da8d Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Wed, 18 Jan 2017 11:08:40 +0530
4Subject: [PATCH 25/58] [Patch,rtl Optimization]: Better register pressure
5 estimate for loop invariant code motion
6
7Calculate the loop liveness used for regs for calculating the register pressure
8in the cost estimation. Loop liveness is based on the following properties.
9We only need to find the set of objects that are live at the birth or the header
10of the loop. We don't need to calculate the live through the loop by considering
11live in and live out of all the basic blocks of the loop. This is based on the
12point that the set of objects that are live-in at the birth or header of the loop
13will be live-in at every node in the loop.
14
15If a v live is out at the header of the loop then the variable is live-in at every node
16in the loop. To prove this, consider a loop L with header h such that the variable v
17defined at d is live-in at h. Since v is live at h, d is not part of L. This follows i
18from the dominance property, i.e. h is strictly dominated by d. Furthermore, there
19exists a path from h to a use of v which does not go through d. For every node p in
20the loop, since the loop is strongly connected and node is a component of the CFG,
21there exists a path, consisting only of nodes of L from p to h. Concatenating these
22two paths proves that v is live-in and live-out of p.
23
24Calculate the live-out and live-in for the exit edge of the loop. This patch considers
25liveness for not only the loop latch but also the liveness outside the loops.
26
27ChangeLog:
282016-01-22 Ajit Agarwal <ajitkum@xilinx.com>
29
30 * loop-invariant.c
31 (find_invariants_to_move): Add the logic of regs_used based
32 on liveness.
33 * cfgloopanal.c
34 (estimate_reg_pressure_cost): Update the heuristics in presence
35 of call_p.
36
37Signed-off-by:Ajit Agarwal ajitkum@xilinx.com.
38---
39 gcc/cfgloopanal.c | 4 ++-
40 gcc/loop-invariant.c | 63 +++++++++++++++++++++++++++++++++-----------
41 2 files changed, 50 insertions(+), 17 deletions(-)
42
43diff --git a/gcc/cfgloopanal.c b/gcc/cfgloopanal.c
44index 0b33e8272a7..7be8606e4f0 100644
45--- a/gcc/cfgloopanal.c
46+++ b/gcc/cfgloopanal.c
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)
49 return 0;
50
51- if (regs_needed <= available_regs)
52+ if ((regs_needed <= available_regs)
53+ || (call_p && (regs_needed <=
54+ (available_regs + target_clobbered_regs))))
55 /* If we are close to running out of registers, try to preserve
56 them. */
57 cost = target_reg_cost [speed] * n_new;
58diff --git a/gcc/loop-invariant.c b/gcc/loop-invariant.c
59index f6385d6cf43..8596b5c984d 100644
60--- a/gcc/loop-invariant.c
61+++ b/gcc/loop-invariant.c
62@@ -1519,7 +1519,7 @@ gain_for_invariant (struct invariant *inv, unsigned *regs_needed,
63 size_cost = 0;
64 }
65
66- return comp_cost - size_cost;
67+ return comp_cost - size_cost + 1;
68 }
69
70 /* Finds invariant with best gain for moving. Returns the gain, stores
71@@ -1613,22 +1613,53 @@ find_invariants_to_move (bool speed, bool call_p)
72 /* REGS_USED is actually never used when the flag is on. */
73 regs_used = 0;
74 else
75- /* We do not really do a good job in estimating number of
76- registers used; we put some initial bound here to stand for
77- induction variables etc. that we do not detect. */
78+ /* The logic used in estimating the number of regs_used is changed.
79+ Now it will be based on liveness of the loop. */
80 {
81- unsigned int n_regs = DF_REG_SIZE (df);
82-
83- regs_used = 2;
84-
85- for (i = 0; i < n_regs; i++)
86- {
87- if (!DF_REGNO_FIRST_DEF (i) && DF_REGNO_LAST_USE (i))
88- {
89- /* This is a value that is used but not changed inside loop. */
90- regs_used++;
91- }
92- }
93+ int i;
94+ edge e;
95+ vec<edge> edges;
96+ bitmap_head regs_live;
97+
98+ bitmap_initialize (&regs_live, &reg_obstack);
99+ edges = get_loop_exit_edges (curr_loop);
100+
101+ /* Loop liveness is based on the following properties.
102+ We only need to find the set of objects that are live at the
103+ birth or the header of the loop.
104+ We don't need to calculate the live through the loop considering
105+ live-in and live-out of all the basic blocks of the loop. This is
106+ based on the point that the set of objects that are live-in at the
107+ birth or header of the loop will be live-in at every block in the
108+ loop.
109+
110+ If a v live out at the header of the loop then the variable is
111+ live-in at every node in the Loop. To prove this, consider a loop
112+ L with header h such that the variable v defined at d is live-in
113+ at h. Since v is live at h, d is not part of L. This follows from
114+ the dominance property, i.e. h is strictly dominated by d. Furthermore,
115+ there exists a path from h to a use of v which does not go through d.
116+ For every node of the loop, p, since the loop is strongly connected
117+ component of the CFG, there exists a path, consisting only of nodes
118+ of L from p to h. Concatenating these two paths prove that v is
119+ live-in and live-out of p. */
120+
121+ bitmap_ior_into (&regs_live, DF_LR_IN (curr_loop->header));
122+ bitmap_ior_into (&regs_live, DF_LR_OUT (curr_loop->header));
123+
124+ /* Calculate the live-out and live-in for the exit edge of the loop.
125+ This considers liveness for not only the loop latch but also the
126+ liveness outside the loops. */
127+
128+ FOR_EACH_VEC_ELT (edges, i, e)
129+ {
130+ bitmap_ior_into (&regs_live, DF_LR_OUT (e->src));
131+ bitmap_ior_into (&regs_live, DF_LR_IN (e->dest));
132+ }
133+
134+ regs_used = bitmap_count_bits (&regs_live) + 2;
135+ bitmap_clear (&regs_live);
136+ edges.release ();
137 }
138
139 if (! flag_ira_loop_pressure)
140--
1412.17.1
142
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0031-Fixing-the-issue-with-the-builtin_alloc.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0026-Fixing-the-issue-with-the-builtin_alloc.patch
index 0c80cf81..c0719f6e 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0031-Fixing-the-issue-with-the-builtin_alloc.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0026-Fixing-the-issue-with-the-builtin_alloc.patch
@@ -1,10 +1,9 @@
1From 87da245d89fffe6a025037b4a53f66dafa7e1f84 Mon Sep 17 00:00:00 2001 1From fdb2f23a69182da516c7bf89a9e0011e55120f94 Mon Sep 17 00:00:00 2001
2From: Nagaraju Mekala <nmekala@xilix.com> 2From: Nagaraju Mekala <nmekala@xilix.com>
3Date: Thu, 23 Feb 2017 17:09:04 +0530 3Date: Thu, 23 Feb 2017 17:09:04 +0530
4Subject: [PATCH 31/58] Fixing the issue with the builtin_alloc. 4Subject: [PATCH 26/54] Fixing the issue with the builtin_alloc. register r18
5 5 was not properly handling the stack pattern which was resolved by using free
6register r18 was not properly handling the stack pattern 6 available register
7which was resolved by using free available register
8 7
9signed-off-by:nagaraju mekala <nmekala@xilinx.com> 8signed-off-by:nagaraju mekala <nmekala@xilinx.com>
10--- 9---
@@ -12,7 +11,7 @@ signed-off-by:nagaraju mekala <nmekala@xilinx.com>
12 1 file changed, 4 insertions(+), 4 deletions(-) 11 1 file changed, 4 insertions(+), 4 deletions(-)
13 12
14diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md 13diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md
15index fa6aabdb9d4..9de46d0ce24 100644 14index 3e6e2b9276d..d938efcd762 100644
16--- a/gcc/config/microblaze/microblaze.md 15--- a/gcc/config/microblaze/microblaze.md
17+++ b/gcc/config/microblaze/microblaze.md 16+++ b/gcc/config/microblaze/microblaze.md
18@@ -2078,10 +2078,10 @@ 17@@ -2078,10 +2078,10 @@
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0026-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
deleted file mode 100644
index cbc1b7b8..00000000
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0026-Patch-microblaze-Correct-the-const-high-double-immed.patch
+++ /dev/null
@@ -1,69 +0,0 @@
1From 711652dd187e5b8d7aa12ecc9f569f10b1521bd1 Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Wed, 18 Jan 2017 11:25:48 +0530
4Subject: [PATCH 26/58] [Patch, microblaze]: Correct the const high double
5 immediate value
6
7With this patch the loading of the DI mode immediate values will be
8using REAL_VALUE_FROM_CONST_DOUBLE and REAL_VALUE_TO_TARGET_DOUBLE
9functions, as CONST_DOUBLE_HIGH was returning the sign extension value
10even of the unsigned long long constants also
11
12Signed-off-by :Nagaraju Mekala <nmekala@xilix.com>
13 Ajit Agarwal <ajitkum@xilinx.com>
14
15ChangeLog:
162016-02-03 Nagaraju Mekala <nmekala@xilix.com>
17 Ajit Agarwal <ajitkum@xilinx.com>
18
19 *microblaze.c (print_operand): Use REAL_VALUE_FROM_CONST_DOUBLE &
20 REAL_VALUE_TO_TARGET_DOUBLE
21 *long.c (new): Added new testcase
22---
23 gcc/config/microblaze/microblaze.c | 6 ++++--
24 gcc/testsuite/gcc.target/microblaze/long.c | 10 ++++++++++
25 2 files changed, 14 insertions(+), 2 deletions(-)
26 create mode 100644 gcc/testsuite/gcc.target/microblaze/long.c
27
28diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c
29index a3996119bd7..73d0e010cda 100644
30--- a/gcc/config/microblaze/microblaze.c
31+++ b/gcc/config/microblaze/microblaze.c
32@@ -2587,14 +2587,16 @@ print_operand (FILE * file, rtx op, int letter)
33 else if (letter == 'h' || letter == 'j')
34 {
35 long val[2];
36+ long l[2];
37 if (code == CONST_DOUBLE)
38 {
39 if (GET_MODE (op) == DFmode)
40 REAL_VALUE_TO_TARGET_DOUBLE (*CONST_DOUBLE_REAL_VALUE (op), val);
41 else
42 {
43- val[0] = CONST_DOUBLE_HIGH (op);
44- val[1] = CONST_DOUBLE_LOW (op);
45+ REAL_VALUE_TO_TARGET_DOUBLE (*CONST_DOUBLE_REAL_VALUE (op), l);
46+ val[1] = l[WORDS_BIG_ENDIAN == 0];
47+ val[0] = l[WORDS_BIG_ENDIAN != 0];
48 }
49 }
50 else if (code == CONST_INT)
51diff --git a/gcc/testsuite/gcc.target/microblaze/long.c b/gcc/testsuite/gcc.target/microblaze/long.c
52new file mode 100644
53index 00000000000..4d4518619d1
54--- /dev/null
55+++ b/gcc/testsuite/gcc.target/microblaze/long.c
56@@ -0,0 +1,10 @@
57+/* { dg-options "-O0" } */
58+#define BASEADDR 0xF0000000ULL
59+int main ()
60+{
61+ unsigned long long start;
62+ start = (unsigned long long) BASEADDR;
63+ return 0;
64+}
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" } } */
67--
682.17.1
69
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0032-Patch-Microblaze-update-in-constraints-for-bitfield-.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0027-Patch-Microblaze-update-in-constraints-for-bitfield-.patch
index 458af563..7627b765 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0032-Patch-Microblaze-update-in-constraints-for-bitfield-.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0027-Patch-Microblaze-update-in-constraints-for-bitfield-.patch
@@ -1,15 +1,17 @@
1From 3e8779308d1901b273b2b360bea719aa72d24ab9 Mon Sep 17 00:00:00 2001 1From 336d984c580345eccdeb889af8ef8c986afc1dad Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com> 2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Mon, 19 Feb 2018 18:06:16 +0530 3Date: Mon, 19 Feb 2018 18:06:16 +0530
4Subject: [PATCH 32/58] [Patch,Microblaze]: update in constraints for bitfield 4Subject: [PATCH 27/54] [Patch,Microblaze]: update in constraints for bitfield
5 insert and extract instructions. 5 insert and extract instructions.
6 6
7Conflicts:
8 gcc/config/microblaze/microblaze.md
7--- 9---
8 gcc/config/microblaze/microblaze.md | 43 +++++------------------------ 10 gcc/config/microblaze/microblaze.md | 45 +++++------------------------
9 1 file changed, 7 insertions(+), 36 deletions(-) 11 1 file changed, 8 insertions(+), 37 deletions(-)
10 12
11diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md 13diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md
12index 9de46d0ce24..fe94807182b 100644 14index d938efcd762..63ad94b972f 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@@ -2492,33 +2492,17 @@ 17@@ -2492,33 +2492,17 @@
@@ -22,7 +24,8 @@ index 9de46d0ce24..fe94807182b 100644
22 (zero_extract:SI (match_operand:SI 1 "register_operand" "r") 24 (zero_extract:SI (match_operand:SI 1 "register_operand" "r")
23 (match_operand:SI 2 "immediate_operand" "I") 25 (match_operand:SI 2 "immediate_operand" "I")
24 (match_operand:SI 3 "immediate_operand" "I")))] 26 (match_operand:SI 3 "immediate_operand" "I")))]
25 "TARGET_HAS_BITFIELD" 27+"TARGET_HAS_BITFIELD"
28 ""
26-" 29-"
27-{ 30-{
28- unsigned HOST_WIDE_INT len = UINTVAL (operands[2]); 31- unsigned HOST_WIDE_INT len = UINTVAL (operands[2]);
@@ -42,7 +45,6 @@ index 9de46d0ce24..fe94807182b 100644
42- operands[2], operands[3])); 45- operands[2], operands[3]));
43- DONE; 46- DONE;
44-}") 47-}")
45+""
46+) 48+)
47 49
48-(define_insn "extv_32" 50-(define_insn "extv_32"
@@ -51,10 +53,11 @@ index 9de46d0ce24..fe94807182b 100644
51 [(set (match_operand:SI 0 "register_operand" "=r") 53 [(set (match_operand:SI 0 "register_operand" "=r")
52 (zero_extract:SI (match_operand:SI 1 "register_operand" "r") 54 (zero_extract:SI (match_operand:SI 1 "register_operand" "r")
53 (match_operand:SI 2 "immediate_operand" "I") 55 (match_operand:SI 2 "immediate_operand" "I")
54@@ -2535,21 +2519,8 @@ 56@@ -2534,22 +2518,9 @@
57 (match_operand:SI 1 "immediate_operand" "I")
55 (match_operand:SI 2 "immediate_operand" "I")) 58 (match_operand:SI 2 "immediate_operand" "I"))
56 (match_operand:SI 3 "register_operand" "r"))] 59 (match_operand:SI 3 "register_operand" "r"))]
57 "TARGET_HAS_BITFIELD" 60- ""
58- " 61- "
59-{ 62-{
60- unsigned HOST_WIDE_INT len = UINTVAL (operands[1]); 63- unsigned HOST_WIDE_INT len = UINTVAL (operands[1]);
@@ -70,6 +73,7 @@ index 9de46d0ce24..fe94807182b 100644
70- operands[2], operands[3])); 73- operands[2], operands[3]));
71- DONE; 74- DONE;
72-}") 75-}")
76+ "TARGET_HAS_BITFIELD"
73+"" 77+""
74+) 78+)
75 79
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0033-Patch-Microblaze-Removed-fsqrt-generation-for-double.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0028-Patch-Microblaze-Removed-fsqrt-generation-for-double.patch
index 32433470..f12cea24 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0033-Patch-Microblaze-Removed-fsqrt-generation-for-double.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0028-Patch-Microblaze-Removed-fsqrt-generation-for-double.patch
@@ -1,7 +1,7 @@
1From eb90da1d616dfb7481b3f7c74a2be40e921a24f2 Mon Sep 17 00:00:00 2001 1From e4f5435e6e77afe0150bf36ec9d3d055cf25a089 Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com> 2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Mon, 4 Jun 2018 10:10:18 +0530 3Date: Mon, 4 Jun 2018 10:10:18 +0530
4Subject: [PATCH 33/58] [Patch,Microblaze] : Removed fsqrt generation for 4Subject: [PATCH 28/54] [Patch,Microblaze] : Removed fsqrt generation for
5 double values. 5 double values.
6 6
7--- 7---
@@ -9,7 +9,7 @@ Subject: [PATCH 33/58] [Patch,Microblaze] : Removed fsqrt generation for
9 1 file changed, 14 deletions(-) 9 1 file changed, 14 deletions(-)
10 10
11diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md 11diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md
12index fe94807182b..a527da70f8a 100644 12index 63ad94b972f..7695b105baa 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 @@
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0034-Intial-commit-of-64-bit-Microblaze.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0029-Patch-MicroBlaze-Intial-commit-of-64-bit-Microblaze.patch
index acf14b23..d9603721 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0034-Intial-commit-of-64-bit-Microblaze.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0029-Patch-MicroBlaze-Intial-commit-of-64-bit-Microblaze.patch
@@ -1,24 +1,23 @@
1From 9600049313b095d6d7d8ea46a7ab783fabae71a2 Mon Sep 17 00:00:00 2001 1From 1a7fda96cb247bad0a4df61cd8fd3e65c0e6f35d Mon Sep 17 00:00:00 2001
2From: Nagaraju Mekala <nmekala@xilix.com> 2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Tue, 3 Apr 2018 16:48:39 +0530 3Date: Tue, 10 Nov 2020 12:52:54 +0530
4Subject: [PATCH 34/58] Intial commit of 64-bit Microblaze 4Subject: [PATCH 29/54] [Patch,MicroBlaze]: Intial commit of 64-bit Microblaze
5 5
6Added load store pattern movdi and also adding missing files
7--- 6---
8 gcc/config/microblaze/constraints.md | 5 + 7 gcc/config/microblaze/constraints.md | 6 +
9 gcc/config/microblaze/microblaze-protos.h | 1 + 8 gcc/config/microblaze/microblaze-protos.h | 1 +
10 gcc/config/microblaze/microblaze.c | 109 ++++-- 9 gcc/config/microblaze/microblaze.c | 109 ++++--
11 gcc/config/microblaze/microblaze.h | 4 +- 10 gcc/config/microblaze/microblaze.h | 4 +-
12 gcc/config/microblaze/microblaze.md | 394 +++++++++++++++++++++- 11 gcc/config/microblaze/microblaze.md | 395 +++++++++++++++++++++-
13 gcc/config/microblaze/microblaze.opt | 7 +- 12 gcc/config/microblaze/microblaze.opt | 7 +-
14 gcc/config/microblaze/t-microblaze | 7 +- 13 gcc/config/microblaze/t-microblaze | 7 +-
15 7 files changed, 490 insertions(+), 37 deletions(-) 14 7 files changed, 492 insertions(+), 37 deletions(-)
16 15
17diff --git a/gcc/config/microblaze/constraints.md b/gcc/config/microblaze/constraints.md 16diff --git a/gcc/config/microblaze/constraints.md b/gcc/config/microblaze/constraints.md
18index b9fc6e3fae2..f636b035280 100644 17index b9fc6e3fae2..123395717e0 100644
19--- a/gcc/config/microblaze/constraints.md 18--- a/gcc/config/microblaze/constraints.md
20+++ b/gcc/config/microblaze/constraints.md 19+++ b/gcc/config/microblaze/constraints.md
21@@ -52,6 +52,11 @@ 20@@ -52,6 +52,12 @@
22 (and (match_code "const_int") 21 (and (match_code "const_int")
23 (match_test "ival > 0 && ival < 0x10000"))) 22 (match_test "ival > 0 && ival < 0x10000")))
24 23
@@ -27,11 +26,12 @@ index b9fc6e3fae2..f636b035280 100644
27+ (and (match_code "const_int") 26+ (and (match_code "const_int")
28+ (match_test "ival > (long)0xffffff8000000000L && ival < (long)0x0000007fffffffffL"))) 27+ (match_test "ival > (long)0xffffff8000000000L && ival < (long)0x0000007fffffffffL")))
29+ 28+
29+
30 ;; Define floating point constraints 30 ;; Define floating point constraints
31 31
32 (define_constraint "G" 32 (define_constraint "G"
33diff --git a/gcc/config/microblaze/microblaze-protos.h b/gcc/config/microblaze/microblaze-protos.h 33diff --git a/gcc/config/microblaze/microblaze-protos.h b/gcc/config/microblaze/microblaze-protos.h
34index 76ffc682df2..b8a3321dbdf 100644 34index c2f88813a8d..460feac4ac5 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@@ -36,6 +36,7 @@ extern void microblaze_expand_divide (rtx *); 37@@ -36,6 +36,7 @@ extern void microblaze_expand_divide (rtx *);
@@ -43,10 +43,10 @@ index 76ffc682df2..b8a3321dbdf 100644
43 extern void print_operand (FILE *, rtx, int); 43 extern void print_operand (FILE *, rtx, int);
44 extern void print_operand_address (FILE *, rtx); 44 extern void print_operand_address (FILE *, rtx);
45diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c 45diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c
46index 4b5699671e8..8a3ccae558a 100644 46index 451db9c79b0..99a1cd5c0be 100644
47--- a/gcc/config/microblaze/microblaze.c 47--- a/gcc/config/microblaze/microblaze.c
48+++ b/gcc/config/microblaze/microblaze.c 48+++ b/gcc/config/microblaze/microblaze.c
49@@ -3562,11 +3562,11 @@ microblaze_expand_move (machine_mode mode, rtx operands[]) 49@@ -3432,11 +3432,11 @@ microblaze_expand_move (machine_mode mode, rtx operands[])
50 op0 = operands[0]; 50 op0 = operands[0];
51 op1 = operands[1]; 51 op1 = operands[1];
52 52
@@ -61,7 +61,7 @@ index 4b5699671e8..8a3ccae558a 100644
61 emit_move_insn (op0, temp); 61 emit_move_insn (op0, temp);
62 return true; 62 return true;
63 } 63 }
64@@ -3631,12 +3631,12 @@ microblaze_expand_move (machine_mode mode, rtx operands[]) 64@@ -3501,12 +3501,12 @@ microblaze_expand_move (machine_mode mode, rtx operands[])
65 && (flag_pic == 2 || microblaze_tls_symbol_p (p0) 65 && (flag_pic == 2 || microblaze_tls_symbol_p (p0)
66 || !SMALL_INT (p1))))) 66 || !SMALL_INT (p1)))))
67 { 67 {
@@ -76,7 +76,7 @@ index 4b5699671e8..8a3ccae558a 100644
76 return true; 76 return true;
77 } 77 }
78 } 78 }
79@@ -3767,7 +3767,7 @@ microblaze_expand_conditional_branch (machine_mode mode, rtx operands[]) 79@@ -3637,7 +3637,7 @@ microblaze_expand_conditional_branch (machine_mode mode, rtx operands[])
80 rtx cmp_op0 = operands[1]; 80 rtx cmp_op0 = operands[1];
81 rtx cmp_op1 = operands[2]; 81 rtx cmp_op1 = operands[2];
82 rtx label1 = operands[3]; 82 rtx label1 = operands[3];
@@ -85,7 +85,7 @@ index 4b5699671e8..8a3ccae558a 100644
85 rtx condition; 85 rtx condition;
86 86
87 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));
88@@ -3776,23 +3776,36 @@ microblaze_expand_conditional_branch (machine_mode mode, rtx operands[]) 88@@ -3646,23 +3646,36 @@ microblaze_expand_conditional_branch (machine_mode mode, rtx operands[])
89 if (cmp_op1 == const0_rtx) 89 if (cmp_op1 == const0_rtx)
90 { 90 {
91 comp_reg = cmp_op0; 91 comp_reg = cmp_op0;
@@ -128,7 +128,7 @@ index 4b5699671e8..8a3ccae558a 100644
128 } 128 }
129 } 129 }
130 130
131@@ -3803,7 +3816,7 @@ microblaze_expand_conditional_branch_reg (machine_mode mode, rtx operands[]) 131@@ -3673,7 +3686,7 @@ microblaze_expand_conditional_branch_reg (machine_mode mode, rtx operands[])
132 rtx cmp_op0 = operands[1]; 132 rtx cmp_op0 = operands[1];
133 rtx cmp_op1 = operands[2]; 133 rtx cmp_op1 = operands[2];
134 rtx label1 = operands[3]; 134 rtx label1 = operands[3];
@@ -137,7 +137,7 @@ index 4b5699671e8..8a3ccae558a 100644
137 rtx condition; 137 rtx condition;
138 138
139 gcc_assert ((GET_CODE (cmp_op0) == REG) 139 gcc_assert ((GET_CODE (cmp_op0) == REG)
140@@ -3814,30 +3827,63 @@ microblaze_expand_conditional_branch_reg (machine_mode mode, rtx operands[]) 140@@ -3684,30 +3697,63 @@ microblaze_expand_conditional_branch_reg (machine_mode mode, rtx operands[])
141 { 141 {
142 comp_reg = cmp_op0; 142 comp_reg = cmp_op0;
143 condition = gen_rtx_fmt_ee (signed_condition (code), 143 condition = gen_rtx_fmt_ee (signed_condition (code),
@@ -213,7 +213,7 @@ index 4b5699671e8..8a3ccae558a 100644
213 } 213 }
214 } 214 }
215 215
216@@ -3854,6 +3900,19 @@ microblaze_expand_conditional_branch_sf (rtx operands[]) 216@@ -3724,6 +3770,19 @@ microblaze_expand_conditional_branch_sf (rtx operands[])
217 emit_jump_insn (gen_condjump (condition, operands[3])); 217 emit_jump_insn (gen_condjump (condition, operands[3]));
218 } 218 }
219 219
@@ -234,7 +234,7 @@ index 4b5699671e8..8a3ccae558a 100644
234 234
235 static bool 235 static bool
236diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h 236diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h
237index b5b7b22cec9..4931895e650 100644 237index 857cb1cd9d0..c0358603380 100644
238--- a/gcc/config/microblaze/microblaze.h 238--- a/gcc/config/microblaze/microblaze.h
239+++ b/gcc/config/microblaze/microblaze.h 239+++ b/gcc/config/microblaze/microblaze.h
240@@ -102,6 +102,7 @@ extern enum pipeline_type microblaze_pipe; 240@@ -102,6 +102,7 @@ extern enum pipeline_type microblaze_pipe;
@@ -263,7 +263,7 @@ index b5b7b22cec9..4931895e650 100644
263 #define FLOAT_TYPE_SIZE 32 263 #define FLOAT_TYPE_SIZE 32
264 #define DOUBLE_TYPE_SIZE 64 264 #define DOUBLE_TYPE_SIZE 64
265diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md 265diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md
266index a527da70f8a..bcf2b9244f8 100644 266index 7695b105baa..4d8429d9a90 100644
267--- a/gcc/config/microblaze/microblaze.md 267--- a/gcc/config/microblaze/microblaze.md
268+++ b/gcc/config/microblaze/microblaze.md 268+++ b/gcc/config/microblaze/microblaze.md
269@@ -497,7 +497,6 @@ 269@@ -497,7 +497,6 @@
@@ -456,7 +456,7 @@ index a527da70f8a..bcf2b9244f8 100644
456 ;; Those for integer source operand are ordered 456 ;; Those for integer source operand are ordered
457 ;; widest source type first. 457 ;; widest source type first.
458 458
459@@ -1011,6 +1122,31 @@ 459@@ -1011,6 +1122,32 @@
460 ) 460 )
461 461
462 462
@@ -485,10 +485,11 @@ index a527da70f8a..bcf2b9244f8 100644
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") 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") 486+ (set_attr "mode" "DI")
487+ (set_attr "length" "8,8,8,8,12,8,12")]) 487+ (set_attr "length" "8,8,8,8,12,8,12")])
488+
488 489
489 (define_insn "*movdi_internal" 490 (define_insn "*movdi_internal"
490 [(set (match_operand:DI 0 "nonimmediate_operand" "=d,d,d,d,d,R,o") 491 [(set (match_operand:DI 0 "nonimmediate_operand" "=d,d,d,d,d,R,o")
491@@ -1423,6 +1559,36 @@ 492@@ -1423,6 +1560,36 @@
492 (set_attr "length" "4,4")] 493 (set_attr "length" "4,4")]
493 ) 494 )
494 495
@@ -525,7 +526,7 @@ index a527da70f8a..bcf2b9244f8 100644
525 ;; The following patterns apply when there is no barrel shifter present 526 ;; The following patterns apply when there is no barrel shifter present
526 527
527 (define_insn "*ashlsi3_with_mul_delay" 528 (define_insn "*ashlsi3_with_mul_delay"
528@@ -1548,6 +1714,36 @@ 529@@ -1548,6 +1715,36 @@
529 ;;---------------------------------------------------------------- 530 ;;----------------------------------------------------------------
530 ;; 32-bit right shifts 531 ;; 32-bit right shifts
531 ;;---------------------------------------------------------------- 532 ;;----------------------------------------------------------------
@@ -562,7 +563,7 @@ index a527da70f8a..bcf2b9244f8 100644
562 (define_expand "ashrsi3" 563 (define_expand "ashrsi3"
563 [(set (match_operand:SI 0 "register_operand" "=&d") 564 [(set (match_operand:SI 0 "register_operand" "=&d")
564 (ashiftrt:SI (match_operand:SI 1 "register_operand" "d") 565 (ashiftrt:SI (match_operand:SI 1 "register_operand" "d")
565@@ -1657,6 +1853,36 @@ 566@@ -1657,6 +1854,36 @@
566 ;;---------------------------------------------------------------- 567 ;;----------------------------------------------------------------
567 ;; 32-bit right shifts (logical) 568 ;; 32-bit right shifts (logical)
568 ;;---------------------------------------------------------------- 569 ;;----------------------------------------------------------------
@@ -599,7 +600,7 @@ index a527da70f8a..bcf2b9244f8 100644
599 600
600 (define_expand "lshrsi3" 601 (define_expand "lshrsi3"
601 [(set (match_operand:SI 0 "register_operand" "=&d") 602 [(set (match_operand:SI 0 "register_operand" "=&d")
602@@ -1803,6 +2029,8 @@ 603@@ -1803,6 +2030,8 @@
603 (set_attr "length" "4")] 604 (set_attr "length" "4")]
604 ) 605 )
605 606
@@ -608,7 +609,7 @@ index a527da70f8a..bcf2b9244f8 100644
608 ;;---------------------------------------------------------------- 609 ;;----------------------------------------------------------------
609 ;; Setting a register from an floating point comparison. 610 ;; Setting a register from an floating point comparison.
610 ;;---------------------------------------------------------------- 611 ;;----------------------------------------------------------------
611@@ -1818,6 +2046,18 @@ 612@@ -1818,6 +2047,18 @@
612 (set_attr "length" "4")] 613 (set_attr "length" "4")]
613 ) 614 )
614 615
@@ -627,7 +628,7 @@ index a527da70f8a..bcf2b9244f8 100644
627 ;;---------------------------------------------------------------- 628 ;;----------------------------------------------------------------
628 ;; Conditional branches 629 ;; Conditional branches
629 ;;---------------------------------------------------------------- 630 ;;----------------------------------------------------------------
630@@ -1930,6 +2170,115 @@ 631@@ -1930,6 +2171,115 @@
631 (set_attr "length" "12")] 632 (set_attr "length" "12")]
632 ) 633 )
633 634
@@ -743,7 +744,7 @@ index a527da70f8a..bcf2b9244f8 100644
743 ;;---------------------------------------------------------------- 744 ;;----------------------------------------------------------------
744 ;; Unconditional branches 745 ;; Unconditional branches
745 ;;---------------------------------------------------------------- 746 ;;----------------------------------------------------------------
746@@ -2478,17 +2827,33 @@ 747@@ -2478,17 +2828,33 @@
747 DONE; 748 DONE;
748 }") 749 }")
749 750
@@ -782,7 +783,7 @@ index a527da70f8a..bcf2b9244f8 100644
782 [(set (match_operand:SI 0 "register_operand" "=r") 783 [(set (match_operand:SI 0 "register_operand" "=r")
783 (zero_extract:SI (match_operand:SI 1 "register_operand" "r") 784 (zero_extract:SI (match_operand:SI 1 "register_operand" "r")
784 (match_operand:SI 2 "immediate_operand" "I") 785 (match_operand:SI 2 "immediate_operand" "I")
785@@ -2505,8 +2870,21 @@ 786@@ -2505,8 +2871,21 @@
786 (match_operand:SI 2 "immediate_operand" "I")) 787 (match_operand:SI 2 "immediate_operand" "I"))
787 (match_operand:SI 3 "register_operand" "r"))] 788 (match_operand:SI 3 "register_operand" "r"))]
788 "TARGET_HAS_BITFIELD" 789 "TARGET_HAS_BITFIELD"
@@ -822,7 +823,7 @@ index a29c6f8df90..bbe48b06da6 100644
822+MicroBlaze 64-bit mode. 823+MicroBlaze 64-bit mode.
823+ 824+
824diff --git a/gcc/config/microblaze/t-microblaze b/gcc/config/microblaze/t-microblaze 825diff --git a/gcc/config/microblaze/t-microblaze b/gcc/config/microblaze/t-microblaze
825index 41fa9a92081..7671f63c5b5 100644 826index 41fa9a92081..e9a1921ae26 100644
826--- a/gcc/config/microblaze/t-microblaze 827--- a/gcc/config/microblaze/t-microblaze
827+++ b/gcc/config/microblaze/t-microblaze 828+++ b/gcc/config/microblaze/t-microblaze
828@@ -1,8 +1,11 @@ 829@@ -1,8 +1,11 @@
@@ -834,8 +835,8 @@ index 41fa9a92081..7671f63c5b5 100644
834 MULTILIB_EXCEPTIONS += *mxl-barrel-shift/mxl-multiply-high/mlittle-endian 835 MULTILIB_EXCEPTIONS += *mxl-barrel-shift/mxl-multiply-high/mlittle-endian
835+MULTILIB_EXCEPTIONS += *mxl-barrel-shift/mxl-multiply-high/m64 836+MULTILIB_EXCEPTIONS += *mxl-barrel-shift/mxl-multiply-high/m64
836 MULTILIB_EXCEPTIONS += mxl-multiply-high/mlittle-endian 837 MULTILIB_EXCEPTIONS += mxl-multiply-high/mlittle-endian
837+#MULTILIB_EXCEPTIONS += mxl-multiply-high/m64 838+MULTILIB_EXCEPTIONS += mxl-multiply-high/m64
838+#MULTILIB_EXCEPTIONS += *mxl-multiply-high/mlittle-endian/m64 839+MULTILIB_EXCEPTIONS += *mxl-multiply-high/mlittle-endian/m64
839 840
840 # Extra files 841 # Extra files
841 microblaze-c.o: $(srcdir)/config/microblaze/microblaze-c.c \ 842 microblaze-c.o: $(srcdir)/config/microblaze/microblaze-c.c \
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0035-Intial-commit-for-64bit-MB-sources.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0030-Intial-commit-for-64bit-MB-sources.patch
index e7872d54..88a0d0ba 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0035-Intial-commit-for-64bit-MB-sources.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0030-Intial-commit-for-64bit-MB-sources.patch
@@ -1,16 +1,16 @@
1From 8660e76d664ee4b42a83a4c15344b072d3c879df Mon Sep 17 00:00:00 2001 1From 53799d63bd26a04265a55f68ca57e3462ed6eeb7 Mon Sep 17 00:00:00 2001
2From: Nagaraju Mekala <nmekala@xilix.com> 2From: Nagaraju Mekala <nmekala@xilix.com>
3Date: Fri, 27 Jul 2018 15:23:41 +0530 3Date: Fri, 27 Jul 2018 15:23:41 +0530
4Subject: [PATCH 35/58] Intial commit for 64bit-MB sources. 4Subject: [PATCH 30/54] Intial commit for 64bit-MB sources. Need to cleanup the
5 code later.
5 6
6Need 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 | 3 +-
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 ++++
@@ -20,7 +20,7 @@ Need to cleanup the code later.
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, 1230 insertions(+), 234 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
26 create mode 100644 libgcc/config/microblaze/moddi3.S 26 create mode 100644 libgcc/config/microblaze/moddi3.S
@@ -29,7 +29,7 @@ Need to cleanup the code later.
29 create mode 100644 libgcc/config/microblaze/umoddi3.S 29 create mode 100644 libgcc/config/microblaze/umoddi3.S
30 30
31diff --git a/gcc/config/microblaze/constraints.md b/gcc/config/microblaze/constraints.md 31diff --git a/gcc/config/microblaze/constraints.md b/gcc/config/microblaze/constraints.md
32index f636b035280..c2b0a21c53b 100644 32index 123395717e0..b8ef1650f92 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 @@
@@ -39,8 +39,8 @@ index f636b035280..c2b0a21c53b 100644
39- (match_test "ival > (long)0xffffff8000000000L && ival < (long)0x0000007fffffffffL"))) 39- (match_test "ival > (long)0xffffff8000000000L && ival < (long)0x0000007fffffffffL")))
40+ (match_test "ival > (long)-549755813888 && ival < (long)549755813887"))) 40+ (match_test "ival > (long)-549755813888 && ival < (long)549755813887")))
41 41
42 ;; Define floating point constraints
43 42
43 ;; Define floating point constraints
44diff --git a/gcc/config/microblaze/microblaze-c.c b/gcc/config/microblaze/microblaze-c.c 44diff --git a/gcc/config/microblaze/microblaze-c.c b/gcc/config/microblaze/microblaze-c.c
45index d8c88e510e5..dbcd21fc6ee 100644 45index d8c88e510e5..dbcd21fc6ee 100644
46--- a/gcc/config/microblaze/microblaze-c.c 46--- a/gcc/config/microblaze/microblaze-c.c
@@ -57,7 +57,7 @@ index d8c88e510e5..dbcd21fc6ee 100644
57+ } 57+ }
58 } 58 }
59diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c 59diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c
60index 8a3ccae558a..3ecda553fe6 100644 60index 99a1cd5c0be..3c815444574 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)
@@ -141,7 +141,7 @@ index 8a3ccae558a..3ecda553fe6 100644
141 break; 141 break;
142 142
143 case E_QImode: 143 case E_QImode:
144@@ -2285,7 +2299,7 @@ compute_frame_size (HOST_WIDE_INT size) 144@@ -2155,7 +2169,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 8a3ccae558a..3ecda553fe6 100644
150 150
151 mask |= (1L << (regno - GP_REG_FIRST)); 151 mask |= (1L << (regno - GP_REG_FIRST));
152 } 152 }
153@@ -2554,7 +2568,7 @@ print_operand (FILE * file, rtx op, int letter) 153@@ -2424,7 +2438,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 8a3ccae558a..3ecda553fe6 100644
159 159
160 fprintf (file, "%s", reg_names[regnum]); 160 fprintf (file, "%s", reg_names[regnum]);
161 } 161 }
162@@ -2580,6 +2594,7 @@ print_operand (FILE * file, rtx op, int letter) 162@@ -2450,6 +2464,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,8 +167,8 @@ index 8a3ccae558a..3ecda553fe6 100644
167 long l[2]; 167 long l[2];
168 if (code == CONST_DOUBLE) 168 if (code == CONST_DOUBLE)
169 { 169 {
170@@ -2592,12 +2607,12 @@ print_operand (FILE * file, rtx op, int letter) 170@@ -2462,12 +2477,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 }
174- else if (code == CONST_INT) 174- else if (code == CONST_INT)
@@ -184,7 +184,7 @@ index 8a3ccae558a..3ecda553fe6 100644
184 } 184 }
185 else if (code == CONST_DOUBLE) 185 else if (code == CONST_DOUBLE)
186 { 186 {
187@@ -2791,7 +2806,10 @@ microblaze_asm_constructor (rtx symbol ATTRIBUTE_UNUSED, int priority) 187@@ -2661,7 +2676,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 8a3ccae558a..3ecda553fe6 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@@ -2814,7 +2832,10 @@ microblaze_asm_destructor (rtx symbol, int priority) 199@@ -2684,7 +2702,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 8a3ccae558a..3ecda553fe6 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@@ -2880,7 +2901,7 @@ save_restore_insns (int prologue) 211@@ -2750,7 +2771,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 8a3ccae558a..3ecda553fe6 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@@ -2888,8 +2909,8 @@ save_restore_insns (int prologue) 220@@ -2758,8 +2779,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 8a3ccae558a..3ecda553fe6 100644
228 } 228 }
229 229
230 if (microblaze_is_interrupt_variant () && !prologue) 230 if (microblaze_is_interrupt_variant () && !prologue)
231@@ -2897,8 +2918,8 @@ save_restore_insns (int prologue) 231@@ -2767,8 +2788,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 8a3ccae558a..3ecda553fe6 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@@ -2909,9 +2930,9 @@ save_restore_insns (int prologue) 242@@ -2779,9 +2800,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 8a3ccae558a..3ecda553fe6 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@@ -2926,7 +2947,7 @@ save_restore_insns (int prologue) 254@@ -2796,7 +2817,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 8a3ccae558a..3ecda553fe6 100644
260 } 260 }
261 } 261 }
262 262
263@@ -2936,8 +2957,8 @@ save_restore_insns (int prologue) 263@@ -2806,8 +2827,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 8a3ccae558a..3ecda553fe6 100644
271 } 271 }
272 272
273 /* Done saving and restoring */ 273 /* Done saving and restoring */
274@@ -3027,7 +3048,10 @@ microblaze_elf_asm_cdtor (rtx symbol, int priority, bool is_ctor) 274@@ -2897,7 +2918,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 8a3ccae558a..3ecda553fe6 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@@ -3171,10 +3195,10 @@ microblaze_expand_prologue (void) 286@@ -3041,10 +3065,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 8a3ccae558a..3ecda553fe6 100644
297 } 297 }
298 } 298 }
299 299
300@@ -3183,15 +3207,23 @@ microblaze_expand_prologue (void) 300@@ -3053,15 +3077,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 8a3ccae558a..3ecda553fe6 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@@ -3199,7 +3231,7 @@ microblaze_expand_prologue (void) 326@@ -3069,7 +3101,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 8a3ccae558a..3ecda553fe6 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@@ -3309,12 +3341,12 @@ microblaze_expand_epilogue (void) 335@@ -3179,12 +3211,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 8a3ccae558a..3ecda553fe6 100644
347 emit_move_insn (reg_rtx, mem_rtx); 347 emit_move_insn (reg_rtx, mem_rtx);
348 } 348 }
349 349
350@@ -3330,15 +3362,25 @@ microblaze_expand_epilogue (void) 350@@ -3200,15 +3232,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 8a3ccae558a..3ecda553fe6 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@@ -3505,9 +3547,14 @@ microblaze_asm_output_mi_thunk (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED, 380@@ -3375,9 +3417,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 8a3ccae558a..3ecda553fe6 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@@ -3520,7 +3567,10 @@ microblaze_asm_output_mi_thunk (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED, 397@@ -3390,7 +3437,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 8a3ccae558a..3ecda553fe6 100644
406 } 406 }
407 407
408 /* Generate a tail call to the target function. */ 408 /* Generate a tail call to the target function. */
409@@ -3696,7 +3746,7 @@ microblaze_eh_return (rtx op0) 409@@ -3566,7 +3616,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 8a3ccae558a..3ecda553fe6 100644
415 void 415 void
416 microblaze_asm_output_ident (const char *string) 416 microblaze_asm_output_ident (const char *string)
417 { 417 {
418@@ -3751,9 +3801,9 @@ microblaze_trampoline_init (rtx m_tramp, tree fndecl, rtx chain_value) 418@@ -3621,9 +3671,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 8a3ccae558a..3ecda553fe6 100644
427 emit_move_insn (mem, fnaddr); 427 emit_move_insn (mem, fnaddr);
428 } 428 }
429 429
430@@ -3777,7 +3827,7 @@ microblaze_expand_conditional_branch (machine_mode mode, rtx operands[]) 430@@ -3647,7 +3697,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 8a3ccae558a..3ecda553fe6 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@@ -3896,7 +3946,7 @@ microblaze_expand_conditional_branch_sf (rtx operands[]) 439@@ -3766,7 +3816,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 8a3ccae558a..3ecda553fe6 100644
445 emit_jump_insn (gen_condjump (condition, operands[3])); 445 emit_jump_insn (gen_condjump (condition, operands[3]));
446 } 446 }
447 447
448@@ -3906,10 +3956,10 @@ microblaze_expand_conditional_branch_df (rtx operands[]) 448@@ -3776,10 +3826,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 8a3ccae558a..3ecda553fe6 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@@ -3930,8 +3980,8 @@ microblaze_expand_divide (rtx operands[]) 461@@ -3800,8 +3850,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 8a3ccae558a..3ecda553fe6 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@@ -3939,17 +3989,31 @@ microblaze_expand_divide (rtx operands[]) 472@@ -3809,17 +3859,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 8a3ccae558a..3ecda553fe6 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@@ -4096,7 +4160,7 @@ insert_wic_for_ilb_runout (rtx_insn *first) 511@@ -3966,7 +4030,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 8a3ccae558a..3ecda553fe6 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@@ -4106,7 +4170,27 @@ insert_wic_for_ilb_runout (rtx_insn *first) 520@@ -3976,7 +4040,27 @@ insert_wic_for_ilb_runout (rtx_insn *first)
521 } 521 }
522 } 522 }
523 } 523 }
@@ -546,7 +546,7 @@ index 8a3ccae558a..3ecda553fe6 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@@ -4259,6 +4343,17 @@ microblaze_starting_frame_offset (void) 549@@ -4129,6 +4213,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 8a3ccae558a..3ecda553fe6 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@@ -4268,6 +4363,9 @@ microblaze_starting_frame_offset (void) 567@@ -4138,6 +4233,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 8a3ccae558a..3ecda553fe6 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
577diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h 577diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h
578index 4931895e650..1f6e2059545 100644 578index c0358603380..f6ad4d9fc21 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;
@@ -672,9 +672,9 @@ index 4931895e650..1f6e2059545 100644
672 #define ARG_POINTER_CFA_OFFSET(FNDECL) 0 672 #define ARG_POINTER_CFA_OFFSET(FNDECL) 0
673+#define DWARF_CIE_DATA_ALIGNMENT -1 673+#define DWARF_CIE_DATA_ALIGNMENT -1
674 674
675 #define REG_PARM_STACK_SPACE(FNDECL) microblaze_reg_parm_stack_space(FNDECL) 675 #define REG_PARM_STACK_SPACE(FNDECL) (MAX_ARGS_IN_REGISTERS * UNITS_PER_WORD)
676 676
677 #define OUTGOING_REG_PARM_STACK_SPACE(FNTYPE) 1 677 #define OUTGOING_REG_PARM_STACK_SPACE(FNTYPE) 1
678 678
679-#define STACK_BOUNDARY 32 679-#define STACK_BOUNDARY 32
680+#define STACK_BOUNDARY (TARGET_MB_64 ? 64 : 32) 680+#define STACK_BOUNDARY (TARGET_MB_64 ? 64 : 32)
@@ -744,7 +744,7 @@ index 4931895e650..1f6e2059545 100644
744 /* Default to -G 8 */ 744 /* Default to -G 8 */
745 #ifndef MICROBLAZE_DEFAULT_GVALUE 745 #ifndef MICROBLAZE_DEFAULT_GVALUE
746diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md 746diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md
747index bcf2b9244f8..bef750c026a 100644 747index 4d8429d9a90..33a8b12ef3b 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 @@
@@ -1054,7 +1054,7 @@ index bcf2b9244f8..bef750c026a 100644
1054 (define_insn "extendsidi2" 1054 (define_insn "extendsidi2"
1055 [(set (match_operand:DI 0 "register_operand" "=d,d,d") 1055 [(set (match_operand:DI 0 "register_operand" "=d,d,d")
1056 (sign_extend:DI (match_operand:SI 1 "nonimmediate_operand" "d,R,m")))] 1056 (sign_extend:DI (match_operand:SI 1 "nonimmediate_operand" "d,R,m")))]
1057@@ -1090,68 +1135,117 @@ 1057@@ -1090,69 +1135,118 @@
1058 ;; Unlike most other insns, the move insns can't be split with 1058 ;; Unlike most other insns, the move insns can't be split with
1059 ;; different predicates, because register spilling and other parts of 1059 ;; different predicates, because register spilling and other parts of
1060 ;; the compiler, have memoized the insn number already. 1060 ;; the compiler, have memoized the insn number already.
@@ -1200,6 +1200,7 @@ index bcf2b9244f8..bef750c026a 100644
1200+ (set_attr "length" "4,4,12,4,8,4,8")]) 1200+ (set_attr "length" "4,4,12,4,8,4,8")])
1201+ 1201+
1202 1202
1203
1203 (define_insn "*movdi_internal" 1204 (define_insn "*movdi_internal"
1204 [(set (match_operand:DI 0 "nonimmediate_operand" "=d,d,d,d,d,R,o") 1205 [(set (match_operand:DI 0 "nonimmediate_operand" "=d,d,d,d,d,R,o")
1205 (match_operand:DI 1 "general_operand" " d,i,J,R,o,d,d"))] 1206 (match_operand:DI 1 "general_operand" " d,i,J,R,o,d,d"))]
@@ -1208,7 +1209,7 @@ index bcf2b9244f8..bef750c026a 100644
1208 { 1209 {
1209 switch (which_alternative) 1210 switch (which_alternative)
1210 { 1211 {
1211@@ -1183,7 +1277,8 @@ 1212@@ -1184,7 +1278,8 @@
1212 "reload_completed 1213 "reload_completed
1213 && GET_CODE (operands[0]) == REG && GP_REG_P (REGNO (operands[0])) 1214 && GET_CODE (operands[0]) == REG && GP_REG_P (REGNO (operands[0]))
1214 && GET_CODE (operands[1]) == REG && GP_REG_P (REGNO (operands[1])) 1215 && GET_CODE (operands[1]) == REG && GP_REG_P (REGNO (operands[1]))
@@ -1218,7 +1219,7 @@ index bcf2b9244f8..bef750c026a 100644
1218 1219
1219 [(set (subreg:SI (match_dup 0) 4) (subreg:SI (match_dup 1) 4)) 1220 [(set (subreg:SI (match_dup 0) 4) (subreg:SI (match_dup 1) 4))
1220 (set (subreg:SI (match_dup 0) 0) (subreg:SI (match_dup 1) 0))] 1221 (set (subreg:SI (match_dup 0) 0) (subreg:SI (match_dup 1) 0))]
1221@@ -1195,12 +1290,22 @@ 1222@@ -1196,12 +1291,22 @@
1222 "reload_completed 1223 "reload_completed
1223 && GET_CODE (operands[0]) == REG && GP_REG_P (REGNO (operands[0])) 1224 && GET_CODE (operands[0]) == REG && GP_REG_P (REGNO (operands[0]))
1224 && GET_CODE (operands[1]) == REG && GP_REG_P (REGNO (operands[1])) 1225 && GET_CODE (operands[1]) == REG && GP_REG_P (REGNO (operands[1]))
@@ -1242,7 +1243,7 @@ index bcf2b9244f8..bef750c026a 100644
1242 ;; Unlike most other insns, the move insns can't be split with 1243 ;; Unlike most other insns, the move insns can't be split with
1243 ;; different predicates, because register spilling and other parts of 1244 ;; different predicates, because register spilling and other parts of
1244 ;; the compiler, have memoized the insn number already. 1245 ;; the compiler, have memoized the insn number already.
1245@@ -1272,6 +1377,8 @@ 1246@@ -1273,6 +1378,8 @@
1246 (set_attr "length" "4,4,8,4,8,4,8")]) 1247 (set_attr "length" "4,4,8,4,8,4,8")])
1247 1248
1248 1249
@@ -1251,7 +1252,7 @@ index bcf2b9244f8..bef750c026a 100644
1251 ;; 16-bit Integer moves 1252 ;; 16-bit Integer moves
1252 1253
1253 ;; Unlike most other insns, the move insns can't be split with 1254 ;; Unlike most other insns, the move insns can't be split with
1254@@ -1304,8 +1411,8 @@ 1255@@ -1305,8 +1412,8 @@
1255 "@ 1256 "@
1256 addik\t%0,r0,%1\t# %X1 1257 addik\t%0,r0,%1\t# %X1
1257 addk\t%0,%1,r0 1258 addk\t%0,%1,r0
@@ -1262,7 +1263,7 @@ index bcf2b9244f8..bef750c026a 100644
1262 sh%i0\t%z1,%0 1263 sh%i0\t%z1,%0
1263 sh%i0\t%z1,%0" 1264 sh%i0\t%z1,%0"
1264 [(set_attr "type" "arith,move,load,no_delay_load,store,no_delay_store") 1265 [(set_attr "type" "arith,move,load,no_delay_load,store,no_delay_store")
1265@@ -1348,7 +1455,7 @@ 1266@@ -1349,7 +1456,7 @@
1266 lbu%i1\t%0,%1 1267 lbu%i1\t%0,%1
1267 lbu%i1\t%0,%1 1268 lbu%i1\t%0,%1
1268 sb%i0\t%z1,%0 1269 sb%i0\t%z1,%0
@@ -1271,7 +1272,7 @@ index bcf2b9244f8..bef750c026a 100644
1271 [(set_attr "type" "arith,arith,move,load,no_delay_load,store,no_delay_store") 1272 [(set_attr "type" "arith,arith,move,load,no_delay_load,store,no_delay_store")
1272 (set_attr "mode" "QI") 1273 (set_attr "mode" "QI")
1273 (set_attr "length" "4,4,8,4,8,4,8")]) 1274 (set_attr "length" "4,4,8,4,8,4,8")])
1274@@ -1421,7 +1528,7 @@ 1275@@ -1422,7 +1529,7 @@
1275 addik\t%0,r0,%F1 1276 addik\t%0,r0,%F1
1276 lw%i1\t%0,%1 1277 lw%i1\t%0,%1
1277 sw%i0\t%z1,%0 1278 sw%i0\t%z1,%0
@@ -1280,7 +1281,7 @@ index bcf2b9244f8..bef750c026a 100644
1280 [(set_attr "type" "move,no_delay_load,load,no_delay_load,no_delay_load,store,no_delay_store") 1281 [(set_attr "type" "move,no_delay_load,load,no_delay_load,no_delay_load,store,no_delay_store")
1281 (set_attr "mode" "SF") 1282 (set_attr "mode" "SF")
1282 (set_attr "length" "4,4,4,4,4,4,4")]) 1283 (set_attr "length" "4,4,4,4,4,4,4")])
1283@@ -1460,6 +1567,33 @@ 1284@@ -1461,6 +1568,33 @@
1284 ;; movdf_internal 1285 ;; movdf_internal
1285 ;; Applies to both TARGET_SOFT_FLOAT and TARGET_HARD_FLOAT 1286 ;; Applies to both TARGET_SOFT_FLOAT and TARGET_HARD_FLOAT
1286 ;; 1287 ;;
@@ -1314,7 +1315,7 @@ index bcf2b9244f8..bef750c026a 100644
1314 (define_insn "*movdf_internal" 1315 (define_insn "*movdf_internal"
1315 [(set (match_operand:DF 0 "nonimmediate_operand" "=d,d,d,d,o") 1316 [(set (match_operand:DF 0 "nonimmediate_operand" "=d,d,d,d,o")
1316 (match_operand:DF 1 "general_operand" "dG,o,F,T,d"))] 1317 (match_operand:DF 1 "general_operand" "dG,o,F,T,d"))]
1317@@ -1494,7 +1628,8 @@ 1318@@ -1495,7 +1629,8 @@
1318 "reload_completed 1319 "reload_completed
1319 && GET_CODE (operands[0]) == REG && GP_REG_P (REGNO (operands[0])) 1320 && GET_CODE (operands[0]) == REG && GP_REG_P (REGNO (operands[0]))
1320 && GET_CODE (operands[1]) == REG && GP_REG_P (REGNO (operands[1])) 1321 && GET_CODE (operands[1]) == REG && GP_REG_P (REGNO (operands[1]))
@@ -1324,7 +1325,7 @@ index bcf2b9244f8..bef750c026a 100644
1324 [(set (subreg:SI (match_dup 0) 4) (subreg:SI (match_dup 1) 4)) 1325 [(set (subreg:SI (match_dup 0) 4) (subreg:SI (match_dup 1) 4))
1325 (set (subreg:SI (match_dup 0) 0) (subreg:SI (match_dup 1) 0))] 1326 (set (subreg:SI (match_dup 0) 0) (subreg:SI (match_dup 1) 0))]
1326 "") 1327 "")
1327@@ -1505,7 +1640,8 @@ 1328@@ -1506,7 +1641,8 @@
1328 "reload_completed 1329 "reload_completed
1329 && GET_CODE (operands[0]) == REG && GP_REG_P (REGNO (operands[0])) 1330 && GET_CODE (operands[0]) == REG && GP_REG_P (REGNO (operands[0]))
1330 && GET_CODE (operands[1]) == REG && GP_REG_P (REGNO (operands[1])) 1331 && GET_CODE (operands[1]) == REG && GP_REG_P (REGNO (operands[1]))
@@ -1334,7 +1335,7 @@ index bcf2b9244f8..bef750c026a 100644
1334 [(set (subreg:SI (match_dup 0) 0) (subreg:SI (match_dup 1) 0)) 1335 [(set (subreg:SI (match_dup 0) 0) (subreg:SI (match_dup 1) 0))
1335 (set (subreg:SI (match_dup 0) 4) (subreg:SI (match_dup 1) 4))] 1336 (set (subreg:SI (match_dup 0) 4) (subreg:SI (match_dup 1) 4))]
1336 "") 1337 "")
1337@@ -2005,6 +2141,31 @@ else 1338@@ -2006,6 +2142,31 @@ else
1338 " 1339 "
1339 ) 1340 )
1340 1341
@@ -1366,7 +1367,7 @@ index bcf2b9244f8..bef750c026a 100644
1366 (define_insn "seq_internal_pat" 1367 (define_insn "seq_internal_pat"
1367 [(set (match_operand:SI 0 "register_operand" "=d") 1368 [(set (match_operand:SI 0 "register_operand" "=d")
1368 (eq:SI 1369 (eq:SI
1369@@ -2065,8 +2226,8 @@ else 1370@@ -2066,8 +2227,8 @@ else
1370 (define_expand "cbranchsi4" 1371 (define_expand "cbranchsi4"
1371 [(set (pc) 1372 [(set (pc)
1372 (if_then_else (match_operator 0 "ordered_comparison_operator" 1373 (if_then_else (match_operator 0 "ordered_comparison_operator"
@@ -1377,7 +1378,7 @@ index bcf2b9244f8..bef750c026a 100644
1377 (label_ref (match_operand 3 "")) 1378 (label_ref (match_operand 3 ""))
1378 (pc)))] 1379 (pc)))]
1379 "" 1380 ""
1380@@ -2078,13 +2239,13 @@ else 1381@@ -2079,13 +2240,13 @@ else
1381 (define_expand "cbranchsi4_reg" 1382 (define_expand "cbranchsi4_reg"
1382 [(set (pc) 1383 [(set (pc)
1383 (if_then_else (match_operator 0 "ordered_comparison_operator" 1384 (if_then_else (match_operator 0 "ordered_comparison_operator"
@@ -1394,7 +1395,7 @@ index bcf2b9244f8..bef750c026a 100644
1394 DONE; 1395 DONE;
1395 }) 1396 })
1396 1397
1397@@ -2109,6 +2270,26 @@ else 1398@@ -2110,6 +2271,26 @@ else
1398 (label_ref (match_operand 1)) 1399 (label_ref (match_operand 1))
1399 (pc)))]) 1400 (pc)))])
1400 1401
@@ -1421,7 +1422,7 @@ index bcf2b9244f8..bef750c026a 100644
1421 (define_insn "branch_zero" 1422 (define_insn "branch_zero"
1422 [(set (pc) 1423 [(set (pc)
1423 (if_then_else (match_operator:SI 0 "ordered_comparison_operator" 1424 (if_then_else (match_operator:SI 0 "ordered_comparison_operator"
1424@@ -2129,6 +2310,47 @@ else 1425@@ -2130,6 +2311,47 @@ else
1425 (set_attr "length" "4")] 1426 (set_attr "length" "4")]
1426 ) 1427 )
1427 1428
@@ -1469,7 +1470,7 @@ index bcf2b9244f8..bef750c026a 100644
1469 (define_insn "branch_compare" 1470 (define_insn "branch_compare"
1470 [(set (pc) 1471 [(set (pc)
1471 (if_then_else (match_operator:SI 0 "cmp_op" 1472 (if_then_else (match_operator:SI 0 "cmp_op"
1472@@ -2312,7 +2534,7 @@ else 1473@@ -2313,7 +2535,7 @@ else
1473 ;; Indirect jumps. Jump to register values. Assuming absolute jumps 1474 ;; Indirect jumps. Jump to register values. Assuming absolute jumps
1474 1475
1475 (define_insn "indirect_jump_internal1" 1476 (define_insn "indirect_jump_internal1"
@@ -1478,7 +1479,7 @@ index bcf2b9244f8..bef750c026a 100644
1478 "" 1479 ""
1479 "bra%?\t%0" 1480 "bra%?\t%0"
1480 [(set_attr "type" "jump") 1481 [(set_attr "type" "jump")
1481@@ -2325,7 +2547,7 @@ else 1482@@ -2326,7 +2548,7 @@ else
1482 (use (label_ref (match_operand 1 "" "")))] 1483 (use (label_ref (match_operand 1 "" "")))]
1483 "" 1484 ""
1484 { 1485 {
@@ -1487,7 +1488,7 @@ index bcf2b9244f8..bef750c026a 100644
1487 1488
1488 if (!flag_pic || TARGET_PIC_DATA_TEXT_REL) 1489 if (!flag_pic || TARGET_PIC_DATA_TEXT_REL)
1489 emit_jump_insn (gen_tablejump_internal1 (operands[0], operands[1])); 1490 emit_jump_insn (gen_tablejump_internal1 (operands[0], operands[1]));
1490@@ -2337,7 +2559,7 @@ else 1491@@ -2338,7 +2560,7 @@ else
1491 1492
1492 (define_insn "tablejump_internal1" 1493 (define_insn "tablejump_internal1"
1493 [(set (pc) 1494 [(set (pc)
@@ -1496,7 +1497,7 @@ index bcf2b9244f8..bef750c026a 100644
1496 (use (label_ref (match_operand 1 "" "")))] 1497 (use (label_ref (match_operand 1 "" "")))]
1497 "" 1498 ""
1498 "bra%?\t%0 " 1499 "bra%?\t%0 "
1499@@ -2347,9 +2569,9 @@ else 1500@@ -2348,9 +2570,9 @@ else
1500 1501
1501 (define_expand "tablejump_internal3" 1502 (define_expand "tablejump_internal3"
1502 [(parallel [(set (pc) 1503 [(parallel [(set (pc)
@@ -1509,7 +1510,7 @@ index bcf2b9244f8..bef750c026a 100644
1509 "" 1510 ""
1510 "" 1511 ""
1511 ) 1512 )
1512@@ -2410,7 +2632,7 @@ else 1513@@ -2411,7 +2633,7 @@ else
1513 (minus (reg 1) (match_operand 1 "register_operand" ""))) 1514 (minus (reg 1) (match_operand 1 "register_operand" "")))
1514 (set (reg 1) 1515 (set (reg 1)
1515 (minus (reg 1) (match_dup 1)))] 1516 (minus (reg 1) (match_dup 1)))]
@@ -1518,7 +1519,7 @@ index bcf2b9244f8..bef750c026a 100644
1518 { 1519 {
1519 rtx retaddr = gen_rtx_MEM (Pmode, stack_pointer_rtx); 1520 rtx retaddr = gen_rtx_MEM (Pmode, stack_pointer_rtx);
1520 rtx reg = gen_reg_rtx (Pmode); 1521 rtx reg = gen_reg_rtx (Pmode);
1521@@ -2435,7 +2657,7 @@ else 1522@@ -2436,7 +2658,7 @@ else
1522 (define_expand "save_stack_block" 1523 (define_expand "save_stack_block"
1523 [(match_operand 0 "register_operand" "") 1524 [(match_operand 0 "register_operand" "")
1524 (match_operand 1 "register_operand" "")] 1525 (match_operand 1 "register_operand" "")]
@@ -1527,7 +1528,7 @@ index bcf2b9244f8..bef750c026a 100644
1527 { 1528 {
1528 emit_move_insn (operands[0], operands[1]); 1529 emit_move_insn (operands[0], operands[1]);
1529 DONE; 1530 DONE;
1530@@ -2445,7 +2667,7 @@ else 1531@@ -2446,7 +2668,7 @@ else
1531 (define_expand "restore_stack_block" 1532 (define_expand "restore_stack_block"
1532 [(match_operand 0 "register_operand" "") 1533 [(match_operand 0 "register_operand" "")
1533 (match_operand 1 "register_operand" "")] 1534 (match_operand 1 "register_operand" "")]
@@ -1536,7 +1537,7 @@ index bcf2b9244f8..bef750c026a 100644
1536 { 1537 {
1537 rtx retaddr = gen_rtx_MEM (Pmode, stack_pointer_rtx); 1538 rtx retaddr = gen_rtx_MEM (Pmode, stack_pointer_rtx);
1538 rtx rtmp = gen_rtx_REG (SImode, R_TMP); 1539 rtx rtmp = gen_rtx_REG (SImode, R_TMP);
1539@@ -2492,7 +2714,7 @@ else 1540@@ -2493,7 +2715,7 @@ else
1540 1541
1541 (define_insn "<optab>_internal" 1542 (define_insn "<optab>_internal"
1542 [(any_return) 1543 [(any_return)
@@ -1545,7 +1546,7 @@ index bcf2b9244f8..bef750c026a 100644
1545 "" 1546 ""
1546 { 1547 {
1547 if (microblaze_is_break_handler ()) 1548 if (microblaze_is_break_handler ())
1548@@ -2525,7 +2747,7 @@ else 1549@@ -2526,7 +2748,7 @@ else
1549 (define_expand "call" 1550 (define_expand "call"
1550 [(parallel [(call (match_operand 0 "memory_operand" "m") 1551 [(parallel [(call (match_operand 0 "memory_operand" "m")
1551 (match_operand 1 "" "i")) 1552 (match_operand 1 "" "i"))
@@ -1554,7 +1555,7 @@ index bcf2b9244f8..bef750c026a 100644
1554 (use (match_operand 2 "" "")) 1555 (use (match_operand 2 "" ""))
1555 (use (match_operand 3 "" ""))])] 1556 (use (match_operand 3 "" ""))])]
1556 "" 1557 ""
1557@@ -2546,12 +2768,12 @@ else 1558@@ -2547,12 +2769,12 @@ else
1558 1559
1559 if (GET_CODE (XEXP (operands[0], 0)) == UNSPEC) 1560 if (GET_CODE (XEXP (operands[0], 0)) == UNSPEC)
1560 emit_call_insn (gen_call_internal_plt0 (operands[0], operands[1], 1561 emit_call_insn (gen_call_internal_plt0 (operands[0], operands[1],
@@ -1569,7 +1570,7 @@ index bcf2b9244f8..bef750c026a 100644
1569 GP_REG_FIRST + MB_ABI_SUB_RETURN_ADDR_REGNUM))); 1570 GP_REG_FIRST + MB_ABI_SUB_RETURN_ADDR_REGNUM)));
1570 1571
1571 DONE; 1572 DONE;
1572@@ -2561,7 +2783,7 @@ else 1573@@ -2562,7 +2784,7 @@ else
1573 (define_expand "call_internal0" 1574 (define_expand "call_internal0"
1574 [(parallel [(call (match_operand 0 "" "") 1575 [(parallel [(call (match_operand 0 "" "")
1575 (match_operand 1 "" "")) 1576 (match_operand 1 "" ""))
@@ -1578,7 +1579,7 @@ index bcf2b9244f8..bef750c026a 100644
1578 "" 1579 ""
1579 { 1580 {
1580 } 1581 }
1581@@ -2570,18 +2792,34 @@ else 1582@@ -2571,18 +2793,34 @@ else
1582 (define_expand "call_internal_plt0" 1583 (define_expand "call_internal_plt0"
1583 [(parallel [(call (match_operand 0 "" "") 1584 [(parallel [(call (match_operand 0 "" "")
1584 (match_operand 1 "" "")) 1585 (match_operand 1 "" ""))
@@ -1619,7 +1620,7 @@ index bcf2b9244f8..bef750c026a 100644
1619 "flag_pic" 1620 "flag_pic"
1620 { 1621 {
1621 register rtx target2 = gen_rtx_REG (Pmode, 1622 register rtx target2 = gen_rtx_REG (Pmode,
1622@@ -2593,10 +2831,41 @@ else 1623@@ -2594,10 +2832,41 @@ else
1623 (set_attr "mode" "none") 1624 (set_attr "mode" "none")
1624 (set_attr "length" "4")]) 1625 (set_attr "length" "4")])
1625 1626
@@ -1663,7 +1664,7 @@ index bcf2b9244f8..bef750c026a 100644
1663 "" 1664 ""
1664 { 1665 {
1665 register rtx target = operands[0]; 1666 register rtx target = operands[0];
1666@@ -2630,7 +2899,7 @@ else 1667@@ -2631,7 +2900,7 @@ else
1667 [(parallel [(set (match_operand 0 "register_operand" "=d") 1668 [(parallel [(set (match_operand 0 "register_operand" "=d")
1668 (call (match_operand 1 "memory_operand" "m") 1669 (call (match_operand 1 "memory_operand" "m")
1669 (match_operand 2 "" "i"))) 1670 (match_operand 2 "" "i")))
@@ -1672,7 +1673,7 @@ index bcf2b9244f8..bef750c026a 100644
1672 (use (match_operand 3 "" ""))])] ;; next_arg_reg 1673 (use (match_operand 3 "" ""))])] ;; next_arg_reg
1673 "" 1674 ""
1674 { 1675 {
1675@@ -2651,13 +2920,13 @@ else 1676@@ -2652,13 +2921,13 @@ else
1676 if (GET_CODE (XEXP (operands[1], 0)) == UNSPEC) 1677 if (GET_CODE (XEXP (operands[1], 0)) == UNSPEC)
1677 emit_call_insn (gen_call_value_intern_plt0 (operands[0], operands[1], 1678 emit_call_insn (gen_call_value_intern_plt0 (operands[0], operands[1],
1678 operands[2], 1679 operands[2],
@@ -1688,7 +1689,7 @@ index bcf2b9244f8..bef750c026a 100644
1688 GP_REG_FIRST + MB_ABI_SUB_RETURN_ADDR_REGNUM))); 1689 GP_REG_FIRST + MB_ABI_SUB_RETURN_ADDR_REGNUM)));
1689 1690
1690 DONE; 1691 DONE;
1691@@ -2669,7 +2938,7 @@ else 1692@@ -2670,7 +2939,7 @@ else
1692 [(parallel [(set (match_operand 0 "" "") 1693 [(parallel [(set (match_operand 0 "" "")
1693 (call (match_operand 1 "" "") 1694 (call (match_operand 1 "" "")
1694 (match_operand 2 "" ""))) 1695 (match_operand 2 "" "")))
@@ -1697,7 +1698,7 @@ index bcf2b9244f8..bef750c026a 100644
1697 ])] 1698 ])]
1698 "" 1699 ""
1699 {} 1700 {}
1700@@ -2679,18 +2948,35 @@ else 1701@@ -2680,18 +2949,35 @@ else
1701 [(parallel[(set (match_operand 0 "" "") 1702 [(parallel[(set (match_operand 0 "" "")
1702 (call (match_operand 1 "" "") 1703 (call (match_operand 1 "" "")
1703 (match_operand 2 "" ""))) 1704 (match_operand 2 "" "")))
@@ -1739,7 +1740,7 @@ index bcf2b9244f8..bef750c026a 100644
1739 "flag_pic" 1740 "flag_pic"
1740 { 1741 {
1741 register rtx target2=gen_rtx_REG (Pmode,GP_REG_FIRST + MB_ABI_SUB_RETURN_ADDR_REGNUM); 1742 register rtx target2=gen_rtx_REG (Pmode,GP_REG_FIRST + MB_ABI_SUB_RETURN_ADDR_REGNUM);
1742@@ -2702,11 +2988,46 @@ else 1743@@ -2703,11 +2989,46 @@ else
1743 (set_attr "mode" "none") 1744 (set_attr "mode" "none")
1744 (set_attr "length" "4")]) 1745 (set_attr "length" "4")])
1745 1746
@@ -1788,7 +1789,7 @@ index bcf2b9244f8..bef750c026a 100644
1788 "" 1789 ""
1789 { 1790 {
1790 register rtx target = operands[1]; 1791 register rtx target = operands[1];
1791@@ -2880,7 +3201,6 @@ else 1792@@ -2881,7 +3202,6 @@ else
1792 1793
1793 ;;if (!register_operand (operands[0], VOIDmode)) 1794 ;;if (!register_operand (operands[0], VOIDmode))
1794 ;; FAIL; 1795 ;; FAIL;
@@ -1797,10 +1798,10 @@ index bcf2b9244f8..bef750c026a 100644
1797 operands[2], operands[3])); 1798 operands[2], operands[3]));
1798 DONE; 1799 DONE;
1799diff --git a/gcc/config/microblaze/t-microblaze b/gcc/config/microblaze/t-microblaze 1800diff --git a/gcc/config/microblaze/t-microblaze b/gcc/config/microblaze/t-microblaze
1800index 7671f63c5b5..9fc80b142ce 100644 1801index e9a1921ae26..9fc80b142ce 100644
1801--- a/gcc/config/microblaze/t-microblaze 1802--- a/gcc/config/microblaze/t-microblaze
1802+++ b/gcc/config/microblaze/t-microblaze 1803+++ 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 1804@@ -2,7 +2,8 @@ MULTILIB_OPTIONS = mxl-barrel-shift mno-xl-soft-mul mxl-multiply-high mlittle-en
1804 MULTILIB_DIRNAMES = bs m mh le m64 1805 MULTILIB_DIRNAMES = bs m mh le m64
1805 MULTILIB_EXCEPTIONS = *mxl-barrel-shift/mxl-multiply-high mxl-multiply-high 1806 MULTILIB_EXCEPTIONS = *mxl-barrel-shift/mxl-multiply-high mxl-multiply-high
1806 MULTILIB_EXCEPTIONS += *mxl-barrel-shift/mxl-multiply-high/mlittle-endian 1807 MULTILIB_EXCEPTIONS += *mxl-barrel-shift/mxl-multiply-high/mlittle-endian
@@ -1808,13 +1809,8 @@ index 7671f63c5b5..9fc80b142ce 100644
1808+MULTILIB_EXCEPTIONS += *mxl-barrel-shift/mxl-multiply-high/mlittle-endian/m64 1809+MULTILIB_EXCEPTIONS += *mxl-barrel-shift/mxl-multiply-high/mlittle-endian/m64
1809+MULTILIB_EXCEPTIONS += *mxl-barrel-shift/mxl-multiply-high/m64 mxl-multiply-high 1810+MULTILIB_EXCEPTIONS += *mxl-barrel-shift/mxl-multiply-high/m64 mxl-multiply-high
1810 MULTILIB_EXCEPTIONS += mxl-multiply-high/mlittle-endian 1811 MULTILIB_EXCEPTIONS += mxl-multiply-high/mlittle-endian
1811-#MULTILIB_EXCEPTIONS += mxl-multiply-high/m64 1812 MULTILIB_EXCEPTIONS += mxl-multiply-high/m64
1812-#MULTILIB_EXCEPTIONS += *mxl-multiply-high/mlittle-endian/m64 1813 MULTILIB_EXCEPTIONS += *mxl-multiply-high/mlittle-endian/m64
1813+MULTILIB_EXCEPTIONS += mxl-multiply-high/m64
1814+MULTILIB_EXCEPTIONS += *mxl-multiply-high/mlittle-endian/m64
1815
1816 # Extra files
1817 microblaze-c.o: $(srcdir)/config/microblaze/microblaze-c.c \
1818diff --git a/libgcc/config/microblaze/crti.S b/libgcc/config/microblaze/crti.S 1814diff --git a/libgcc/config/microblaze/crti.S b/libgcc/config/microblaze/crti.S
1819index d0146083db6..005825f1ec5 100644 1815index d0146083db6..005825f1ec5 100644
1820--- a/libgcc/config/microblaze/crti.S 1816--- a/libgcc/config/microblaze/crti.S
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0036-re-arrangement-of-the-compare-branches.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0031-re-arrangement-of-the-compare-branches.patch
index 63290129..0113c65d 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0036-re-arrangement-of-the-compare-branches.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0031-re-arrangement-of-the-compare-branches.patch
@@ -1,7 +1,7 @@
1From e259b63769bf3cc437a665059add98d9480d942c Mon Sep 17 00:00:00 2001 1From 67d89be9ace8f658354fb1378e986451ef435d60 Mon Sep 17 00:00:00 2001
2From: Nagaraju Mekala <nmekala@xilix.com> 2From: Nagaraju Mekala <nmekala@xilix.com>
3Date: Fri, 3 Aug 2018 15:41:39 +0530 3Date: Fri, 3 Aug 2018 15:41:39 +0530
4Subject: [PATCH 36/58] re-arrangement of the compare branches 4Subject: [PATCH 31/54] re-arrangement of the compare branches
5 5
6--- 6---
7 gcc/config/microblaze/microblaze.c | 28 ++---- 7 gcc/config/microblaze/microblaze.c | 28 ++----
@@ -9,10 +9,10 @@ Subject: [PATCH 36/58] re-arrangement of the compare branches
9 2 files changed, 73 insertions(+), 96 deletions(-) 9 2 files changed, 73 insertions(+), 96 deletions(-)
10 10
11diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c 11diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c
12index 3ecda553fe6..cba5d86225c 100644 12index 3c815444574..046bfd05558 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@@ -3827,11 +3827,7 @@ microblaze_expand_conditional_branch (machine_mode mode, rtx operands[]) 15@@ -3697,11 +3697,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 3ecda553fe6..cba5d86225c 100644
25 } 25 }
26 26
27 else if (code == EQ || code == NE) 27 else if (code == EQ || code == NE)
28@@ -3842,10 +3838,7 @@ microblaze_expand_conditional_branch (machine_mode mode, rtx operands[]) 28@@ -3712,10 +3708,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 3ecda553fe6..cba5d86225c 100644
37 } 37 }
38 else 38 else
39 { 39 {
40@@ -3878,10 +3871,7 @@ microblaze_expand_conditional_branch_reg (machine_mode mode, rtx operands[]) 40@@ -3748,10 +3741,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 3ecda553fe6..cba5d86225c 100644
49 } 49 }
50 else if (code == EQ) 50 else if (code == EQ)
51 { 51 {
52@@ -3896,10 +3886,7 @@ microblaze_expand_conditional_branch_reg (machine_mode mode, rtx operands[]) 52@@ -3766,10 +3756,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 3ecda553fe6..cba5d86225c 100644
61 61
62 } 62 }
63 else if (code == NE) 63 else if (code == NE)
64@@ -3915,10 +3902,7 @@ microblaze_expand_conditional_branch_reg (machine_mode mode, rtx operands[]) 64@@ -3785,10 +3772,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 3ecda553fe6..cba5d86225c 100644
73 } 73 }
74 else 74 else
75 { 75 {
76@@ -3960,7 +3944,7 @@ microblaze_expand_conditional_branch_df (rtx operands[]) 76@@ -3830,7 +3814,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,10 +83,10 @@ index 3ecda553fe6..cba5d86225c 100644
83 83
84 /* Implement TARGET_FRAME_POINTER_REQUIRED. */ 84 /* Implement TARGET_FRAME_POINTER_REQUIRED. */
85diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md 85diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md
86index bef750c026a..29ebbfc0c03 100644 86index 33a8b12ef3b..cfe9e5312d1 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@@ -2271,7 +2271,27 @@ else
90 (label_ref (match_operand 1)) 90 (label_ref (match_operand 1))
91 (pc)))]) 91 (pc)))])
92 92
@@ -115,7 +115,7 @@ index bef750c026a..29ebbfc0c03 100644
115 [(set (pc) 115 [(set (pc)
116 (if_then_else (match_operator 0 "ordered_comparison_operator" 116 (if_then_else (match_operator 0 "ordered_comparison_operator"
117 [(match_operand 1 "register_operand" "d") 117 [(match_operand 1 "register_operand" "d")
118@@ -2281,9 +2301,9 @@ else 118@@ -2282,9 +2302,9 @@ else
119 "TARGET_MB_64" 119 "TARGET_MB_64"
120 { 120 {
121 if (operands[3] == pc_rtx) 121 if (operands[3] == pc_rtx)
@@ -127,7 +127,7 @@ index bef750c026a..29ebbfc0c03 100644
127 } 127 }
128 [(set_attr "type" "branch") 128 [(set_attr "type" "branch")
129 (set_attr "mode" "none") 129 (set_attr "mode" "none")
130@@ -2312,9 +2332,9 @@ else 130@@ -2313,9 +2333,9 @@ else
131 131
132 (define_insn "branch_compare64" 132 (define_insn "branch_compare64"
133 [(set (pc) 133 [(set (pc)
@@ -140,7 +140,7 @@ index bef750c026a..29ebbfc0c03 100644
140 ]) 140 ])
141 (label_ref (match_operand 3)) 141 (label_ref (match_operand 3))
142 (pc))) 142 (pc)))
143@@ -2351,6 +2371,47 @@ else 143@@ -2352,6 +2372,47 @@ else
144 (set_attr "length" "12")] 144 (set_attr "length" "12")]
145 ) 145 )
146 146
@@ -188,7 +188,7 @@ index bef750c026a..29ebbfc0c03 100644
188 (define_insn "branch_compare" 188 (define_insn "branch_compare"
189 [(set (pc) 189 [(set (pc)
190 (if_then_else (match_operator:SI 0 "cmp_op" 190 (if_then_else (match_operator:SI 0 "cmp_op"
191@@ -2433,74 +2494,6 @@ else 191@@ -2434,74 +2495,6 @@ else
192 192
193 }) 193 })
194 194
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0037-Patch-Microblaze-previous-commit-broke-the-handling-.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0032-Patch-Microblaze-previous-commit-broke-the-handling-.patch
index 9be04781..b74c79ec 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0037-Patch-Microblaze-previous-commit-broke-the-handling-.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0032-Patch-Microblaze-previous-commit-broke-the-handling-.patch
@@ -1,7 +1,7 @@
1From 589c4453ab01570d47e6e37e4e546d65398cf58e Mon Sep 17 00:00:00 2001 1From 410348f4fd9b641afa24e6c6b6a62a4c74d18862 Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com> 2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Wed, 8 Aug 2018 17:37:26 +0530 3Date: Wed, 8 Aug 2018 17:37:26 +0530
4Subject: [PATCH 37/58] [Patch,Microblaze] : previous commit broke the 4Subject: [PATCH 32/54] [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,10 +9,10 @@ Subject: [PATCH 37/58] [Patch,Microblaze] : previous commit broke the
9 1 file changed, 2 insertions(+), 2 deletions(-) 9 1 file changed, 2 insertions(+), 2 deletions(-)
10 10
11diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md 11diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md
12index 29ebbfc0c03..1a8853056d7 100644 12index cfe9e5312d1..592757baf2f 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@@ -2227,8 +2227,8 @@ else
16 (define_expand "cbranchsi4" 16 (define_expand "cbranchsi4"
17 [(set (pc) 17 [(set (pc)
18 (if_then_else (match_operator 0 "ordered_comparison_operator" 18 (if_then_else (match_operator 0 "ordered_comparison_operator"
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0038-Patch-Microblaze-Support-of-multilibs-with-m64.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0033-Patch-Microblaze-Support-of-multilibs-with-m64.patch
index 464b5a6d..353bfa90 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0038-Patch-Microblaze-Support-of-multilibs-with-m64.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0033-Patch-Microblaze-Support-of-multilibs-with-m64.patch
@@ -1,7 +1,7 @@
1From cfc6628cdf81a7ab268d2699c9bbc465865681c5 Mon Sep 17 00:00:00 2001 1From 802c136f1a41ebfed3b25419e48331038f284e2b Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com> 2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Tue, 11 Sep 2018 13:43:48 +0530 3Date: Tue, 11 Sep 2018 13:43:48 +0530
4Subject: [PATCH 38/58] [Patch, Microblaze] : Support of multilibs with m64 ... 4Subject: [PATCH 33/54] [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 +
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0039-Fix-various-issues.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0034-Fixed-issues-like.patch
index c9d4b8c7..c508b158 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0039-Fix-various-issues.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0034-Fixed-issues-like.patch
@@ -1,21 +1,19 @@
1From 0405777c25bb8110ebfd8ea69c7df062a4c03d6b Mon Sep 17 00:00:00 2001 1From 2b2c6e96c3aefc86c880be05d93685a4ce97c9f1 Mon Sep 17 00:00:00 2001
2From: Nagaraju Mekala <nmekala@xilix.com> 2From: Nagaraju Mekala <nmekala@xilix.com>
3Date: Tue, 11 Sep 2018 14:58:00 +0530 3Date: Tue, 11 Sep 2018 14:58:00 +0530
4Subject: [PATCH 39/58] Fix various issues 4Subject: [PATCH 34/54] Fixed issues like: 1 Interrupt alignment issue 2 Sign
5 extension issue
5 6
6Fixed issues like:
71 Interrupt alignment issue
82 Sign extension issue
9--- 7---
10 gcc/config/microblaze/microblaze.c | 16 ++++++++++------ 8 gcc/config/microblaze/microblaze.c | 16 ++++++++++------
11 gcc/config/microblaze/microblaze.md | 2 +- 9 gcc/config/microblaze/microblaze.md | 2 +-
12 2 files changed, 11 insertions(+), 7 deletions(-) 10 2 files changed, 11 insertions(+), 7 deletions(-)
13 11
14diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c 12diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c
15index cba5d86225c..b94902b8fbb 100644 13index 046bfd05558..498c8ca191f 100644
16--- a/gcc/config/microblaze/microblaze.c 14--- a/gcc/config/microblaze/microblaze.c
17+++ b/gcc/config/microblaze/microblaze.c 15+++ b/gcc/config/microblaze/microblaze.c
18@@ -2307,9 +2307,14 @@ compute_frame_size (HOST_WIDE_INT size) 16@@ -2177,9 +2177,14 @@ compute_frame_size (HOST_WIDE_INT size)
19 17
20 total_size += gp_reg_size; 18 total_size += gp_reg_size;
21 19
@@ -32,7 +30,7 @@ index cba5d86225c..b94902b8fbb 100644
32 30
33 /* No space to be allocated for link register in leaf functions with no other 31 /* No space to be allocated for link register in leaf functions with no other
34 stack requirements. */ 32 stack requirements. */
35@@ -2594,7 +2599,6 @@ print_operand (FILE * file, rtx op, int letter) 33@@ -2464,7 +2469,6 @@ print_operand (FILE * file, rtx op, int letter)
36 else if (letter == 'h' || letter == 'j') 34 else if (letter == 'h' || letter == 'j')
37 { 35 {
38 long val[2]; 36 long val[2];
@@ -40,7 +38,7 @@ index cba5d86225c..b94902b8fbb 100644
40 long l[2]; 38 long l[2];
41 if (code == CONST_DOUBLE) 39 if (code == CONST_DOUBLE)
42 { 40 {
43@@ -2609,10 +2613,10 @@ print_operand (FILE * file, rtx op, int letter) 41@@ -2479,10 +2483,10 @@ print_operand (FILE * file, rtx op, int letter)
44 } 42 }
45 else if (code == CONST_INT || code == CONST)// || code == SYMBOL_REF ||code == LABEL_REF) 43 else if (code == CONST_INT || code == CONST)// || code == SYMBOL_REF ||code == LABEL_REF)
46 { 44 {
@@ -55,7 +53,7 @@ index cba5d86225c..b94902b8fbb 100644
55 else if (code == CONST_DOUBLE) 53 else if (code == CONST_DOUBLE)
56 { 54 {
57diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md 55diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md
58index 1a8853056d7..7cc26e7d786 100644 56index 592757baf2f..e7c7cf3e8b5 100644
59--- a/gcc/config/microblaze/microblaze.md 57--- a/gcc/config/microblaze/microblaze.md
60+++ b/gcc/config/microblaze/microblaze.md 58+++ b/gcc/config/microblaze/microblaze.md
61@@ -1096,7 +1096,7 @@ 59@@ -1096,7 +1096,7 @@
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0040-Fixed-below-issues.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0035-Fixed-below-issues.patch
index d5fbf703..61d35261 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0040-Fixed-below-issues.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0035-Fixed-below-issues.patch
@@ -1,11 +1,14 @@
1From c4d60b379c8d0a5621a0dc2a3a12fb40fe45e83e Mon Sep 17 00:00:00 2001 1From 051d744c06ed3f11f603e37768eece57784c2583 Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com> 2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Tue, 26 Nov 2019 17:26:15 +0530 3Date: Tue, 26 Nov 2019 17:26:15 +0530
4Subject: [PATCH 40/58] Fixed below issues: 4Subject: [PATCH 35/54] 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
10Conflicts:
11 gcc/config/microblaze/microblaze.md
9--- 12---
10 gcc/config/microblaze/microblaze.c | 12 +++- 13 gcc/config/microblaze/microblaze.c | 12 +++-
11 gcc/config/microblaze/microblaze.h | 7 +++ 14 gcc/config/microblaze/microblaze.h | 7 +++
@@ -15,10 +18,10 @@ Subject: [PATCH 40/58] Fixed below issues:
15 5 files changed, 125 insertions(+), 17 deletions(-) 18 5 files changed, 125 insertions(+), 17 deletions(-)
16 19
17diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c 20diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c
18index b94902b8fbb..12b1da852dd 100644 21index 498c8ca191f..e32de46fa62 100644
19--- a/gcc/config/microblaze/microblaze.c 22--- a/gcc/config/microblaze/microblaze.c
20+++ b/gcc/config/microblaze/microblaze.c 23+++ b/gcc/config/microblaze/microblaze.c
21@@ -2603,7 +2603,12 @@ print_operand (FILE * file, rtx op, int letter) 24@@ -2473,7 +2473,12 @@ print_operand (FILE * file, rtx op, int letter)
22 if (code == CONST_DOUBLE) 25 if (code == CONST_DOUBLE)
23 { 26 {
24 if (GET_MODE (op) == DFmode) 27 if (GET_MODE (op) == DFmode)
@@ -31,8 +34,8 @@ index b94902b8fbb..12b1da852dd 100644
31+ } 34+ }
32 else 35 else
33 { 36 {
34 REAL_VALUE_TO_TARGET_DOUBLE (*CONST_DOUBLE_REAL_VALUE (op), l); 37 REAL_VALUE_TO_TARGET_DOUBLE (*CONST_DOUBLE_REAL_VALUE (op), l);
35@@ -4006,7 +4011,10 @@ microblaze_expand_divide (rtx operands[]) 38@@ -3876,7 +3881,10 @@ microblaze_expand_divide (rtx operands[])
36 gen_rtx_PLUS (QImode, regt1, div_table_rtx)); 39 gen_rtx_PLUS (QImode, regt1, div_table_rtx));
37 40
38 insn = emit_insn (gen_zero_extendqisi2(operands[0],mem_rtx)); 41 insn = emit_insn (gen_zero_extendqisi2(operands[0],mem_rtx));
@@ -45,7 +48,7 @@ index b94902b8fbb..12b1da852dd 100644
45 LABEL_NUSES (div_end_label) = 1; 48 LABEL_NUSES (div_end_label) = 1;
46 emit_barrier (); 49 emit_barrier ();
47diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h 50diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h
48index 1f6e2059545..a36e06316aa 100644 51index f6ad4d9fc21..60c552958b8 100644
49--- a/gcc/config/microblaze/microblaze.h 52--- a/gcc/config/microblaze/microblaze.h
50+++ b/gcc/config/microblaze/microblaze.h 53+++ b/gcc/config/microblaze/microblaze.h
51@@ -888,10 +888,17 @@ do { \ 54@@ -888,10 +888,17 @@ do { \
@@ -67,7 +70,7 @@ index 1f6e2059545..a36e06316aa 100644
67 /* We need to group -lm as well, since some Newlib math functions 70 /* We need to group -lm as well, since some Newlib math functions
68 reference __errno! */ 71 reference __errno! */
69diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md 72diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md
70index 7cc26e7d786..013c77651c3 100644 73index e7c7cf3e8b5..74bb30cb9e8 100644
71--- a/gcc/config/microblaze/microblaze.md 74--- a/gcc/config/microblaze/microblaze.md
72+++ b/gcc/config/microblaze/microblaze.md 75+++ b/gcc/config/microblaze/microblaze.md
73@@ -527,6 +527,15 @@ 76@@ -527,6 +527,15 @@
@@ -86,7 +89,7 @@ index 7cc26e7d786..013c77651c3 100644
86 (define_insn "fix_truncsfsi2" 89 (define_insn "fix_truncsfsi2"
87 [(set (match_operand:SI 0 "register_operand" "=d") 90 [(set (match_operand:SI 0 "register_operand" "=d")
88 (fix:SI (match_operand:SF 1 "register_operand" "d")))] 91 (fix:SI (match_operand:SF 1 "register_operand" "d")))]
89@@ -1300,7 +1309,7 @@ 92@@ -1301,7 +1310,7 @@
90 (define_insn "movdi_long_int" 93 (define_insn "movdi_long_int"
91 [(set (match_operand:DI 0 "nonimmediate_operand" "=d") 94 [(set (match_operand:DI 0 "nonimmediate_operand" "=d")
92 (match_operand:DI 1 "general_operand" "i"))] 95 (match_operand:DI 1 "general_operand" "i"))]
@@ -95,7 +98,7 @@ index 7cc26e7d786..013c77651c3 100644
95 "addlik\t%0,r0,%h1\n\tbsllli\t%0,%0,32\n\taddlik\t%0,%0,%j1 #li => la"; 98 "addlik\t%0,r0,%h1\n\tbsllli\t%0,%0,32\n\taddlik\t%0,%0,%j1 #li => la";
96 [(set_attr "type" "no_delay_arith") 99 [(set_attr "type" "no_delay_arith")
97 (set_attr "mode" "DI") 100 (set_attr "mode" "DI")
98@@ -1583,7 +1592,7 @@ 101@@ -1584,7 +1593,7 @@
99 return "ll%i1\t%0,%1"; 102 return "ll%i1\t%0,%1";
100 case 3: 103 case 3:
101 { 104 {
@@ -104,7 +107,7 @@ index 7cc26e7d786..013c77651c3 100644
104 } 107 }
105 case 5: 108 case 5:
106 return "sl%i0\t%1,%0"; 109 return "sl%i0\t%1,%0";
107@@ -2373,9 +2382,9 @@ else 110@@ -2374,9 +2383,9 @@ else
108 111
109 (define_insn "long_branch_compare" 112 (define_insn "long_branch_compare"
110 [(set (pc) 113 [(set (pc)
@@ -117,7 +120,7 @@ index 7cc26e7d786..013c77651c3 100644
117 ]) 120 ])
118 (label_ref (match_operand 3)) 121 (label_ref (match_operand 3))
119 (pc))) 122 (pc)))
120@@ -2497,6 +2506,20 @@ else 123@@ -2498,6 +2507,20 @@ else
121 ;;---------------------------------------------------------------- 124 ;;----------------------------------------------------------------
122 ;; Unconditional branches 125 ;; Unconditional branches
123 ;;---------------------------------------------------------------- 126 ;;----------------------------------------------------------------
@@ -138,7 +141,7 @@ index 7cc26e7d786..013c77651c3 100644
138 (define_insn "jump" 141 (define_insn "jump"
139 [(set (pc) 142 [(set (pc)
140 (label_ref (match_operand 0 "" "")))] 143 (label_ref (match_operand 0 "" "")))]
141@@ -2542,17 +2565,25 @@ else 144@@ -2543,17 +2566,25 @@ else
142 { 145 {
143 //gcc_assert (GET_MODE (operands[0]) == Pmode); 146 //gcc_assert (GET_MODE (operands[0]) == Pmode);
144 147
@@ -169,7 +172,7 @@ index 7cc26e7d786..013c77651c3 100644
169 (use (label_ref (match_operand 1 "" "")))] 172 (use (label_ref (match_operand 1 "" "")))]
170 "" 173 ""
171 "bra%?\t%0 " 174 "bra%?\t%0 "
172@@ -2560,11 +2591,21 @@ else 175@@ -2561,11 +2592,21 @@ else
173 (set_attr "mode" "none") 176 (set_attr "mode" "none")
174 (set_attr "length" "4")]) 177 (set_attr "length" "4")])
175 178
@@ -194,7 +197,7 @@ index 7cc26e7d786..013c77651c3 100644
194 "" 197 ""
195 "" 198 ""
196 ) 199 )
197@@ -2595,6 +2636,23 @@ else 200@@ -2596,6 +2637,23 @@ else
198 "" 201 ""
199 ) 202 )
200 203
@@ -218,7 +221,7 @@ index 7cc26e7d786..013c77651c3 100644
218 ;;---------------------------------------------------------------- 221 ;;----------------------------------------------------------------
219 ;; Function prologue/epilogue and stack allocation 222 ;; Function prologue/epilogue and stack allocation
220 ;;---------------------------------------------------------------- 223 ;;----------------------------------------------------------------
221@@ -3101,7 +3159,7 @@ else 224@@ -3102,7 +3160,7 @@ else
222 ;; The insn to set GOT. The hardcoded number "8" accounts for $pc difference 225 ;; The insn to set GOT. The hardcoded number "8" accounts for $pc difference
223 ;; between "mfs" and "addik" instructions. 226 ;; between "mfs" and "addik" instructions.
224 (define_insn "set_got" 227 (define_insn "set_got"
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0041-Fix-various.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0036-Added-double-arith-instructions.patch
index 75ee48fa..3f52e879 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0041-Fix-various.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0036-Added-double-arith-instructions.patch
@@ -1,17 +1,16 @@
1From 90edf612331af9b7e99105112c2067a3f085daef Mon Sep 17 00:00:00 2001 1From 2bb5cef1a85d63ebf155bcb0070492b0ad298dd8 Mon Sep 17 00:00:00 2001
2From: Nagaraju Mekala <nmekala@xilix.com> 2From: Nagaraju Mekala <nmekala@xilix.com>
3Date: Tue, 9 Oct 2018 10:07:08 +0530 3Date: Tue, 9 Oct 2018 10:07:08 +0530
4Subject: [PATCH 41/58] Fix various 4Subject: [PATCH 36/54] -Added double arith instructions -Fixed prologue stack
5 pointer decrement issue
5 6
6-Added double arith instructions
7-Fixed prologue stack pointer decrement issue
8--- 7---
9 gcc/config/microblaze/microblaze.md | 78 +++++++++++++++++++++++++---- 8 gcc/config/microblaze/microblaze.md | 78 +++++++++++++++++++++++++----
10 gcc/config/microblaze/t-microblaze | 7 +++ 9 gcc/config/microblaze/t-microblaze | 7 +++
11 2 files changed, 76 insertions(+), 9 deletions(-) 10 2 files changed, 76 insertions(+), 9 deletions(-)
12 11
13diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md 12diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md
14index 013c77651c3..645f48f2847 100644 13index 74bb30cb9e8..1401d6b77ff 100644
15--- a/gcc/config/microblaze/microblaze.md 14--- a/gcc/config/microblaze/microblaze.md
16+++ b/gcc/config/microblaze/microblaze.md 15+++ b/gcc/config/microblaze/microblaze.md
17@@ -527,6 +527,66 @@ 16@@ -527,6 +527,66 @@
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0042-Fixed-the-issue-in-the-delay-slot-with-swap-instruct.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0037-Fixed-the-issue-in-the-delay-slot-with-swap-instruct.patch
index 2e66625b..2253b759 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0042-Fixed-the-issue-in-the-delay-slot-with-swap-instruct.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0037-Fixed-the-issue-in-the-delay-slot-with-swap-instruct.patch
@@ -1,7 +1,7 @@
1From c7f6fb9d81ce322f71cbef7cc1f5cb2fb8956a27 Mon Sep 17 00:00:00 2001 1From 2feba7c8902be8d5c4cc99feca0581472c16de0c Mon Sep 17 00:00:00 2001
2From: Nagaraju Mekala <nmekala@xilix.com> 2From: Nagaraju Mekala <nmekala@xilix.com>
3Date: Fri, 12 Oct 2018 16:07:36 +0530 3Date: Fri, 12 Oct 2018 16:07:36 +0530
4Subject: [PATCH 42/58] Fixed the issue in the delay slot with swap 4Subject: [PATCH 37/54] Fixed the issue in the delay slot with swap
5 instructions 5 instructions
6 6
7--- 7---
@@ -9,7 +9,7 @@ Subject: [PATCH 42/58] Fixed the issue in the delay slot with swap
9 1 file changed, 6 insertions(+) 9 1 file changed, 6 insertions(+)
10 10
11diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md 11diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md
12index 645f48f2847..6a1e45a5b66 100644 12index 1401d6b77ff..a91108cf0e5 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 @@
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0043-Fixed-the-load-store-issue-with-the-32bit-arith-libr.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0038-Fixed-the-load-store-issue-with-the-32bit-arith-libr.patch
index 3d532c6a..57905e66 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0043-Fixed-the-load-store-issue-with-the-32bit-arith-libr.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0038-Fixed-the-load-store-issue-with-the-32bit-arith-libr.patch
@@ -1,7 +1,7 @@
1From 16a9a232ae430e691c13157dd5988f9c5c7dfb71 Mon Sep 17 00:00:00 2001 1From 10d59c50195cff30c4e74959ef4cebc9065808a4 Mon Sep 17 00:00:00 2001
2From: Nagaraju Mekala <nmekala@xilix.com> 2From: Nagaraju Mekala <nmekala@xilix.com>
3Date: Sat, 13 Oct 2018 21:12:43 +0530 3Date: Sat, 13 Oct 2018 21:12:43 +0530
4Subject: [PATCH 43/58] Fixed the load store issue with the 32bit arith 4Subject: [PATCH 38/54] Fixed the load store issue with the 32bit arith
5 libraries 5 libraries
6 6
7--- 7---
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0044-extending-the-Dwarf-support-to-64bit-Microblaze.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0039-extending-the-Dwarf-support-to-64bit-Microblaze.patch
index d34c103d..8f46859a 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0044-extending-the-Dwarf-support-to-64bit-Microblaze.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0039-extending-the-Dwarf-support-to-64bit-Microblaze.patch
@@ -1,14 +1,14 @@
1From b3766742c4e1d401d4f7cdc55a90262681689a20 Mon Sep 17 00:00:00 2001 1From e51fb2d87f412d1f7045050c5c2df664766de706 Mon Sep 17 00:00:00 2001
2From: Nagaraju Mekala <nmekala@xilix.com> 2From: Nagaraju Mekala <nmekala@xilix.com>
3Date: Mon, 15 Oct 2018 12:00:10 +0530 3Date: Mon, 15 Oct 2018 12:00:10 +0530
4Subject: [PATCH 44/58] extending the Dwarf support to 64bit Microblaze 4Subject: [PATCH 39/54] 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
10diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h 10diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h
11index a36e06316aa..8504a841406 100644 11index 60c552958b8..747adcc7a70 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;
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0045-fixing-the-typo-errors-in-umodsi3-file.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0040-fixing-the-typo-errors-in-umodsi3-file.patch
index a69c71dd..e7e581e3 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0045-fixing-the-typo-errors-in-umodsi3-file.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0040-fixing-the-typo-errors-in-umodsi3-file.patch
@@ -1,7 +1,7 @@
1From bdc9429b5f2300e39ecdf1db63f4d35f8e18a932 Mon Sep 17 00:00:00 2001 1From 61be4b342d470aeb7ad1c0cc5e90f5afdc906c00 Mon Sep 17 00:00:00 2001
2From: Nagaraju Mekala <nmekala@xilix.com> 2From: Nagaraju Mekala <nmekala@xilix.com>
3Date: Tue, 16 Oct 2018 07:55:46 +0530 3Date: Tue, 16 Oct 2018 07:55:46 +0530
4Subject: [PATCH 45/58] fixing the typo errors in umodsi3 file 4Subject: [PATCH 40/54] 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 +++---
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0046-fixing-the-32bit-LTO-related-issue9-1014024.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0041-fixing-the-32bit-LTO-related-issue9-1014024.patch
index a5f7afb6..9f9afdb9 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0046-fixing-the-32bit-LTO-related-issue9-1014024.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0041-fixing-the-32bit-LTO-related-issue9-1014024.patch
@@ -1,14 +1,14 @@
1From 2226c8b836bdc9d0e2a281d971288e4bcb50d503 Mon Sep 17 00:00:00 2001 1From b1eb7b1f6c33246ded3501364279a5f002cd8de0 Mon Sep 17 00:00:00 2001
2From: Nagaraju Mekala <nmekala@xilix.com> 2From: Nagaraju Mekala <nmekala@xilix.com>
3Date: Wed, 17 Oct 2018 16:56:14 +0530 3Date: Wed, 17 Oct 2018 16:56:14 +0530
4Subject: [PATCH 46/58] fixing the 32bit LTO related issue9(1014024) 4Subject: [PATCH 41/54] 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
10diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h 10diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h
11index 8504a841406..0c493b6f6e4 100644 11index 747adcc7a70..bfa7bc9a01c 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;
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0047-Fixed-the-missing-stack-adjustment-in-prologue-of-mo.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0042-Fixed-the-missing-stack-adjustment-in-prologue-of-mo.patch
index 42296396..fb31d663 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0047-Fixed-the-missing-stack-adjustment-in-prologue-of-mo.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0042-Fixed-the-missing-stack-adjustment-in-prologue-of-mo.patch
@@ -1,7 +1,7 @@
1From 8ed304d49f66bc36b39dac8e804a7cdeda642739 Mon Sep 17 00:00:00 2001 1From e0820fe8c8d9b7504595794fe6e65151d22e2acf Mon Sep 17 00:00:00 2001
2From: Nagaraju Mekala <nmekala@xilix.com> 2From: Nagaraju Mekala <nmekala@xilix.com>
3Date: Fri, 19 Oct 2018 14:26:25 +0530 3Date: Fri, 19 Oct 2018 14:26:25 +0530
4Subject: [PATCH 47/58] Fixed the missing stack adjustment in prologue of 4Subject: [PATCH 42/54] Fixed the missing stack adjustment in prologue of
5 modsi3 function 5 modsi3 function
6 6
7--- 7---
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0048-Patch-Microblaze-corrected-SPN-for-dlong-instruction.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0043-Patch-Microblaze-corrected-SPN-for-dlong-instruction.patch
index 92fa9e57..ce8b1384 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0048-Patch-Microblaze-corrected-SPN-for-dlong-instruction.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0043-Patch-Microblaze-corrected-SPN-for-dlong-instruction.patch
@@ -1,7 +1,7 @@
1From d12f2da2ae7fa7946aef94c161730c7b851c086a Mon Sep 17 00:00:00 2001 1From 1f288ec920d938accb084dc0d1d6f6115950c014 Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com> 2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Wed, 24 Oct 2018 18:31:04 +0530 3Date: Wed, 24 Oct 2018 18:31:04 +0530
4Subject: [PATCH 48/58] [Patch,Microblaze] : corrected SPN for dlong 4Subject: [PATCH 43/54] [Patch,Microblaze] : corrected SPN for dlong
5 instruction mapping. 5 instruction mapping.
6 6
7--- 7---
@@ -9,7 +9,7 @@ Subject: [PATCH 48/58] [Patch,Microblaze] : corrected SPN for dlong
9 1 file changed, 2 insertions(+), 2 deletions(-) 9 1 file changed, 2 insertions(+), 2 deletions(-)
10 10
11diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md 11diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md
12index 6a1e45a5b66..53dbe4e4060 100644 12index a91108cf0e5..19801f8edcc 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 @@
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0049-fixing-the-long-long-long-mingw-toolchain-issue.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0044-fixing-the-long-long-long-mingw-toolchain-issue.patch
index 346157ce..fec0a2af 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0049-fixing-the-long-long-long-mingw-toolchain-issue.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0044-fixing-the-long-long-long-mingw-toolchain-issue.patch
@@ -1,7 +1,7 @@
1From dfe4f5aa180a7b4c15b4b586b253541aa9d29e52 Mon Sep 17 00:00:00 2001 1From eed2bf4db9bdfc0da1c3f77ce746fb5bfa460b3c Mon Sep 17 00:00:00 2001
2From: Nagaraju Mekala <nmekala@xilix.com> 2From: Nagaraju Mekala <nmekala@xilix.com>
3Date: Thu, 29 Nov 2018 17:55:08 +0530 3Date: Thu, 29 Nov 2018 17:55:08 +0530
4Subject: [PATCH 49/58] fixing the long & long long mingw toolchain issue 4Subject: [PATCH 44/54] 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 49/58] 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
11diff --git a/gcc/config/microblaze/constraints.md b/gcc/config/microblaze/constraints.md 11diff --git a/gcc/config/microblaze/constraints.md b/gcc/config/microblaze/constraints.md
12index c2b0a21c53b..4a6cf419671 100644 12index b8ef1650f92..89db511c453 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 @@
@@ -19,10 +19,10 @@ index c2b0a21c53b..4a6cf419671 100644
19- (match_test "ival > (long)-549755813888 && ival < (long)549755813887"))) 19- (match_test "ival > (long)-549755813888 && ival < (long)549755813887")))
20+ (match_test "ival > (long long)-549755813888 && ival < (long long)549755813887"))) 20+ (match_test "ival > (long long)-549755813888 && ival < (long long)549755813887")))
21 21
22 ;; Define floating point constraints
23 22
23 ;; Define floating point constraints
24diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md 24diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md
25index 53dbe4e4060..5d277014e42 100644 25index 19801f8edcc..8f0ae901b77 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 @@
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0050-Fix-the-MB-64-bug-of-handling-QI-objects.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0045-Fix-the-MB-64-bug-of-handling-QI-objects.patch
index 360bdb51..15acc1cb 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0050-Fix-the-MB-64-bug-of-handling-QI-objects.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0045-Fix-the-MB-64-bug-of-handling-QI-objects.patch
@@ -1,17 +1,17 @@
1From b21e115bc1af625b2ae1acb893027af6af3c2d16 Mon Sep 17 00:00:00 2001 1From 682f65fa3a6b37c207b0d727dd22b6f8cc5d8d3d Mon Sep 17 00:00:00 2001
2From: Nagaraju <nmekala@xilinx.com> 2From: Nagaraju <nmekala@xilinx.com>
3Date: Thu, 14 Mar 2019 18:11:04 +0530 3Date: Thu, 14 Mar 2019 18:11:04 +0530
4Subject: [PATCH 50/58] Fix the MB-64 bug of handling QI objects 4Subject: [PATCH 45/54] 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
10diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md 10diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md
11index 5d277014e42..a1363935c42 100644 11index 8f0ae901b77..207d2bf1b55 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@@ -2348,11 +2348,11 @@ else
15 15
16 (define_insn "branch_zero_64" 16 (define_insn "branch_zero_64"
17 [(set (pc) 17 [(set (pc)
@@ -26,7 +26,7 @@ index 5d277014e42..a1363935c42 100644
26 ] 26 ]
27 "TARGET_MB_64" 27 "TARGET_MB_64"
28 { 28 {
29@@ -2367,11 +2367,11 @@ else 29@@ -2368,11 +2368,11 @@ else
30 30
31 (define_insn "long_branch_zero" 31 (define_insn "long_branch_zero"
32 [(set (pc) 32 [(set (pc)
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0051-Patch-Microblaze-Check-the-possibiity-of-peephole2-o.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0046-Patch-Microblaze-We-will-check-the-possibility-of-pe.patch
index 6b7bb2a1..eebf6ee7 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0051-Patch-Microblaze-Check-the-possibiity-of-peephole2-o.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0046-Patch-Microblaze-We-will-check-the-possibility-of-pe.patch
@@ -1,17 +1,15 @@
1From ed17f79b22769e5a256e3990715e32e943bfd929 Mon Sep 17 00:00:00 2001 1From 444a09859149f8d21777a1c859ef2305ff86b211 Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com> 2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Fri, 29 Mar 2019 12:08:39 +0530 3Date: Fri, 29 Mar 2019 12:08:39 +0530
4Subject: [PATCH 51/58] [Patch,Microblaze] : Check the possibiity of peephole2 4Subject: [PATCH 46/54] [Patch,Microblaze] : We will check the possibility of
5 opt 5 peephole2 optimization,if we can then we will fix the compiler issue.
6 6
7We will check the possibility of peephole2
8optimization,if we can then we will fix the compiler issue.
9--- 7---
10 gcc/config/microblaze/microblaze.md | 63 +++++++++++++++++------------ 8 gcc/config/microblaze/microblaze.md | 63 +++++++++++++++++------------
11 1 file changed, 38 insertions(+), 25 deletions(-) 9 1 file changed, 38 insertions(+), 25 deletions(-)
12 10
13diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md 11diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md
14index a1363935c42..626eade9468 100644 12index 207d2bf1b55..9b88666c0a6 100644
15--- a/gcc/config/microblaze/microblaze.md 13--- a/gcc/config/microblaze/microblaze.md
16+++ b/gcc/config/microblaze/microblaze.md 14+++ b/gcc/config/microblaze/microblaze.md
17@@ -882,31 +882,44 @@ 15@@ -882,31 +882,44 @@
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0052-Patch-MicroBlaze-fixed-typos-in-mul-div-and-mod-asse.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0047-Patch-MicroBlaze-fixed-typos-in-mul-div-and-mod-asse.patch
index 45505cf1..34378812 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0052-Patch-MicroBlaze-fixed-typos-in-mul-div-and-mod-asse.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0047-Patch-MicroBlaze-fixed-typos-in-mul-div-and-mod-asse.patch
@@ -1,7 +1,7 @@
1From d845981b381b0174d97dda8a78d82cf8fcae7ca1 Mon Sep 17 00:00:00 2001 1From 7cc6db7ad5bf2fac80a81711c70ac1147ab87b2c Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com> 2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Wed, 17 Apr 2019 12:36:16 +0530 3Date: Wed, 17 Apr 2019 12:36:16 +0530
4Subject: [PATCH 52/58] [Patch,MicroBlaze]: fixed typos in mul,div and mod 4Subject: [PATCH 47/54] [Patch,MicroBlaze]: fixed typos in mul,div and mod
5 assembly files. 5 assembly files.
6 6
7--- 7---
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0053-Patch-microblaze-MB-64-removal-of-barrel-shift-instr.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0048-Author-Nagaraju-nmekala-xilinx.com.patch
index 8dce8476..94be6aff 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0053-Patch-microblaze-MB-64-removal-of-barrel-shift-instr.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0048-Author-Nagaraju-nmekala-xilinx.com.patch
@@ -1,24 +1,25 @@
1From e3b95d5646d4197bff81105c12bcbc5e7dba1725 Mon Sep 17 00:00:00 2001 1From f6b896effc198b8d9d1e6f33889f029da5e5d96c Mon Sep 17 00:00:00 2001
2From: Nagaraju <nmekala@xilinx.com> 2From: Nagaraju <nmekala@xilinx.com>
3Date: Thu, 18 Apr 2019 16:00:37 +0530 3Date: Thu, 18 Apr 2019 16:00:37 +0530
4Subject: [PATCH 53/58] [Patch, microblaze]: MB-64 removal of barrel-shift 4Subject: [PATCH 48/54] Author: Nagaraju <nmekala@xilinx.com> Date: Wed Apr
5 instructions from default 5 17 14:11:00 2019 +0530
6 6
7By default MB-64 is generatting barrel-shift instructions. It has been 7 [Patch, microblaze]: MB-64 removal of barrel-shift instructions from default
8removed from default. Barrel-shift instructions will be generated only if 8 By default MB-64 is generatting barrel-shift instructions. It has been
9barrel-shifter is enabled. Similarly to double instructions as well. 9 removed from default. Barrel-shift instructions will be generated only if
10 barrel-shifter is enabled. Similarly to double instructions as well.
10 11
11Signed-off-by :Nagaraju Mekala <nmekala@xilix.com> 12 Signed-off-by :Nagaraju Mekala <nmekala@xilix.com>
12--- 13---
13 gcc/config/microblaze/microblaze.c | 2 +- 14 gcc/config/microblaze/microblaze.c | 2 +-
14 gcc/config/microblaze/microblaze.md | 269 ++++++++++++++++++++++++++-- 15 gcc/config/microblaze/microblaze.md | 269 ++++++++++++++++++++++++++--
15 2 files changed, 252 insertions(+), 19 deletions(-) 16 2 files changed, 252 insertions(+), 19 deletions(-)
16 17
17diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c 18diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c
18index 12b1da852dd..5b4c21af365 100644 19index e32de46fa62..7b48c011550 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@@ -4000,7 +4000,7 @@ microblaze_expand_divide (rtx operands[]) 22@@ -3870,7 +3870,7 @@ microblaze_expand_divide (rtx operands[])
22 emit_insn (gen_rtx_CLOBBER (Pmode, reg18)); 23 emit_insn (gen_rtx_CLOBBER (Pmode, reg18));
23 24
24 if (TARGET_MB_64) { 25 if (TARGET_MB_64) {
@@ -28,7 +29,7 @@ index 12b1da852dd..5b4c21af365 100644
28 } 29 }
29 else { 30 else {
30diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md 31diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md
31index 626eade9468..6cc62666269 100644 32index 9b88666c0a6..60afd9be288 100644
32--- a/gcc/config/microblaze/microblaze.md 33--- a/gcc/config/microblaze/microblaze.md
33+++ b/gcc/config/microblaze/microblaze.md 34+++ b/gcc/config/microblaze/microblaze.md
34@@ -547,7 +547,7 @@ 35@@ -547,7 +547,7 @@
@@ -146,7 +147,7 @@ index 626eade9468..6cc62666269 100644
146 else 147 else
147 return "addlik\t%0,r0,%1"; 148 return "addlik\t%0,r0,%1";
148 case 3: 149 case 3:
149@@ -1388,7 +1424,7 @@ 150@@ -1389,7 +1425,7 @@
150 (define_insn "movdi_long_int" 151 (define_insn "movdi_long_int"
151 [(set (match_operand:DI 0 "nonimmediate_operand" "=d") 152 [(set (match_operand:DI 0 "nonimmediate_operand" "=d")
152 (match_operand:DI 1 "general_operand" "i"))] 153 (match_operand:DI 1 "general_operand" "i"))]
@@ -155,7 +156,7 @@ index 626eade9468..6cc62666269 100644
155 "addlik\t%0,r0,%h1\n\tbsllli\t%0,%0,32\n\taddlik\t%0,%0,%j1 #li => la"; 156 "addlik\t%0,r0,%h1\n\tbsllli\t%0,%0,32\n\taddlik\t%0,%0,%j1 #li => la";
156 [(set_attr "type" "no_delay_arith") 157 [(set_attr "type" "no_delay_arith")
157 (set_attr "mode" "DI") 158 (set_attr "mode" "DI")
158@@ -1655,6 +1691,33 @@ 159@@ -1656,6 +1692,33 @@
159 ;; movdf_internal 160 ;; movdf_internal
160 ;; Applies to both TARGET_SOFT_FLOAT and TARGET_HARD_FLOAT 161 ;; Applies to both TARGET_SOFT_FLOAT and TARGET_HARD_FLOAT
161 ;; 162 ;;
@@ -189,7 +190,7 @@ index 626eade9468..6cc62666269 100644
189 (define_insn "*movdf_internal_64" 190 (define_insn "*movdf_internal_64"
190 [(set (match_operand:DF 0 "nonimmediate_operand" "=d,d,d,d,d,m") 191 [(set (match_operand:DF 0 "nonimmediate_operand" "=d,d,d,d,d,m")
191 (match_operand:DF 1 "general_operand" "d,dG,m,F,T,d"))] 192 (match_operand:DF 1 "general_operand" "d,dG,m,F,T,d"))]
192@@ -1671,7 +1734,13 @@ 193@@ -1672,7 +1735,13 @@
193 return "ll%i1\t%0,%1"; 194 return "ll%i1\t%0,%1";
194 case 3: 195 case 3:
195 { 196 {
@@ -204,7 +205,7 @@ index 626eade9468..6cc62666269 100644
204 } 205 }
205 case 5: 206 case 5:
206 return "sl%i0\t%1,%0"; 207 return "sl%i0\t%1,%0";
207@@ -1791,11 +1860,21 @@ 208@@ -1792,11 +1861,21 @@
208 "TARGET_MB_64" 209 "TARGET_MB_64"
209 { 210 {
210 ;;if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65) 211 ;;if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65)
@@ -227,7 +228,7 @@ index 626eade9468..6cc62666269 100644
227 else 228 else
228 FAIL; 229 FAIL;
229 } 230 }
230@@ -1805,7 +1884,7 @@ else 231@@ -1806,7 +1885,7 @@ else
231 [(set (match_operand:DI 0 "register_operand" "=d,d") 232 [(set (match_operand:DI 0 "register_operand" "=d,d")
232 (ashift:DI (match_operand:DI 1 "register_operand" "d,d") 233 (ashift:DI (match_operand:DI 1 "register_operand" "d,d")
233 (match_operand:DI 2 "arith_operand" "I,d")))] 234 (match_operand:DI 2 "arith_operand" "I,d")))]
@@ -236,7 +237,7 @@ index 626eade9468..6cc62666269 100644
236 "@ 237 "@
237 bsllli\t%0,%1,%2 238 bsllli\t%0,%1,%2
238 bslll\t%0,%1,%2" 239 bslll\t%0,%1,%2"
239@@ -1813,6 +1892,51 @@ else 240@@ -1814,6 +1893,51 @@ else
240 (set_attr "mode" "DI,DI") 241 (set_attr "mode" "DI,DI")
241 (set_attr "length" "4,4")] 242 (set_attr "length" "4,4")]
242 ) 243 )
@@ -288,7 +289,7 @@ index 626eade9468..6cc62666269 100644
288 ;; The following patterns apply when there is no barrel shifter present 289 ;; The following patterns apply when there is no barrel shifter present
289 290
290 (define_insn "*ashlsi3_with_mul_delay" 291 (define_insn "*ashlsi3_with_mul_delay"
291@@ -1946,11 +2070,21 @@ else 292@@ -1947,11 +2071,21 @@ else
292 "TARGET_MB_64" 293 "TARGET_MB_64"
293 { 294 {
294 ;;if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65) 295 ;;if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65)
@@ -311,7 +312,7 @@ index 626eade9468..6cc62666269 100644
311 else 312 else
312 FAIL; 313 FAIL;
313 } 314 }
314@@ -1960,7 +2094,7 @@ else 315@@ -1961,7 +2095,7 @@ else
315 [(set (match_operand:DI 0 "register_operand" "=d,d") 316 [(set (match_operand:DI 0 "register_operand" "=d,d")
316 (ashiftrt:DI (match_operand:DI 1 "register_operand" "d,d") 317 (ashiftrt:DI (match_operand:DI 1 "register_operand" "d,d")
317 (match_operand:DI 2 "arith_operand" "I,d")))] 318 (match_operand:DI 2 "arith_operand" "I,d")))]
@@ -320,7 +321,7 @@ index 626eade9468..6cc62666269 100644
320 "@ 321 "@
321 bslrai\t%0,%1,%2 322 bslrai\t%0,%1,%2
322 bslra\t%0,%1,%2" 323 bslra\t%0,%1,%2"
323@@ -1968,6 +2102,51 @@ else 324@@ -1969,6 +2103,51 @@ else
324 (set_attr "mode" "DI,DI") 325 (set_attr "mode" "DI,DI")
325 (set_attr "length" "4,4")] 326 (set_attr "length" "4,4")]
326 ) 327 )
@@ -372,7 +373,7 @@ index 626eade9468..6cc62666269 100644
372 (define_expand "ashrsi3" 373 (define_expand "ashrsi3"
373 [(set (match_operand:SI 0 "register_operand" "=&d") 374 [(set (match_operand:SI 0 "register_operand" "=&d")
374 (ashiftrt:SI (match_operand:SI 1 "register_operand" "d") 375 (ashiftrt:SI (match_operand:SI 1 "register_operand" "d")
375@@ -2085,11 +2264,21 @@ else 376@@ -2086,11 +2265,21 @@ else
376 "TARGET_MB_64" 377 "TARGET_MB_64"
377 { 378 {
378 ;;if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65) 379 ;;if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 65)
@@ -395,7 +396,7 @@ index 626eade9468..6cc62666269 100644
395 else 396 else
396 FAIL; 397 FAIL;
397 } 398 }
398@@ -2099,7 +2288,7 @@ else 399@@ -2100,7 +2289,7 @@ else
399 [(set (match_operand:DI 0 "register_operand" "=d,d") 400 [(set (match_operand:DI 0 "register_operand" "=d,d")
400 (lshiftrt:DI (match_operand:DI 1 "register_operand" "d,d") 401 (lshiftrt:DI (match_operand:DI 1 "register_operand" "d,d")
401 (match_operand:DI 2 "arith_operand" "I,d")))] 402 (match_operand:DI 2 "arith_operand" "I,d")))]
@@ -404,7 +405,7 @@ index 626eade9468..6cc62666269 100644
404 "@ 405 "@
405 bslrli\t%0,%1,%2 406 bslrli\t%0,%1,%2
406 bslrl\t%0,%1,%2" 407 bslrl\t%0,%1,%2"
407@@ -2108,6 +2297,50 @@ else 408@@ -2109,6 +2298,50 @@ else
408 (set_attr "length" "4,4")] 409 (set_attr "length" "4,4")]
409 ) 410 )
410 411
@@ -455,7 +456,7 @@ index 626eade9468..6cc62666269 100644
455 (define_expand "lshrsi3" 456 (define_expand "lshrsi3"
456 [(set (match_operand:SI 0 "register_operand" "=&d") 457 [(set (match_operand:SI 0 "register_operand" "=&d")
457 (lshiftrt:SI (match_operand:SI 1 "register_operand" "d") 458 (lshiftrt:SI (match_operand:SI 1 "register_operand" "d")
458@@ -2235,7 +2468,7 @@ else 459@@ -2236,7 +2469,7 @@ else
459 (eq:DI 460 (eq:DI
460 (match_operand:DI 1 "register_operand" "d") 461 (match_operand:DI 1 "register_operand" "d")
461 (match_operand:DI 2 "register_operand" "d")))] 462 (match_operand:DI 2 "register_operand" "d")))]
@@ -464,7 +465,7 @@ index 626eade9468..6cc62666269 100644
464 "pcmpleq\t%0,%1,%2" 465 "pcmpleq\t%0,%1,%2"
465 [(set_attr "type" "arith") 466 [(set_attr "type" "arith")
466 (set_attr "mode" "DI") 467 (set_attr "mode" "DI")
467@@ -2247,7 +2480,7 @@ else 468@@ -2248,7 +2481,7 @@ else
468 (ne:DI 469 (ne:DI
469 (match_operand:DI 1 "register_operand" "d") 470 (match_operand:DI 1 "register_operand" "d")
470 (match_operand:DI 2 "register_operand" "d")))] 471 (match_operand:DI 2 "register_operand" "d")))]
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0055-Added-new-MB-64-single-register-arithmetic-instructi.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0049-Added-new-MB-64-single-register-arithmetic-instructi.patch
index 4ab3cec9..81ecbf8e 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0055-Added-new-MB-64-single-register-arithmetic-instructi.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0049-Added-new-MB-64-single-register-arithmetic-instructi.patch
@@ -1,14 +1,14 @@
1From 3198a31122bb0436d298d29e986bb69bc3c526a9 Mon Sep 17 00:00:00 2001 1From adb1b8d8cc2a8fb99f474d9166db9f68b8f3f8b4 Mon Sep 17 00:00:00 2001
2From: Nagaraju <nmekala@xilinx.com> 2From: Nagaraju <nmekala@xilinx.com>
3Date: Fri, 23 Aug 2019 16:16:53 +0530 3Date: Fri, 23 Aug 2019 16:16:53 +0530
4Subject: [PATCH 55/58] Added new MB-64 single register arithmetic instructions 4Subject: [PATCH 49/54] 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
10diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md 10diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md
11index 6cc62666269..696be7b300f 100644 11index 60afd9be288..1ad139cbd44 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 @@
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0056-Patch-MicroBlaze-Added-support-for-64-bit-Immediate-.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0050-Patch-MicroBlaze-Added-support-for-64-bit-Immediate-.patch
index afe3ae96..d452b988 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0056-Patch-MicroBlaze-Added-support-for-64-bit-Immediate-.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0050-Patch-MicroBlaze-Added-support-for-64-bit-Immediate-.patch
@@ -1,7 +1,7 @@
1From 1dadde6d9a49010a495529c9b5ea6c2bb75cc5f1 Mon Sep 17 00:00:00 2001 1From 797697692635d4c536181cb007b3b0d63d2431c1 Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com> 2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Mon, 26 Aug 2019 15:55:22 +0530 3Date: Mon, 26 Aug 2019 15:55:22 +0530
4Subject: [PATCH 56/58] [Patch,MicroBlaze] : Added support for 64 bit Immediate 4Subject: [PATCH 50/54] [Patch,MicroBlaze] : Added support for 64 bit Immediate
5 values. 5 values.
6 6
7--- 7---
@@ -10,7 +10,7 @@ Subject: [PATCH 56/58] [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
12diff --git a/gcc/config/microblaze/constraints.md b/gcc/config/microblaze/constraints.md 12diff --git a/gcc/config/microblaze/constraints.md b/gcc/config/microblaze/constraints.md
13index 4a6cf419671..2432b480a2c 100644 13index 89db511c453..9ad2b099310 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 @@
@@ -23,10 +23,10 @@ index 4a6cf419671..2432b480a2c 100644
23- (match_test "ival > (long long)-549755813888 && ival < (long long)549755813887"))) 23- (match_test "ival > (long long)-549755813888 && ival < (long long)549755813887")))
24+ (match_test "ival > (long long)-9223372036854775808 && ival < (long long)9223372036854775807"))) 24+ (match_test "ival > (long long)-9223372036854775808 && ival < (long long)9223372036854775807")))
25 25
26 ;; Define floating point constraints
27 26
27 ;; Define floating point constraints
28diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md 28diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md
29index 696be7b300f..f0a9701ab18 100644 29index 1ad139cbd44..93de8d831fd 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 @@
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0057-Patch-microblaze-Fix-Compiler-crash-with-freg-struct.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0051-Patch-microblaze-Fix-Compiler-crash-with-freg-struct.patch
index ebd707c9..3e0c483b 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0057-Patch-microblaze-Fix-Compiler-crash-with-freg-struct.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0051-Patch-microblaze-Fix-Compiler-crash-with-freg-struct.patch
@@ -1,7 +1,7 @@
1From ab73daf6bf1bc652e9557386cba5eb237af66350 Mon Sep 17 00:00:00 2001 1From 697db2e2c2519f27011fbd1960cd8860133aaa84 Mon Sep 17 00:00:00 2001
2From: Nagaraju <nmekala@xilinx.com> 2From: Nagaraju <nmekala@xilinx.com>
3Date: Thu, 9 Jan 2020 12:30:41 +0530 3Date: Thu, 9 Jan 2020 12:30:41 +0530
4Subject: [PATCH 57/58] [Patch, microblaze]: Fix Compiler crash with 4Subject: [PATCH 51/54] [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
@@ -23,10 +23,10 @@ ChangeLog:
23 2 files changed, 10 insertions(+), 20 deletions(-) 23 2 files changed, 10 insertions(+), 20 deletions(-)
24 24
25diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c 25diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c
26index 5b4c21af365..31869982d27 100644 26index 7b48c011550..1bba77dab6d 100644
27--- a/gcc/config/microblaze/microblaze.c 27--- a/gcc/config/microblaze/microblaze.c
28+++ b/gcc/config/microblaze/microblaze.c 28+++ b/gcc/config/microblaze/microblaze.c
29@@ -4038,7 +4038,16 @@ microblaze_function_value (const_tree valtype, 29@@ -3908,7 +3908,16 @@ microblaze_function_value (const_tree valtype,
30 const_tree func ATTRIBUTE_UNUSED, 30 const_tree func ATTRIBUTE_UNUSED,
31 bool outgoing ATTRIBUTE_UNUSED) 31 bool outgoing ATTRIBUTE_UNUSED)
32 { 32 {
@@ -45,7 +45,7 @@ index 5b4c21af365..31869982d27 100644
45 45
46 /* Implement TARGET_SCHED_ADJUST_COST. */ 46 /* Implement TARGET_SCHED_ADJUST_COST. */
47diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h 47diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h
48index 0c493b6f6e4..5eb95c2600a 100644 48index bfa7bc9a01c..d467a7ee65d 100644
49--- a/gcc/config/microblaze/microblaze.h 49--- a/gcc/config/microblaze/microblaze.h
50+++ b/gcc/config/microblaze/microblaze.h 50+++ b/gcc/config/microblaze/microblaze.h
51@@ -266,13 +266,6 @@ extern enum pipeline_type microblaze_pipe; 51@@ -266,13 +266,6 @@ extern enum pipeline_type microblaze_pipe;
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0054-Patch-microblaze-Add-TARGET_OPTION_OPTIMIZATION-and-.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0052-Patch-microblaze-Add-TARGET_OPTION_OPTIMIZATION-and-.patch
index 70e05117..91c7c026 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0054-Patch-microblaze-Add-TARGET_OPTION_OPTIMIZATION-and-.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0052-Patch-microblaze-Add-TARGET_OPTION_OPTIMIZATION-and-.patch
@@ -1,7 +1,7 @@
1From 6bdb6f300593c4a633a8ec485ac2744a97b51460 Mon Sep 17 00:00:00 2001 1From d7d6835bd839150e864cbb0d9c9c7a497e93bbb8 Mon Sep 17 00:00:00 2001
2From: Nagaraju <nmekala@xilinx.com> 2From: Nagaraju <nmekala@xilinx.com>
3Date: Wed, 8 May 2019 14:12:03 +0530 3Date: Wed, 8 May 2019 14:12:03 +0530
4Subject: [PATCH 54/58] [Patch, microblaze]: Add TARGET_OPTION_OPTIMIZATION and 4Subject: [PATCH 52/54] [Patch, microblaze]: Add TARGET_OPTION_OPTIMIZATION and
5 disable fivopts by default 5 disable fivopts by default
6 6
7Added TARGET_OPTION_OPTIMIZATIONS and Turn off ivopts by default. 7Added TARGET_OPTION_OPTIMIZATIONS and Turn off ivopts by default.
@@ -10,26 +10,30 @@ Added TARGET_OPTION_OPTIMIZATIONS and Turn off ivopts by default.
10 (microblaze_option_optimization_table): Disable fivopts by default. 10 (microblaze_option_optimization_table): Disable fivopts by default.
11 11
12Signed-off-by: Nagaraju Mekala <nmekala@xilinx.com> 12Signed-off-by: Nagaraju Mekala <nmekala@xilinx.com>
13
14Conflicts:
15 gcc/common/config/microblaze/microblaze-common.c
13--- 16---
14 gcc/common/config/microblaze/microblaze-common.c | 6 ++++-- 17 gcc/common/config/microblaze/microblaze-common.c | 11 +++++++++++
15 1 file changed, 4 insertions(+), 2 deletions(-) 18 1 file changed, 11 insertions(+)
16 19
17diff --git a/gcc/common/config/microblaze/microblaze-common.c b/gcc/common/config/microblaze/microblaze-common.c 20diff --git a/gcc/common/config/microblaze/microblaze-common.c b/gcc/common/config/microblaze/microblaze-common.c
18index 0b9d5a1b453..cf2db8afe36 100644 21index 4391f939626..cf2db8afe36 100644
19--- a/gcc/common/config/microblaze/microblaze-common.c 22--- a/gcc/common/config/microblaze/microblaze-common.c
20+++ b/gcc/common/config/microblaze/microblaze-common.c 23+++ b/gcc/common/config/microblaze/microblaze-common.c
21@@ -27,13 +27,15 @@ 24@@ -24,7 +24,18 @@
22 /* Implement TARGET_OPTION_OPTIMIZATION_TABLE. */ 25 #include "common/common-target.h"
23 static const struct default_options microblaze_option_optimization_table[] = 26 #include "common/common-target-def.h"
24 { 27
25- /* Turn off ivopts by default. It messes up cse. */ 28+/* Implement TARGET_OPTION_OPTIMIZATION_TABLE. */
29+static const struct default_options microblaze_option_optimization_table[] =
30+ {
26+ /* Turn off ivopts by default. It messes up cse. 31+ /* Turn off ivopts by default. It messes up cse.
27+ { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, */ 32+ { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, */
28 { OPT_LEVELS_ALL, OPT_fivopts, NULL, 0 }, 33+ { OPT_LEVELS_ALL, OPT_fivopts, NULL, 0 },
29- { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, 34+ { OPT_LEVELS_NONE, 0, NULL, 0 }
30 { OPT_LEVELS_NONE, 0, NULL, 0 } 35+ };
31 }; 36+
32
33 #undef TARGET_DEFAULT_TARGET_FLAGS 37 #undef TARGET_DEFAULT_TARGET_FLAGS
34 #define TARGET_DEFAULT_TARGET_FLAGS TARGET_DEFAULT 38 #define TARGET_DEFAULT_TARGET_FLAGS TARGET_DEFAULT
35 39
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0018-Patch-microblaze-Reducing-Stack-space-for-arguments.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/0053-Patch-microblaze-Reducing-Stack-space-for-arguments.patch
index 1f8decc7..377154d7 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0018-Patch-microblaze-Reducing-Stack-space-for-arguments.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/0053-Patch-microblaze-Reducing-Stack-space-for-arguments.patch
@@ -1,7 +1,7 @@
1From 59273a71f1f180456d87eb4a1a5f95fcc6d17003 Mon Sep 17 00:00:00 2001 1From e146b21e18e51ab6ce77af2c39cdf3375606c1eb Mon Sep 17 00:00:00 2001
2From: Mahesh Bodapati <mbodapat@xilinx.com> 2From: Mahesh Bodapati <mbodapat@xilinx.com>
3Date: Tue, 17 Jan 2017 16:42:44 +0530 3Date: Tue, 24 Nov 2020 12:26:32 +0530
4Subject: [PATCH 18/58] [Patch, microblaze]: Reducing Stack space for arguments 4Subject: [PATCH 53/54] [Patch, microblaze]: Reducing Stack space for arguments
5 5
6Currently in Microblaze target stack space for arguments in register is being 6Currently in Microblaze target stack space for arguments in register is being
7allocated even if there are no arguments in the function. 7allocated even if there are no arguments in the function.
@@ -9,13 +9,6 @@ This patch will optimize the extra 24 bytes that are being allocated.
9 9
10Signed-off-by :Nagaraju Mekala <nmekala@xilix.com> 10Signed-off-by :Nagaraju Mekala <nmekala@xilix.com>
11 :Ajit Agarwal <ajitkum@xilinx.com> 11 :Ajit Agarwal <ajitkum@xilinx.com>
12
13ChangeLog:
142015-04-17 Nagaraju Mekala <nmekala@xilix.com>
15 Ajit Agarwal <ajitkum@xilinx.com>
16
17 *microblaze.c (microblaze_parm_needs_stack, microblaze_function_parms_need_stack): New
18 *microblaze.c (REG_PARM_STACK_SPACE): Modify
19--- 12---
20 gcc/config/microblaze/microblaze-protos.h | 1 + 13 gcc/config/microblaze/microblaze-protos.h | 1 +
21 gcc/config/microblaze/microblaze.c | 132 +++++++++++++++++++++- 14 gcc/config/microblaze/microblaze.c | 132 +++++++++++++++++++++-
@@ -23,10 +16,10 @@ ChangeLog:
23 3 files changed, 134 insertions(+), 3 deletions(-) 16 3 files changed, 134 insertions(+), 3 deletions(-)
24 17
25diff --git a/gcc/config/microblaze/microblaze-protos.h b/gcc/config/microblaze/microblaze-protos.h 18diff --git a/gcc/config/microblaze/microblaze-protos.h b/gcc/config/microblaze/microblaze-protos.h
26index 982b2abd2d4..96f7bb67f6c 100644 19index 460feac4ac5..b8a3321dbdf 100644
27--- a/gcc/config/microblaze/microblaze-protos.h 20--- a/gcc/config/microblaze/microblaze-protos.h
28+++ b/gcc/config/microblaze/microblaze-protos.h 21+++ b/gcc/config/microblaze/microblaze-protos.h
29@@ -59,6 +59,7 @@ extern int symbol_mentioned_p (rtx); 22@@ -60,6 +60,7 @@ extern int symbol_mentioned_p (rtx);
30 extern int label_mentioned_p (rtx); 23 extern int label_mentioned_p (rtx);
31 extern bool microblaze_cannot_force_const_mem (machine_mode, rtx); 24 extern bool microblaze_cannot_force_const_mem (machine_mode, rtx);
32 extern void microblaze_eh_return (rtx op0); 25 extern void microblaze_eh_return (rtx op0);
@@ -35,10 +28,10 @@ index 982b2abd2d4..96f7bb67f6c 100644
35 28
36 /* Declare functions in microblaze-c.c. */ 29 /* Declare functions in microblaze-c.c. */
37diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c 30diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c
38index 9eae5515c60..a4bdf66f045 100644 31index 1bba77dab6d..dac0596bc7d 100644
39--- a/gcc/config/microblaze/microblaze.c 32--- a/gcc/config/microblaze/microblaze.c
40+++ b/gcc/config/microblaze/microblaze.c 33+++ b/gcc/config/microblaze/microblaze.c
41@@ -2057,6 +2057,136 @@ microblaze_must_save_register (int regno) 34@@ -2080,6 +2080,136 @@ microblaze_must_save_register (int regno)
42 return 0; 35 return 0;
43 } 36 }
44 37
@@ -120,8 +113,8 @@ index 9eae5515c60..a4bdf66f045 100644
120+ args_so_far = pack_cumulative_args (&args_so_far_v); 113+ args_so_far = pack_cumulative_args (&args_so_far_v);
121+ 114+
122+ /* When incoming, we will have been passed the function decl. 115+ /* When incoming, we will have been passed the function decl.
123+ * It is necessary to use the decl to handle K&R style functions, 116+ * * It is necessary to use the decl to handle K&R style functions,
124+ * where TYPE_ARG_TYPES may not be available. */ 117+ * * where TYPE_ARG_TYPES may not be available. */
125+ if (incoming) 118+ if (incoming)
126+ { 119+ {
127+ gcc_assert (DECL_P (fun)); 120+ gcc_assert (DECL_P (fun));
@@ -153,7 +146,7 @@ index 9eae5515c60..a4bdf66f045 100644
153+ 146+
154+ FOREACH_FUNCTION_ARGS (fntype, arg_type, args_iter) 147+ FOREACH_FUNCTION_ARGS (fntype, arg_type, args_iter)
155+ { 148+ {
156+ num_of_args++; 149+ num_of_args;
157+ if (microblaze_parm_needs_stack (args_so_far, arg_type)) 150+ if (microblaze_parm_needs_stack (args_so_far, arg_type))
158+ return true; 151+ return true;
159+ } 152+ }
@@ -175,30 +168,30 @@ index 9eae5515c60..a4bdf66f045 100644
175 /* Return the bytes needed to compute the frame pointer from the current 168 /* Return the bytes needed to compute the frame pointer from the current
176 stack pointer. 169 stack pointer.
177 170
178@@ -3403,7 +3533,7 @@ microblaze_asm_output_mi_thunk (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED, 171@@ -3470,7 +3600,7 @@ microblaze_asm_output_mi_thunk (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED,
179 emit_insn (gen_indirect_jump (temp2)); 172 emit_insn (gen_indirect_jump (temp2));
180 173
181 /* Run just enough of rest_of_compilation. This sequence was 174 /* Run just enough of rest_of_compilation. This sequence was
182- "borrowed" from rs6000.c. */ 175- "borrowed" from rs6000.c. */
183+ "borrowed" from microblaze.c. */ 176+ "borrowed" from microblaze.c */
184 insn = get_insns (); 177 insn = get_insns ();
185 shorten_branches (insn); 178 shorten_branches (insn);
186 assemble_start_function (thunk_fndecl, fnname); 179 assemble_start_function (thunk_fndecl, fnname);
187diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h 180diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h
188index 8aa3f155790..1e155e4041c 100644 181index d467a7ee65d..be6c798c889 100644
189--- a/gcc/config/microblaze/microblaze.h 182--- a/gcc/config/microblaze/microblaze.h
190+++ b/gcc/config/microblaze/microblaze.h 183+++ b/gcc/config/microblaze/microblaze.h
191@@ -434,9 +434,9 @@ extern struct microblaze_frame_info current_frame_info; 184@@ -447,9 +447,9 @@ extern struct microblaze_frame_info current_frame_info;
192
193 #define ARG_POINTER_CFA_OFFSET(FNDECL) 0 185 #define ARG_POINTER_CFA_OFFSET(FNDECL) 0
186 #define DWARF_CIE_DATA_ALIGNMENT -1
194 187
195-#define REG_PARM_STACK_SPACE(FNDECL) (MAX_ARGS_IN_REGISTERS * UNITS_PER_WORD) 188-#define REG_PARM_STACK_SPACE(FNDECL) (MAX_ARGS_IN_REGISTERS * UNITS_PER_WORD)
196+#define REG_PARM_STACK_SPACE(FNDECL) microblaze_reg_parm_stack_space(FNDECL) 189+#define REG_PARM_STACK_SPACE(FNDECL) microblaze_reg_parm_stack_space(FNDECL)
197 190
198-#define OUTGOING_REG_PARM_STACK_SPACE(FNTYPE) 1 191-#define OUTGOING_REG_PARM_STACK_SPACE(FNTYPE) 1
199+#define OUTGOING_REG_PARM_STACK_SPACE(FNTYPE) 1 192+#define OUTGOING_REG_PARM_STACK_SPACE(FNTYPE) 1
200 193
201 #define STACK_BOUNDARY 32 194 #define STACK_BOUNDARY (TARGET_MB_64 ? 64 : 32)
202 195
203-- 196--
2042.17.1 1972.17.1
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
deleted file mode 100644
index e3c4b87b..00000000
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0058-microblaze-Avoid-UINTPTR_TYPE-macro-redefinition.patch
+++ /dev/null
@@ -1,29 +0,0 @@
1From dd73d8ba32c0c24f17a54538b9bb54beb5d8d4e0 Mon Sep 17 00:00:00 2001
2From: Mark Hatle <mark.hatle@kernel.crashing.org>
3Date: Thu, 13 Aug 2020 16:28:57 -0500
4Subject: [PATCH 58/58] microblaze: Avoid UINTPTR_TYPE macro redefinition
5
6Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org>
7---
8 gcc/config/microblaze/microblaze.h | 5 -----
9 1 file changed, 5 deletions(-)
10
11diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h
12index 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--
282.17.1
29
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-10/0059-microblaze-multilib-hack.patch b/meta-microblaze/recipes-devtools/gcc/gcc-10/microblaze-mulitlib-hack.patch
index af8ebf3b..af8ebf3b 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-10/0059-microblaze-multilib-hack.patch
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-10/microblaze-mulitlib-hack.patch
diff --git a/meta-microblaze/recipes-devtools/gcc/gcc-source_10.%.bbappend b/meta-microblaze/recipes-devtools/gcc/gcc-source_10.%.bbappend
index 7e8c1fa5..f1ba2ea6 100644
--- a/meta-microblaze/recipes-devtools/gcc/gcc-source_10.%.bbappend
+++ b/meta-microblaze/recipes-devtools/gcc/gcc-source_10.%.bbappend
@@ -4,61 +4,56 @@ FILESEXTRAPATHS_append_microblaze := ":${THISDIR}/gcc-10"
4SRC_URI_append_microblaze = " \ 4SRC_URI_append_microblaze = " \
5 file://0001-LOCAL-Testsuite-builtins-tests-require-fpic.patch \ 5 file://0001-LOCAL-Testsuite-builtins-tests-require-fpic.patch \
6 file://0002-LOCAL-Quick-fail-g-.dg-opt-memcpy1.C.patch \ 6 file://0002-LOCAL-Quick-fail-g-.dg-opt-memcpy1.C.patch \
7 file://0003-LOCAL-Testsuite-explicitly-add-fivopts-for-tests-tha.patch \ 7 file://0003-LOCAL-For-dejagnu-static-testing-on-qemu-suppress-wa.patch \
8 file://0004-LOCAL-For-dejagnu-static-testing-on-qemu-suppress-wa.patch \ 8 file://0004-Patch-testsuite-Add-MicroBlaze-to-target-supports-fo.patch \
9 file://0005-Patch-testsuite-Add-MicroBlaze-to-target-supports-fo.patch \ 9 file://0005-Patch-testsuite-Update-MicroBlaze-strings-test.patch \
10 file://0006-Patch-testsuite-Update-MicroBlaze-strings-test.patch \ 10 file://0006-Patch-testsuite-Allow-MicroBlaze-.weakext-pattern-in.patch \
11 file://0007-Patch-testsuite-Allow-MicroBlaze-.weakext-pattern-in.patch \ 11 file://0007-Patch-testsuite-Add-MicroBlaze-to-check_profiling_av.patch \
12 file://0008-Patch-testsuite-Add-MicroBlaze-to-check_profiling_av.patch \ 12 file://0008-Patch-microblaze-Fix-atomic-side-effects.patch \
13 file://0009-Patch-microblaze-Fix-atomic-side-effects.patch \ 13 file://0009-Patch-microblaze-Fix-atomic-boolean-return-value.patch \
14 file://0010-Patch-microblaze-Fix-atomic-boolean-return-value.patch \ 14 file://0010-Patch-microblaze-Fix-the-Microblaze-crash-with-msmal.patch \
15 file://0011-Patch-microblaze-Fix-the-Microblaze-crash-with-msmal.patch \ 15 file://0011-Patch-microblaze-Added-ashrsi3_with_size_opt.patch \
16 file://0012-Patch-microblaze-Added-ashrsi3_with_size_opt.patch \ 16 file://0012-Patch-microblaze-Use-bralid-for-profiler-calls.patch \
17 file://0013-Patch-microblaze-Use-bralid-for-profiler-calls.patch \ 17 file://0013-Patch-microblaze-Removed-moddi3-routinue.patch \
18 file://0014-Patch-microblaze-Disable-fivopts-by-default.patch \ 18 file://0014-Patch-microblaze-Add-INIT_PRIORITY-support.patch \
19 file://0015-Patch-microblaze-Removed-moddi3-routinue.patch \ 19 file://0015-Patch-microblaze-Add-optimized-lshrsi3.patch \
20 file://0016-Patch-microblaze-Add-INIT_PRIORITY-support.patch \ 20 file://0016-Patch-microblaze-Add-cbranchsi4_reg.patch \
21 file://0017-Patch-microblaze-Add-optimized-lshrsi3.patch \ 21 file://0017-Patch-microblaze-Inline-Expansion-of-fsqrt-builtin.patch \
22 file://0018-Patch-microblaze-Reducing-Stack-space-for-arguments.patch \ 22 file://0018-PATCH-microblaze.md-Improve-adddi3-and-subdi3-insn-d.patch \
23 file://0019-Patch-microblaze-Add-cbranchsi4_reg.patch \ 23 file://0019-Patch-microblaze-Update-ashlsi3-movsf-patterns.patch \
24 file://0020-Patch-microblaze-Inline-Expansion-of-fsqrt-builtin.patch \ 24 file://0020-Patch-microblaze-8-stage-pipeline-for-microblaze.patch \
25 file://0021-Patch-OPT-Update-heuristics-for-loop-invariant-for-a.patch \ 25 file://0021-Patch-microblaze-Correct-the-const-high-double-immed.patch \
26 file://0022-PATCH-microblaze.md-Improve-adddi3-and-subdi3-insn-d.patch \ 26 file://0022-Fix-microblaze-Fix-internal-compiler-error-with-msma.patch \
27 file://0023-Patch-microblaze-Update-ashlsi3-movsf-patterns.patch \ 27 file://0023-patch-microblaze-Fix-the-calculation-of-high-word-in.patch \
28 file://0024-Patch-microblaze-8-stage-pipeline-for-microblaze.patch \ 28 file://0024-Patch-microblaze-Add-new-bit-field-instructions.patch \
29 file://0025-Patch-rtl-Optimization-Better-register-pressure-esti.patch \ 29 file://0025-Patch-microblaze-Fix-bug-in-MB-version-calculation.patch \
30 file://0026-Patch-microblaze-Correct-the-const-high-double-immed.patch \ 30 file://0026-Fixing-the-issue-with-the-builtin_alloc.patch \
31 file://0027-Fix-microblaze-Fix-internal-compiler-error-with-msma.patch \ 31 file://0027-Patch-Microblaze-update-in-constraints-for-bitfield-.patch \
32 file://0028-patch-microblaze-Fix-the-calculation-of-high-word-in.patch \ 32 file://0028-Patch-Microblaze-Removed-fsqrt-generation-for-double.patch \
33 file://0029-Patch-microblaze-Add-new-bit-field-instructions.patch \ 33 file://0029-Patch-MicroBlaze-Intial-commit-of-64-bit-Microblaze.patch \
34 file://0030-Patch-microblaze-Fix-bug-in-MB-version-calculation.patch \ 34 file://0030-Intial-commit-for-64bit-MB-sources.patch \
35 file://0031-Fixing-the-issue-with-the-builtin_alloc.patch \ 35 file://0031-re-arrangement-of-the-compare-branches.patch \
36 file://0032-Patch-Microblaze-update-in-constraints-for-bitfield-.patch \ 36 file://0032-Patch-Microblaze-previous-commit-broke-the-handling-.patch \
37 file://0033-Patch-Microblaze-Removed-fsqrt-generation-for-double.patch \ 37 file://0033-Patch-Microblaze-Support-of-multilibs-with-m64.patch \
38 file://0034-Intial-commit-of-64-bit-Microblaze.patch \ 38 file://0034-Fixed-issues-like.patch \
39 file://0035-Intial-commit-for-64bit-MB-sources.patch \ 39 file://0035-Fixed-below-issues.patch \
40 file://0036-re-arrangement-of-the-compare-branches.patch \ 40 file://0036-Added-double-arith-instructions.patch \
41 file://0037-Patch-Microblaze-previous-commit-broke-the-handling-.patch \ 41 file://0037-Fixed-the-issue-in-the-delay-slot-with-swap-instruct.patch \
42 file://0038-Patch-Microblaze-Support-of-multilibs-with-m64.patch \ 42 file://0038-Fixed-the-load-store-issue-with-the-32bit-arith-libr.patch \
43 file://0039-Fix-various-issues.patch \ 43 file://0039-extending-the-Dwarf-support-to-64bit-Microblaze.patch \
44 file://0040-Fixed-below-issues.patch \ 44 file://0040-fixing-the-typo-errors-in-umodsi3-file.patch \
45 file://0041-Fix-various.patch \ 45 file://0041-fixing-the-32bit-LTO-related-issue9-1014024.patch \
46 file://0042-Fixed-the-issue-in-the-delay-slot-with-swap-instruct.patch \ 46 file://0042-Fixed-the-missing-stack-adjustment-in-prologue-of-mo.patch \
47 file://0043-Fixed-the-load-store-issue-with-the-32bit-arith-libr.patch \ 47 file://0043-Patch-Microblaze-corrected-SPN-for-dlong-instruction.patch \
48 file://0044-extending-the-Dwarf-support-to-64bit-Microblaze.patch \ 48 file://0044-fixing-the-long-long-long-mingw-toolchain-issue.patch \
49 file://0045-fixing-the-typo-errors-in-umodsi3-file.patch \ 49 file://0045-Fix-the-MB-64-bug-of-handling-QI-objects.patch \
50 file://0046-fixing-the-32bit-LTO-related-issue9-1014024.patch \ 50 file://0046-Patch-Microblaze-We-will-check-the-possibility-of-pe.patch \
51 file://0047-Fixed-the-missing-stack-adjustment-in-prologue-of-mo.patch \ 51 file://0047-Patch-MicroBlaze-fixed-typos-in-mul-div-and-mod-asse.patch \
52 file://0048-Patch-Microblaze-corrected-SPN-for-dlong-instruction.patch \ 52 file://0048-Author-Nagaraju-nmekala-xilinx.com.patch \
53 file://0049-fixing-the-long-long-long-mingw-toolchain-issue.patch \ 53 file://0049-Added-new-MB-64-single-register-arithmetic-instructi.patch \
54 file://0050-Fix-the-MB-64-bug-of-handling-QI-objects.patch \ 54 file://0050-Patch-MicroBlaze-Added-support-for-64-bit-Immediate-.patch \
55 file://0051-Patch-Microblaze-Check-the-possibiity-of-peephole2-o.patch \ 55 file://0051-Patch-microblaze-Fix-Compiler-crash-with-freg-struct.patch \
56 file://0052-Patch-MicroBlaze-fixed-typos-in-mul-div-and-mod-asse.patch \ 56 file://0052-Patch-microblaze-Add-TARGET_OPTION_OPTIMIZATION-and-.patch \
57 file://0053-Patch-microblaze-MB-64-removal-of-barrel-shift-instr.patch \ 57 file://0053-Patch-microblaze-Reducing-Stack-space-for-arguments.patch \
58 file://0054-Patch-microblaze-Add-TARGET_OPTION_OPTIMIZATION-and-.patch \ 58 file://microblaze-mulitlib-hack.patch \
59 file://0055-Added-new-MB-64-single-register-arithmetic-instructi.patch \
60 file://0056-Patch-MicroBlaze-Added-support-for-64-bit-Immediate-.patch \
61 file://0057-Patch-microblaze-Fix-Compiler-crash-with-freg-struct.patch \
62 file://0058-microblaze-Avoid-UINTPTR_TYPE-macro-redefinition.patch \
63 file://0059-microblaze-multilib-hack.patch \
64" 59"