From a5be7ea24f03ff484e678e29375bef031acad6d7 Mon Sep 17 00:00:00 2001 From: Mark Hatle Date: Thu, 16 Apr 2020 09:53:56 -0700 Subject: binutils: Microblaze integrate fix from upstream Issue: CR-1016400 [Patch,MicroBlaze m64] : This patch will remove imml 0 and imml -1 instructions when the offset is less than 16 bit for Type A branch EA instructions. Signed-off-by: Mark Hatle --- .../binutils/binutils-microblaze.inc | 1 + ...Blaze-m64-This-patch-will-remove-imml-0-a.patch | 38 ++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 meta-xilinx-bsp/recipes-microblaze/binutils/binutils/0046-Patch-MicroBlaze-m64-This-patch-will-remove-imml-0-a.patch diff --git a/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-microblaze.inc b/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-microblaze.inc index 689337b4..f2f29918 100644 --- a/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-microblaze.inc +++ b/meta-xilinx-bsp/recipes-microblaze/binutils/binutils-microblaze.inc @@ -46,4 +46,5 @@ SRC_URI_append = " \ file://0043-Removing-the-header-gdb_assert.h-from-MB-target-file.patch \ file://0044-gdb-microblaze-linux-nat.c-Fix-target-compilation-of.patch \ file://0045-Fixed-bug-in-generation-of-IMML-instruction-for-the.patch \ + file://0046-Patch-MicroBlaze-m64-This-patch-will-remove-imml-0-a.patch \ " diff --git a/meta-xilinx-bsp/recipes-microblaze/binutils/binutils/0046-Patch-MicroBlaze-m64-This-patch-will-remove-imml-0-a.patch b/meta-xilinx-bsp/recipes-microblaze/binutils/binutils/0046-Patch-MicroBlaze-m64-This-patch-will-remove-imml-0-a.patch new file mode 100644 index 00000000..7677ab35 --- /dev/null +++ b/meta-xilinx-bsp/recipes-microblaze/binutils/binutils/0046-Patch-MicroBlaze-m64-This-patch-will-remove-imml-0-a.patch @@ -0,0 +1,38 @@ +From 9c8f4f1c11d324f0788da3a077b06c6bc9e6f2b8 Mon Sep 17 00:00:00 2001 +From: Mahesh Bodapati +Date: Thu, 16 Apr 2020 18:08:58 +0530 +Subject: [PATCH] [Patch,MicroBlaze m64] : This patch will remove imml 0 and + imml -1 instructions when the offset is less than 16 bit for Type A branch EA + instructions. + +--- + gas/config/tc-microblaze.c | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +diff --git a/gas/config/tc-microblaze.c b/gas/config/tc-microblaze.c +index 088eae73a9..12fd145a03 100644 +--- a/gas/config/tc-microblaze.c ++++ b/gas/config/tc-microblaze.c +@@ -2150,9 +2150,7 @@ md_assemble (char * str) + if (exp.X_op != O_constant) + { + char *opc; +- if (microblaze_arch_size == 64 && (streq (name, "breai") || +- streq (name, "breaid") || +- streq (name, "brai") || streq (name, "braid"))) ++ if (microblaze_arch_size == 64 && (streq (name, "brai") || streq (name, "braid"))) + opc = str_microblaze_64; + else + opc = NULL; +@@ -2920,7 +2918,7 @@ md_apply_fix (fixS * fixP, + case BFD_RELOC_MICROBLAZE_64: + case BFD_RELOC_MICROBLAZE_64_PCREL: + if (fixP->fx_r_type == BFD_RELOC_MICROBLAZE_64 +- || fixP->fx_r_type == BFD_RELOC_MICROBLAZE_64_PCREL) ++ || fixP->fx_r_type == BFD_RELOC_MICROBLAZE_64_PCREL || (fixP->fx_r_type == BFD_RELOC_64_PCREL && microblaze_arch_size == 64)) + { + /* Generate the imm instruction. */ + if (((long long)val) > (long long)-549755813888 && ((long long)val) < (long long)549755813887) +-- +2.17.1 + -- cgit v1.2.3-54-g00ecf